X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Fstorage%2Fbase.t;h=df3641eacd56bf715e30299d6a9fc14c89c68f39;hb=85ad63df4eaa9b308b9ca5a3cd1aa20b9f730312;hp=b16938b176bccd8badae98aefc328d68a827bef1;hpb=9930caaf7e7c250d914cb1440d9a0f1dd2a1dedc;p=dbsrgits%2FDBIx-Class.git diff --git a/t/storage/base.t b/t/storage/base.t index b16938b..df3641e 100644 --- a/t/storage/base.t +++ b/t/storage/base.t @@ -121,6 +121,7 @@ my $invocations = { }; for my $type (keys %$invocations) { + local $ENV{DBIC_UNSAFE_AUTOCOMMIT_OK}; # we can not use a cloner portably because of the coderef # so compare dumps instead @@ -129,7 +130,7 @@ for my $type (keys %$invocations) { warnings_exist ( sub { $storage->connect_info ($invocations->{$type}{args}) }, - $invocations->{$type}{warn} || (), + $invocations->{$type}{warn} || [], 'Warned about ignored attributes', ); @@ -145,6 +146,42 @@ for my $type (keys %$invocations) { ); } -done_testing; +# make sure connection-less storages do not throw on _determine_driver +# but work with ENV at the same time +SKIP: for my $env_dsn (undef, (DBICTest->_database)[0] ) { + skip 'Subtest relies on being connected to SQLite', 1 + if $env_dsn and $env_dsn !~ /\:SQLite\:/; + + local $ENV{DBI_DSN} = $env_dsn || ''; + + my $s = DBICTest::Schema->connect(); + is_deeply ( + $s->storage->connect_info, + [], + 'Starting with no explicitly passed in connect info' + . ($env_dsn ? ' (with DBI_DSN)' : ''), + ); + + my $sm = $s->storage->sql_maker; + + ok (! $s->storage->connected, 'Storage does not appear connected after SQLMaker instance is taken'); -1; + if ($env_dsn) { + isa_ok($sm, 'DBIx::Class::SQLMaker'); + + ok ( $s->storage->_driver_determined, 'Driver determined (with DBI_DSN)'); + isa_ok ( $s->storage, 'DBIx::Class::Storage::DBI::SQLite' ); + } + else { + isa_ok($sm, 'DBIx::Class::SQLMaker'); + + ok (! $s->storage->_driver_determined, 'Driver undetermined'); + + throws_ok { + $s->storage->ensure_connected + } qr/You did not provide any connection_info/, + 'sensible exception on empty conninfo connect'; + } +} + +done_testing;