From: Tara L Andrews Date: Thu, 23 Aug 2012 18:56:01 +0000 (+0200) Subject: need to have user DB with its proper scope for tradition reload X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=1df4baa974fff0eb46a17e594954138fbed070b4;p=scpubgit%2Fstemmatology.git need to have user DB with its proper scope for tradition reload --- diff --git a/lib/Text/Tradition/Parser/Self.pm b/lib/Text/Tradition/Parser/Self.pm index 92ec2a1..981a855 100644 --- a/lib/Text/Tradition/Parser/Self.pm +++ b/lib/Text/Tradition/Parser/Self.pm @@ -147,10 +147,10 @@ my $fh = File::Temp->new(); my $file = $fh->filename; $fh->close; my $dsn = "dbi:SQLite:dbname=$file"; -my $userstore = Text::Tradition::UserStore->new( { dsn => $dsn, +my $userstore = Text::Tradition::Directory->new( { dsn => $dsn, extra_args => { create => 1 } } ); my $scope = $userstore->new_scope(); -my $testuser = $userstore->add_user( { url => 'http://example.com' } ); +my $testuser = $userstore->create_user( { url => 'http://example.com' } ); is( ref( $testuser ), 'Text::Tradition::User', "Created test user via userstore" ); $testuser->add_tradition( $newt ); is( $newt->user->id, $testuser->id, "Assigned tradition to test user" ); @@ -161,7 +161,7 @@ warning_is { } 'DROPPING user assignment without a specified userstore', "Got expected user drop warning on parse"; $usert = Text::Tradition->new( 'input' => 'Self', 'string' => $graphml_str, - 'userstore' => { 'dsn' => $dsn } ); + 'userstore' => $userstore ); is( $usert->user->id, $testuser->id, "Parsed tradition with userstore points to correct user" ); @@ -197,12 +197,7 @@ sub parse { } elsif( $gkey eq 'user' ) { # Assign the tradition to the user if we can if( exists $opts->{'userstore'} ) { - my $userdir; - try { - $userdir = Text::Tradition::UserStore->new( $opts->{'userstore'} ); - } catch { - warn( "Could not connect to specified user store; DROPPING user assignment" ); - } + my $userdir = delete $opts->{'userstore'}; my $user = $userdir->find_user( { username => $val } ); if( $user ) { $user->add_tradition( $tradition ); diff --git a/t/text_tradition_parser_self.t b/t/text_tradition_parser_self.t index 00c973d..5583932 100644 --- a/t/text_tradition_parser_self.t +++ b/t/text_tradition_parser_self.t @@ -59,10 +59,10 @@ my $fh = File::Temp->new(); my $file = $fh->filename; $fh->close; my $dsn = "dbi:SQLite:dbname=$file"; -my $userstore = Text::Tradition::UserStore->new( { dsn => $dsn, +my $userstore = Text::Tradition::Directory->new( { dsn => $dsn, extra_args => { create => 1 } } ); my $scope = $userstore->new_scope(); -my $testuser = $userstore->add_user( { url => 'http://example.com' } ); +my $testuser = $userstore->create_user( { url => 'http://example.com' } ); is( ref( $testuser ), 'Text::Tradition::User', "Created test user via userstore" ); $testuser->add_tradition( $newt ); is( $newt->user->id, $testuser->id, "Assigned tradition to test user" ); @@ -73,7 +73,7 @@ warning_is { } 'DROPPING user assignment without a specified userstore', "Got expected user drop warning on parse"; $usert = Text::Tradition->new( 'input' => 'Self', 'string' => $graphml_str, - 'userstore' => { 'dsn' => $dsn } ); + 'userstore' => $userstore ); is( $usert->user->id, $testuser->id, "Parsed tradition with userstore points to correct user" ); }