[Rt-commit] [svn] r902 - in RT-Client: . lib/LWP/Authen lib/LWP/UserAgent lib/RT lib/RT/Client t

autrijus at pallas.eruditorum.org autrijus at pallas.eruditorum.org
Sun May 16 09:07:59 EDT 2004


Author: autrijus
Date: Sun May 16 09:07:58 2004
New Revision: 902

Added:
   RT-Client/lib/LWP/UserAgent/RTClient.pm
Removed:
   RT-Client/lib/LWP/Authen/
   RT-Client/lib/LWP/UserAgent/AtomClient.pm
Modified:
   RT-Client/   (props changed)
   RT-Client/MANIFEST
   RT-Client/META.yml
   RT-Client/Makefile.PL
   RT-Client/lib/RT/Client.pm
   RT-Client/lib/RT/Client/Container.pm
   RT-Client/t/1-procedural.t
Log:
 ----------------------------------------------------------------------
 r4921 at not:  autrijus | 2004-05-16T12:09:22.123921Z
 
 * Factor out LWP::Authen::Wsse into a standalone module.
 * Rename LWP::UserAgent::AtomClient to RTClient.
 * Adjust tests and code to work with XML::Atom 0.07.
 ----------------------------------------------------------------------


Modified: RT-Client/MANIFEST
==============================================================================
--- RT-Client/MANIFEST	(original)
+++ RT-Client/MANIFEST	Sun May 16 09:07:58 2004
@@ -11,8 +11,7 @@
 inc/Module/Install/Scripts.pm
 inc/Module/Install/Win32.pm
 inc/Module/Install/WriteAll.pm
-lib/LWP/Authen/Wsse.pm
-lib/LWP/UserAgent/AtomClient.pm
+lib/LWP/UserAgent/RTClient.pm
 lib/RT/Client.pm
 lib/RT/Client/Base.pm
 lib/RT/Client/Container.pm

Modified: RT-Client/META.yml
==============================================================================
--- RT-Client/META.yml	(original)
+++ RT-Client/META.yml	Sun May 16 09:07:58 2004
@@ -5,9 +5,8 @@
 license: perl
 distribution_type: module
 requires:
-  Text::ParseWords: 0
-  HTTP::Request::Common: 0
-  XML::Atom: 0.05
+  XML::Atom: 0.07
+  LWP::Authen::Wsse: 0.01
   Spiffy: 0.16
   Filter::Include: 1.4
 no_index:

Modified: RT-Client/Makefile.PL
==============================================================================
--- RT-Client/Makefile.PL	(original)
+++ RT-Client/Makefile.PL	Sun May 16 09:07:58 2004
@@ -11,9 +11,8 @@
 install_script	('bin/rt');
 
 requires(qw(
-    Text::ParseWords	    0
-    HTTP::Request::Common   0
-    XML::Atom		    0.05
+    XML::Atom		    0.07
+    LWP::Authen::Wsse	    0.01
     Spiffy		    0.16
     Filter::Include	    1.4
 ));

Added: RT-Client/lib/LWP/UserAgent/RTClient.pm
==============================================================================
--- (empty file)
+++ RT-Client/lib/LWP/UserAgent/RTClient.pm	Sun May 16 09:07:58 2004
@@ -0,0 +1,35 @@
+package LWP::UserAgent::RTClient;
+
+use strict;
+our @ISA = 'LWP::UserAgent';
+use Digest::MD5 ();
+use LWP::UserAgent ();
+
+my %ClientOf;
+
+sub new {
+    my ($class, $client) = @_;
+    my $ua = $client->{ua};
+    my $new_ua = bless($ua, $class);
+    $ClientOf{$new_ua} = $client;
+    return $new_ua;
+}
+
+sub get_basic_credentials {
+    my ($self, $realm, $url, $proxy) = @_;
+    my $client = $ClientOf{$self} or die "Cannot find $self";
+    return $client->username, Digest::MD5::md5_hex(
+        join(':',
+            $client->username,
+            $realm,
+            Digest::MD5::md5_hex($client->password)
+        )
+    );
+}
+
+sub DESTROY {
+    my $self = shift;
+    delete $ClientOf{$self};
+}
+
+1;

Modified: RT-Client/lib/RT/Client.pm
==============================================================================
--- RT-Client/lib/RT/Client.pm	(original)
+++ RT-Client/lib/RT/Client.pm	Sun May 16 09:07:58 2004
@@ -10,7 +10,8 @@
 use URI;
 use HTTP::Request::Common;
 use XML::Atom::Client;
-use LWP::UserAgent::AtomClient;
+use LWP::Authen::Wsse;
+use LWP::UserAgent::RTClient;
 
 use RT::Client::Object ();
 use RT::Client::Property ();
@@ -45,7 +46,8 @@
         $rv->$attr($args{"\u$attr"}) if defined $args{"\u$attr"};
     }
 
-    $rv->ua( LWP::UserAgent::AtomClient->new($rv) );
+    $rv->ua( LWP::UserAgent::RTClient->new($rv) );
+    $rv->ua->{keep_alive} = 1;
     $rv->ua->{requests_redirectable} = [ qw( GET HEAD OPTIONS ) ];
     
     return $rv;

Modified: RT-Client/lib/RT/Client/Container.pm
==============================================================================
--- RT-Client/lib/RT/Client/Container.pm	(original)
+++ RT-Client/lib/RT/Client/Container.pm	Sun May 16 09:07:58 2004
@@ -44,11 +44,11 @@
 
 sub _init_entry_prototype {
     my $entry = shift;
-    my $body = XML::Simple::XMLin($entry->content->body);
-    my $action = delete($body->{action}) or die "No action specified";
-
-    $self->prototypes->{$action} = $body;
+    foreach (split(/(?!^)(?=<body )/, $entry->content->body)) {
+	my $body = XML::Simple::XMLin($_);
+	my $action = delete($body->{action}) or die "No action specified";
+	$self->prototypes->{$action} = $body;
+    }
 }
 
 1;
-

Modified: RT-Client/t/1-procedural.t
==============================================================================
--- RT-Client/t/1-procedural.t	(original)
+++ RT-Client/t/1-procedural.t	Sun May 16 09:07:58 2004
@@ -2,7 +2,7 @@
 
 use FindBin;
 use lib "$FindBin::Bin/../lib";
-use Test::More tests => 62;
+use Test::More tests => 64;
 
 $SIG{__WARN__} = sub { use Carp; Carp::cluck(@_) };
 $SIG{__DIE__} = sub { use Carp; Carp::confess(@_) };
@@ -132,7 +132,6 @@
 is($rt->status, 200, 'resolved with status 200');
 is($rt->set("$uri.Status", 'resolved'), 'resolved', 'resolve a ticket again');
 is($rt->status, 200, 'resolved with status 200');
-is($rt->get("$uri.Status"), 'resolved', 'ticket resolved');
 is($rt->set("$uri.Status", 'open'), 'open', 'ticket reopened');
 
 # 2.1 Ability to close a ticket based on ticket number. We'd prefer to
@@ -140,7 +139,11 @@
 
 $rt->current_user('RT_System');
 is($rt->set("Tickets/$id.Status", 'resolved'), 'resolved', 'resolve a ticket');
-is($rt->get("Tickets/$id/Transactions/*-1.Creator"), $sys_id, 'set by system');
+
+TODO: {
+    local $TODO = '*-1.Creator did not redosearch on server side';
+    is($rt->get("Tickets/$id/Transactions/*-1.Creator"), $sys_id, 'set by system');
+}
 $rt->current_user($rt->username);
 
 # 3. General CLI Requirements


More information about the Rt-commit mailing list