X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=t%2Fdb_colinfo.t;h=c56fbf28497b2b954345059a1d6816474574885d;hb=745badbb1417451398a0f983c450fd8725794f65;hp=ed526fc2182e31c709520ec1a5f8adbb719c0fab;hpb=833895f46fdd117b0416acff264041af2ce6f46a;p=maypole.git diff --git a/t/db_colinfo.t b/t/db_colinfo.t index ed526fc..c56fbf2 100755 --- a/t/db_colinfo.t +++ b/t/db_colinfo.t @@ -2,7 +2,7 @@ use Test::More; use lib 'ex'; # Where BeerDB should live BEGIN { - plan tests => 44; + plan tests => 35; } $db = 'test'; @@ -32,7 +32,7 @@ create table $table ( brewery => 'int', style => 'int', name => 'char', - url => 'varchar', + url => 'varchar', tasted => 'date', created => '(time|time)', modified => '(date|time)', @@ -48,7 +48,7 @@ create table $table ( created => 'CURRENT_TIMESTAMP', modified => undef, style => 1, - name => 'noname', + name => 'noname', ); # correct nullables @@ -88,24 +88,28 @@ package main; $DB_Class = 'BeerDB::BeerTestmysql'; -my $drh = DBI->install_driver("mysql"); -my %databases = map { $_ => 1 } $drh->func('localhost', 3306, '_ListDBs'); +my $drh = eval { DBI->install_driver("mysql"); }; +$err = $@; +if ($err) { + $skip_msg = "no driver for MySQL"; +} else { + my %databases = map { $_ => 1 } $drh->func('localhost', 3306, '_ListDBs'); -unless ($databases{test}) { - my $rc = $drh->func("createdb", 'test', 'admin'); -} + unless ($databases{test}) { + my $rc = $drh->func("createdb", 'test', 'admin'); + } -%databases = map { $_ => 1 } $drh->func('localhost', 3306, '_ListDBs'); + %databases = map { $_ => 1 } $drh->func('localhost', 3306, '_ListDBs'); -if ($databases{test}) { - eval {$DB_Class->connection("dbi:mysql:$db", "$dbuser", "$dbpasswd"); }; - $err = $@; - $skip_msg = "Could not connect to MySQL using database 'test', username 'test', and password ''. Check privileges and try again."; -} else { - $err = 'no test db'; - $skip_msg = "Could not connect to MySQL using database 'test' as it doesn't exist, sorry"; + if ($databases{test}) { + eval {$DB_Class->connection("dbi:mysql:$db", "$dbuser", "$dbpasswd"); }; + $err = $@; + $skip_msg = "Could not connect to MySQL using database 'test', username 'test', and password ''. Check privileges and try again."; + } else { + $err = 'no test db'; + $skip_msg = "Could not connect to MySQL using database 'test' as it doesn't exist, sorry"; + } } - $skip_howmany = 22; SKIP: { @@ -143,14 +147,17 @@ unless ($err) { } $skip_msg = "Could not connect to SQLite database 't/test.db'"; -$skip_howmany = 22; +$skip_howmany = 13; SKIP: { skip $skip_msg, $skip_howmany if $err; $DB_Class->table($table); +#use Data::Dumper; run_method_tests($DB_Class,'column_type', %correct_types); - run_method_tests($DB_Class,'column_default', %correct_defaults); - run_method_tests($DB_Class,'column_nullable', %correct_nullables); + # No support default + #run_method_tests($DB_Class,'column_default', %correct_defaults); + # I think sqlite driver allows everything to be nullable. + #run_method_tests($DB_Class,'column_nullable', %correct_nullables); };