Changeset 448

Show
Ignore:
Timestamp:
07/01/08 17:11:41 (4 years ago)
Author:
kake
Message:

Use ->_dsn method in test 400 instead of rolling our own (probably fixes #35).

Location:
wiki-toolkit/trunk
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • wiki-toolkit/trunk/lib/Wiki/Toolkit/TestLib.pm

    r440 r448  
    4545my %datastore_info; 
    4646 
    47 my %dsn_prefix = ( MySQL  => "dbi:mysql:", 
    48                    Pg     => "dbi:Pg:dbname=", 
    49                    SQLite => "dbi:SQLite:dbname="); 
    50  
    5147foreach my $dbtype (qw( MySQL Pg SQLite )) { 
    5248    if ( $configured{$dbtype}{dbname} ) { 
     
    5450        my $store_class = "Wiki::Toolkit::Store::$dbtype"; 
    5551        my $setup_class = "Wiki::Toolkit::Setup::$dbtype"; 
    56         my $dsn = $dsn_prefix{$dbtype}.$config{dbname}; 
     52        eval "require $store_class"; 
     53        if ( $@ ) { 
     54            warn "Couldn't require $store_class: $@\n"; 
     55            warn "Will skip $dbtype tests.\n"; 
     56            next; 
     57        } 
     58        my $dsn = $store_class->_dsn( @config{ qw( dbname dbhost dbport ) } ); 
    5759        my $err; 
    58         if ($err = _test_dsn( $dsn, $config{dbuser}, $config{dbpass}, $config{dbhost})) { 
     60        if ( $err = _test_dsn( $dsn, $config{dbuser}, $config{dbpass} ) ) { 
    5961            warn "connecting to test $dbtype database failed: $err\n"; 
    6062            warn "will skip $dbtype tests\n"; 
     
    291293 
    292294sub _test_dsn { 
    293     my ( $dsn, $dbuser, $dbpass, $dbhost ) = @_; 
    294     $dsn .= ";host=$dbhost" if $dbhost; 
     295    my ( $dsn, $dbuser, $dbpass ) = @_; 
    295296    my $dbh = eval { 
    296297        DBI->connect($dsn, $dbuser, $dbpass, {RaiseError => 1}); 
  • wiki-toolkit/trunk/t/400_upgrade.t

    r441 r448  
    6868 
    6969        my $dsn = $database->{dsn}; 
    70         $dsn .= ';dbhost=' . $params->{dbhost} if $params->{dbhost}; 
    7170 
    7271        my $dbh = DBI->connect($dsn, $params->{dbuser}, $params->{dbpass});