use strict;
+use warnings;
use Test::More;
use Test::Warn;
use DBIx::Class::Schema::Loader::Optional::Dependencies;
+use DBIx::Class::Schema::Loader::Utils qw/sigwarn_silencer/;
use lib qw(t/lib);
use make_dbictest_db;
# Takes a $schema as input, runs 4 basic tests
sub test_schema {
- my ($testname, $schema) = @_;
+ my ($testname, $schema) = @_;
- warnings_are ( sub {
- $schema = $schema->clone if !ref $schema;
- isa_ok($schema, 'DBIx::Class::Schema', $testname);
+ warnings_are {
+ $schema = $schema->clone if !ref $schema;
+ isa_ok($schema, 'DBIx::Class::Schema', $testname);
- my $rel_foo_rs = $schema->resultset('Bar')->search({ barid => 3})->search_related('fooref');
- isa_ok($rel_foo_rs, 'DBIx::Class::ResultSet', $testname);
+ my $rel_foo_rs = $schema->resultset('Bar')->search({ barid => 3})->search_related('fooref');
+ isa_ok($rel_foo_rs, 'DBIx::Class::ResultSet', $testname);
- my $rel_foo = $rel_foo_rs->next;
- isa_ok($rel_foo, "DBICTest::Schema::_${testname}::Foo", $testname);
+ my $rel_foo = $rel_foo_rs->next;
+ isa_ok($rel_foo, "DBICTest::Schema::_${testname}::Foo", $testname);
- is($rel_foo->footext, 'Foo record associated with the Bar with barid 3', "$testname correct object");
+ is($rel_foo->footext, 'Foo record associated with the Bar with barid 3', "$testname correct object");
- my $foo_rs = $schema->resultset('Foo');
- my $foo_new = $foo_rs->create({footext => "${testname}_foo"});
- is ($foo_rs->search({footext => "${testname}_foo"})->count, 1, "$testname object created") || die;
- }, [], "No warnings during $testname invocations");
+ my $foo_rs = $schema->resultset('Foo');
+ my $foo_new = $foo_rs->create({footext => "${testname}_foo"});
+ is ($foo_rs->search({footext => "${testname}_foo"})->count, 1, "$testname object created") || die;
+ } [], "No warnings during $testname invocations";
}
my @invocations = (
package DBICTest::Schema::_hardcode;
use base qw/ DBIx::Class::Schema::Loader /;
__PACKAGE__->naming('current');
+ __PACKAGE__->use_namespaces(0);
__PACKAGE__->connection($make_dbictest_db::dsn);
__PACKAGE__;
},
use base qw/ DBIx::Class::Schema::Loader /;
__PACKAGE__->loader_options();
__PACKAGE__->naming('current');
+ __PACKAGE__->use_namespaces(0);
__PACKAGE__->connect($make_dbictest_db::dsn);
},
'make_schema_at' => sub {
use DBIx::Class::Schema::Loader qw/ make_schema_at /;
make_schema_at(
'DBICTest::Schema::_make_schema_at',
- { really_erase_my_files => 1, naming => 'current' },
+ {
+ really_erase_my_files => 1,
+ naming => 'current',
+ use_namespaces => 0
+ },
[ $make_dbictest_db::dsn ],
);
DBICTest::Schema::_make_schema_at->clone;
package DBICTest::Schema::_embedded_options;
use base qw/ DBIx::Class::Schema::Loader /;
__PACKAGE__->naming('current');
+ __PACKAGE__->use_namespaces(0);
__PACKAGE__->connect(
$make_dbictest_db::dsn,
{ loader_options => { really_erase_my_files => 1 } }
package DBICTest::Schema::_embedded_options_in_attrs;
use base qw/ DBIx::Class::Schema::Loader /;
__PACKAGE__->naming('current');
+ __PACKAGE__->use_namespaces(0);
__PACKAGE__->connect(
$make_dbictest_db::dsn,
undef,
$make_dbictest_db::dsn,
{ loader_options => {
really_erase_my_files => 1,
- naming => 'current'
+ naming => 'current',
+ use_namespaces => 0,
} },
],
);
use base qw/ DBIx::Class::Schema::Loader /;
__PACKAGE__->loader_options(
really_erase_my_files => 1,
- naming => 'current'
+ naming => 'current',
+ use_namespaces => 0,
);
__PACKAGE__->connect(
$make_dbictest_db::dsn,
use DBIx::Class::Schema::Loader;
DBIx::Class::Schema::Loader::make_schema_at(
'DBICTest::Schema::_make_schema_at_explicit',
- { really_erase_my_files => 1, naming => 'current' },
+ {
+ really_erase_my_files => 1,
+ naming => 'current',
+ use_namespaces => 0,
+ },
[ $make_dbictest_db::dsn ],
);
DBICTest::Schema::_make_schema_at_explicit->clone;
use DBIx::Class::Schema::Loader;
DBIx::Class::Schema::Loader::make_schema_at(
'DBICTest::Schema::_no_skip_load_external',
- { really_erase_my_files => 1, naming => 'current' },
+ {
+ really_erase_my_files => 1,
+ naming => 'current',
+ use_namespaces => 0,
+ },
[ $make_dbictest_db::dsn ],
);
DBICTest::Schema::_no_skip_load_external->clone;
use DBIx::Class::Schema::Loader;
DBIx::Class::Schema::Loader::make_schema_at(
'DBICTest::Schema::_skip_load_external',
- { really_erase_my_files => 1, naming => 'current', skip_load_external => 1 },
+ {
+ really_erase_my_files => 1,
+ naming => 'current',
+ use_namespaces => 0,
+ skip_load_external => 1,
+ },
[ $make_dbictest_db::dsn ],
);
DBICTest::Schema::_skip_load_external->clone;
package DBICTest::Schema::_use_moose;
use base qw/ DBIx::Class::Schema::Loader /;
__PACKAGE__->naming('current');
+ __PACKAGE__->use_namespaces(0);
__PACKAGE__->connect(
$make_dbictest_db::dsn,
{ loader_options => { use_moose => 1 } }
my $cref = shift @invocations;
my $schema = do {
- local $SIG{__WARN__} = sub {
- warn $_[0] unless $_[0] =~ /really_erase_my_files/
- };
- $cref->();
+ local $SIG{__WARN__} = sigwarn_silencer(
+ qr/Deleting existing file .+ due to 'really_erase_my_files' setting/
+ );
+ $cref->();
};
test_schema($style, $schema);