.*.sw?
\.DS_Store
.prove
+tmp/
local/
cpanfile
cpanfile.snapshot
{{$NEXT}}
+- use Test::TempDir::Tiny for better test parallelization and cleanup
+
+
1.001_029 2015-01-14 15:17:28+00:00 Europe/London
- fix for bugtracker pointing to gh, should be rt, added test to identify windows issues
use DBIx::Class::Fixtures;
use Test::More tests => 3;
+use Test::TempDir::Tiny;
use IO::All;
+my $tempdir = tempdir;
+
my $config_dir = io->catfile(qw't var configs')->name;
my $imaginary_config_dir = io->catfile(qw't var not_there')->name;
use DBICTest;
use Path::Class;
use Data::Dumper;
+use Test::TempDir::Tiny;
use IO::All;
+my $tempdir = tempdir;
+
use if $^O eq 'MSWin32','Devel::Confess';
# set up and populate schema
-ok(my $schema = DBICTest->init_schema(), 'got schema');
+ok(my $schema = DBICTest->init_schema(db_dir => $tempdir), 'got schema');
my $config_dir = io->catfile(qw't var configs')->name;
{
# do dump
ok(my $fixtures = DBIx::Class::Fixtures->new({ config_dir => $config_dir, debug => 0 }), 'object created with correct config dir');
- ok($fixtures->dump({ config => 'simple.json', schema => $schema, directory => io->catfile(qw't var fixtures')->name }), 'simple dump executed okay');
+ ok($fixtures->dump({ config => 'simple.json', schema => $schema, directory => $tempdir }), 'simple dump executed okay');
# check dump is okay
- my $dir = dir(io->catfile(qw't var fixtures artist')->name);
- ok(-e io->catfile(qw't var fixtures artist')->name, 'artist directory created');
+ my $dir = dir(io->catfile($tempdir, qw'artist')->name);
+ ok(-e io->catfile($tempdir, qw'artist')->name, 'artist directory created');
my @children = $dir->children;
is(scalar(@children), 1, 'right number of fixtures created');
"quantity" => 1
}]
},
- schema => $schema,
- directory => io->catfile(qw't var fixtures')->name,
+ schema => $schema,
+ directory => $tempdir,
}), 'simple dump executed okay');
# check dump is okay
- my $dir = dir(io->catfile(qw't var fixtures artist')->name);
- ok(-e io->catfile(qw't var fixtures artist')->name, 'artist directory created');
+ my $dir = dir(io->catfile($tempdir, qw'artist')->name);
+ ok(-e io->catfile($tempdir, qw'artist')->name, 'artist directory created');
my @children = $dir->children;
is(scalar(@children), 1, 'right number of fixtures created');
use DBICTest;
use Path::Class;
use Data::Dumper;
+use Test::TempDir::Tiny;
use IO::All;
+
+my $tempdir = tempdir;
# set up and populate schema
-ok(my $schema = DBICTest->init_schema(), 'got schema');
+ok(my $schema = DBICTest->init_schema(db_dir => $tempdir), 'got schema');
my $config_dir = io->catfile(qw't var configs')->name;
# do dump
ok(my $fixtures = DBIx::Class::Fixtures->new({ config_dir => $config_dir, debug => 0 }), 'object created with correct config dir');
-ok($fixtures->dump({ config => 'quantity.json', schema => $schema, directory => io->catfile(qw't var fixtures')->name }), 'quantity dump executed okay');
+ok($fixtures->dump({ config => 'quantity.json', schema => $schema, directory => $tempdir }), 'quantity dump executed okay');
# check dump is okay
-my $dir = dir(io->catfile(qw't var fixtures CD')->name);
+my $dir = dir(io->catfile($tempdir, qw'CD')->name);
my @children = $dir->children;
is(scalar(@children), 3, 'right number of cd fixtures created');
use DBICTest;
use Path::Class;
use Data::Dumper;
+use Test::TempDir::Tiny;
use IO::All;
+my $tempdir = tempdir;
+
# set up and populate schema
-ok(my $schema = DBICTest->init_schema(), 'got schema');
+ok(my $schema = DBICTest->init_schema(db_dir => $tempdir), 'got schema');
my $config_dir = io->catfile(qw't var configs')->name;
# do dump
ok(my $fixtures = DBIx::Class::Fixtures->new({ config_dir => $config_dir, debug => 0 }), 'object created with correct config dir');
-ok($fixtures->dump({ config => 'fetch.json', schema => $schema, directory => io->catfile(qw't var fixtures')->name }), 'fetch dump executed okay');
+ok($fixtures->dump({ config => 'fetch.json', schema => $schema, directory => $tempdir }), 'fetch dump executed okay');
# check dump is okay
-my $dir = dir(io->catfile(qw't var fixtures artist')->name);
+my $dir = dir(io->catfile($tempdir, qw'artist')->name);
my @children = $dir->children;
is(scalar(@children), 3, 'right number of artist fixtures created');
my $artist1 = $schema->resultset('Artist')->find(1);
my @artist1_cds = $artist1->cds->all;
foreach my $cd (@artist1_cds) {
- my $cd_fix_file = dir(io->catfile(qw't var fixtures')->name, 'CD', $cd->id . '.fix');
+ my $cd_fix_file = dir($tempdir, 'CD', $cd->id . '.fix');
ok(-e $cd_fix_file, "artist1's cd rel dumped okay");
}
my $artist2 = $schema->resultset('Artist')->find(2);
my @artist2_cds = $artist2->cds->search({ year => { '>' => 2002 } });
foreach my $cd (@artist2_cds) {
- my $cd_fix_file = dir(io->catfile(qw't var fixtures')->name, 'CD', $cd->id . '.fix');
+ my $cd_fix_file = dir($tempdir, 'CD', $cd->id . '.fix');
ok(-e $cd_fix_file, "artist2's cd rel dumped okay");
}
-my $cd_dir = dir(io->catfile(qw't var fixtures CD')->name);
+my $cd_dir = dir(io->catfile($tempdir, qw'CD')->name);
@children = $cd_dir->children;
is(scalar(@children), scalar(@artist1_cds) + scalar(@artist2_cds), 'no extra cd fixtures dumped');
use DBICTest;
use Path::Class;
use Data::Dumper;
+use Test::TempDir::Tiny;
use IO::All;
+my $tempdir = tempdir;
+
# set up and populate schema
-ok(my $schema = DBICTest->init_schema(), 'got schema');
+ok(my $schema = DBICTest->init_schema(db_dir => $tempdir), 'got schema');
my $config_dir = io->catfile(qw't var configs')->name;
# do dump
ok(my $fixtures = DBIx::Class::Fixtures->new({ config_dir => $config_dir, debug => 0 }), 'object created with correct config dir');
-ok($fixtures->dump({ config => 'rules.json', schema => $schema, directory => io->catfile(qw't var fixtures')->name }), 'fetch dump executed okay');
+ok($fixtures->dump({ config => 'rules.json', schema => $schema, directory => $tempdir }), 'fetch dump executed okay');
# check dump is okay
-my $dir = dir(io->catfile(qw't var fixtures')->name);
+my $dir = dir($tempdir);
my $cd_dir = dir($dir, 'CD');
my $track_dir = dir($dir, 'track');
plan tests => 5;
# set up and populate schema
-ok(my $schema = DBICTest->init_schema( dsn => $ENV{FIXTURETEST_DSN}, user => $ENV{FIXTURETEST_USER}, pass => $ENV{FIXTURETEST_PASS}), 'got schema');
+ok(my $schema = DBICTest->init_schema(db_dir => $tempdir, dsn => $ENV{FIXTURETEST_DSN}, user => $ENV{FIXTURETEST_USER}, pass => $ENV{FIXTURETEST_PASS}), 'got schema');
my $config_dir = io->catfile(qw't var configs')->name;
# do dump
ok(my $fixtures = DBIx::Class::Fixtures->new({ config_dir => $config_dir, debug => 0 }), 'object created with correct config dir');
-ok($fixtures->dump({ config => 'date.json', schema => $schema, directory => io->catfile(qw't var fixtures')->name }), 'date dump executed okay');
-ok($fixtures->populate({ ddl => DBICTest->get_ddl_file($schema), connection_details => [$ENV{FIXTURETEST_DSN}, $ENV{FIXTURETEST_USER} || '', $ENV{FIXTURETEST_PASS} || ''], directory => io->catfile(qw't var fixtures')->name }), 'date populate okay');
+ok($fixtures->dump({ config => 'date.json', schema => $schema, directory => $tempdir }), 'date dump executed okay');
+ok($fixtures->populate({ ddl => DBICTest->get_ddl_file($schema), connection_details => [$ENV{FIXTURETEST_DSN}, $ENV{FIXTURETEST_USER} || '', $ENV{FIXTURETEST_PASS} || ''], directory => $tempdir }), 'date populate okay');
my $track = $schema->resultset('Track')->find(9);
my $now = DateTime->now();
use DBICTest;
use Path::Class;
use Data::Dumper;
+use Test::TempDir::Tiny;
use IO::All;
+
+my $tempdir = tempdir;
use if $^O eq 'MSWin32','Devel::Confess';
-plan tests => 16;
+plan tests => 18;
# set up and populate schema
-ok(my $schema = DBICTest->init_schema( ), 'got schema');
+ok(my $schema = DBICTest->init_schema(db_dir => $tempdir, ), 'got schema');
my $config_dir = io->catfile(qw't var configs')->name;
-my $fixture_dir = io->catfile(qw't var fixtures')->name;
+my $fixture_dir = $tempdir;
# do dump
{
use DBICTest;
use Path::Class;
use Data::Dumper;
+use Test::TempDir::Tiny;
use IO::All;
+my $tempdir = tempdir;
+
# set up and populate schema
-ok(my $schema = DBICTest->init_schema(), 'got schema');
+ok(my $schema = DBICTest->init_schema(db_dir => $tempdir), 'got schema');
my $config_dir = io->catfile(qw't var configs')->name;
# do dump
ok(my $fixtures = DBIx::Class::Fixtures->new({ config_dir => $config_dir, debug => 0 }), 'object created with correct config dir');
-ok($fixtures->dump({ config => 'includes.json', schema => $schema, directory => io->catfile(qw't var fixtures')->name }), 'simple dump executed okay');
+ok($fixtures->dump({ config => 'includes.json', schema => $schema, directory => $tempdir }), 'simple dump executed okay');
# check dump is okay
-my $producer_dir = dir(io->catfile(qw't var fixtures producer')->name);
+my $producer_dir = dir(io->catfile($tempdir, qw'producer')->name);
ok(-e $producer_dir, 'producer directory created');
my @producer_children = $producer_dir->children;
is(scalar(@producer_children), 1, 'right number of fixtures created');
-my $artist_dir = dir(io->catfile(qw't var fixtures artist')->name);
+my $artist_dir = dir(io->catfile($tempdir, qw'artist')->name);
ok(-e $artist_dir, 'artist directory created');
my @artist_children = $artist_dir->children;
use DBICTest;
use Path::Class;
use Data::Dumper;
+use Test::TempDir::Tiny;
use IO::All;
+my $tempdir = tempdir;
+
# set up and populate schema
-ok(my $schema = DBICTest->init_schema(), 'got schema');
+ok(my $schema = DBICTest->init_schema(db_dir => $tempdir), 'got schema');
my $config_dir = io->catfile(qw't var configs')->name;
# do dump
ok(my $fixtures = DBIx::Class::Fixtures->new({ config_dir => $config_dir, debug => 0 }), 'object created with correct config dir');
-ok($fixtures->dump({ config => 'scalar_ref.json', schema => $schema, directory => io->catfile(qw't var fixtures')->name }), 'simple dump executed okay');
+ok($fixtures->dump({ config => 'scalar_ref.json', schema => $schema, directory => $tempdir }), 'simple dump executed okay');
{
# check dump is okay
- my $dir = dir(io->catfile(qw't var fixtures artist')->name);
+ my $dir = dir(io->catfile($tempdir, qw'artist')->name);
my @children = $dir->children;
is(scalar(@children), 1, 'right number of fixtures created');
{
# check dump is okay
- my $dir = dir(io->catfile(qw't var fixtures CD')->name);
+ my $dir = dir(io->catfile($tempdir, qw'CD')->name);
my @children = $dir->children;
is(scalar(@children), 1, 'right number of fixtures created');
use DBICTest;
use Path::Class;
use Data::Dumper;
+use Test::TempDir::Tiny;
use IO::All;
+my $tempdir = tempdir;
+
# set up and populate schema
-ok(my $schema = DBICTest->init_schema(), 'got schema');
+ok(my $schema = DBICTest->init_schema(db_dir => $tempdir), 'got schema');
my $config_dir = io->catfile(qw't var configs')->name;
# do dump
ok(my $fixtures = DBIx::Class::Fixtures->new({ config_dir => $config_dir }), 'object created with correct config dir');
-my $output_dir = dir(io->catfile(qw't var fixtures')->name);
+my $output_dir = dir($tempdir);
$output_dir->mkpath;
my $file = file($output_dir, 'test_file');
my $fh = $file->open('w');
print $fh 'test file';
$fh->close;
-ok($fixtures->dump({ config => 'simple.json', schema => $schema, directory => io->catfile(qw't var fixtures')->name }), 'simple dump executed okay');
+ok($fixtures->dump({ config => 'simple.json', schema => $schema, directory => $tempdir }), 'simple dump executed okay');
ok(-e $file, 'file still exists');
use DBICTest;
use Path::Class;
use Data::Dumper;
+use Test::TempDir::Tiny;
use IO::All;
+my $tempdir = tempdir;
+
# set up and populate schema
-ok(my $schema = DBICTest->init_schema(), 'got schema');
+ok(my $schema = DBICTest->init_schema(db_dir => $tempdir), 'got schema');
my $config_dir = io->catfile(qw't var configs')->name;
# do dump
DBICTest->populate_schema($schema);
ok($fixtures->dump({
config => "$set.json",
- schema => $schema,
- directory => io->catfile(qw't var fixtures')->name
+ schema => $schema,
+ directory => $tempdir
}), "$set dump executed okay"
);
$fixtures->populate({
ddl => io->catfile(qw[t lib sqlite.sql])->name,
- connection_details => ['dbi:SQLite:'.io->catfile(qw[ t var DBIxClass.db ])->name, '', ''],
- directory => io->catfile(qw't var fixtures')->name
+ connection_details => ['dbi:SQLite:'.io->catfile($tempdir, qw[ DBIxClass.db ])->name, '', ''],
+ directory => $tempdir
});
- $schema = DBICTest->init_schema( no_deploy => 1);
+ $schema = DBICTest->init_schema(db_dir => $tempdir, no_deploy => 1);
- my $fixture_dir = dir(io->catfile(qw't var fixtures')->name);
+ my $fixture_dir = dir($tempdir);
foreach my $class ($schema->sources) {
my $source_dir = dir($fixture_dir, lc($class));
is($schema->resultset($class)->count,
}
# use_create => 1
-$schema = DBICTest->init_schema();
+$schema = DBICTest->init_schema(db_dir => $tempdir);
$fixtures = DBIx::Class::Fixtures->new({
config_dir => $config_dir,
debug => 0
ok( $fixtures->dump({
config => "use_create.json",
schema => $schema,
- directory => io->catfile(qw't var fixtures')->name
+ directory => $tempdir
}), "use_create dump executed okay"
);
-$schema = DBICTest->init_schema( no_populate => 1 );
+$schema = DBICTest->init_schema(db_dir => $tempdir, no_populate => 1 );
$fixtures->populate({
- directory => io->catfile(qw't var fixtures')->name,
- connection_details => ['dbi:SQLite:'.io->catfile(qw[ t var DBIxClass.db ])->name, '', ''],
+ directory => $tempdir,
+ connection_details => ['dbi:SQLite:'.io->catfile($tempdir, qw[ DBIxClass.db ])->name, '', ''],
schema => $schema,
no_deploy => 1,
use_create => 1
});
-$schema = DBICTest->init_schema( no_deploy => 1, no_populate => 1 );
+$schema = DBICTest->init_schema(db_dir => $tempdir, no_deploy => 1, no_populate => 1 );
is( $schema->resultset( "Artist" )->find({ artistid => 4 })->name, "Test Name", "use_create => 1 ok" );
-$schema = DBICTest->init_schema( no_populate => 1 );
+$schema = DBICTest->init_schema(db_dir => $tempdir, no_populate => 1 );
$fixtures->populate({
- directory => io->catfile(qw't var fixtures')->name,
- connection_details => ['dbi:SQLite:'.io->catfile(qw[ t var DBIxClass.db ])->name, '', ''],
+ directory => $tempdir,
+ connection_details => ['dbi:SQLite:'.io->catfile($tempdir, qw[ DBIxClass.db ])->name, '', ''],
schema => $schema,
no_deploy => 1,
use_find_or_create => 1
});
is( $schema->resultset( "Artist" )->find({ artistid => 4 })->name, "Test Name", "use_find_or_create => 1 ok" );
$fixtures->populate({
- directory => io->catfile(qw't var fixtures')->name,
- connection_details => ['dbi:SQLite:'.io->catfile(qw[ t var DBIxClass.db ])->name, '', ''],
+ directory => $tempdir,
+ connection_details => ['dbi:SQLite:'.io->catfile($tempdir, qw[ DBIxClass.db ])->name, '', ''],
schema => $schema,
no_deploy => 1,
use_find_or_create => 1
use Data::Dumper;
use DBICTest::Schema2;
use Devel::Confess;
+use Test::TempDir::Tiny;
use IO::All;
+my $tempdir = tempdir;
+
# set up and populate normal schema
-ok(my $schema = DBICTest->init_schema(), 'got schema');
+ok(my $schema = DBICTest->init_schema(db_dir => $tempdir), 'got schema');
my $config_dir = io->catfile(qw't var configs')->name;
-my $dbix_class_different = io->catfile(qw[ t var DBIxClassDifferent.db ])->name;
+my $dbix_class_different = io->catfile($tempdir, qw[ DBIxClassDifferent.db ])->name;
my @different_connection_details = (
"dbi:SQLite:$dbix_class_different",
'',
ok($fixtures->dump({
config => "simple.json",
- schema => $schema,
- directory => io->catfile(qw't var fixtures')->name
+ schema => $schema,
+ directory => $tempdir
}),
"simple dump executed okay");
ok($fixtures->populate({
ddl => io->catfile(qw[t lib sqlite_different.sql])->name,
connection_details => [@different_connection_details],
- directory => io->catfile(qw't var fixtures')->name
+ directory => $tempdir
}),
'mysql populate okay');
ok($fixtures->populate({
ddl => io->catfile(qw[ t lib sqlite.sql ])->name,
- connection_details => ['dbi:SQLite:'.io->catfile(qw[ t var DBIxClass.db ])->name, '', ''],
- directory => io->catfile(qw't var fixtures')->name
+ connection_details => ['dbi:SQLite:'.io->catfile($tempdir, qw[ DBIxClass.db ])->name, '', ''],
+ directory => $tempdir
}),
'sqlite populate okay');
-$schema = DBICTest->init_schema(no_deploy => 1);
+$schema = DBICTest->init_schema(db_dir => $tempdir,no_deploy => 1);
is($schema->resultset('Artist')->count, 1, 'artist imported to sqlite okay');
use DBICTest;
use Path::Class;
use Data::Dumper;
+use Test::TempDir::Tiny;
use IO::All;
+my $tempdir = tempdir;
+
# set up and populate schema
-ok(my $schema = DBICTest->init_schema(), 'got schema');
+ok(my $schema = DBICTest->init_schema(db_dir => $tempdir), 'got schema');
my $config_dir = io->catfile(qw't var configs')->name;
# do dump
ok($fixtures->dump({
config => "simple.json",
schema => $schema,
- directory => io->catfile(qw't var fixtures' )->name
+ directory => $tempdir,
}),
"simple dump executed okay");
$fixtures->populate({
ddl => io->catfile(qw't lib sqlite.sql')->name,
- connection_details => ['dbi:SQLite:'.io->catfile(qw't var DBIxClass.db')->name, '', ''],
- directory => io->catfile(qw't var fixtures')->name,
+ connection_details => ['dbi:SQLite:'.io->catfile($tempdir, 'DBIxClass.db')->name, '', ''],
+ directory => $tempdir,
post_ddl => io->catfile(qw't lib post_sqlite.sql')->name
});
-$schema = DBICTest->init_schema(no_deploy => 1);
+$schema = DBICTest->init_schema(db_dir => $tempdir,no_deploy => 1);
my $producer = $schema->resultset('Producer')->find(999999);
isa_ok($producer, "DBICTest::Producer", "Got post-ddl producer");
use DBICTest;
use Path::Class;
use Data::Dumper;
+use Test::TempDir::Tiny;
use IO::All;
+my $tempdir = tempdir;
+
# set up and populate schema
-ok(my $schema = DBICTest->init_schema(), 'got schema');
+ok(my $schema = DBICTest->init_schema(db_dir => $tempdir), 'got schema');
my $config_dir = io->catfile(qw't var configs')->name;
# do dump
ok(my $fixtures = DBIx::Class::Fixtures->new({ config_dir => $config_dir, debug => 0 }), 'object created with correct config dir');
-ok($fixtures->dump({ config => 'multiple-has-many.json', schema => $schema, directory => io->catfile(qw't var fixtures')->name }), 'fetch dump executed okay');
+ok($fixtures->dump({ config => 'multiple-has-many.json', schema => $schema, directory => $tempdir }), 'fetch dump executed okay');
# check dump is okay
-my $dir = dir(io->catfile(qw't var fixtures')->name);
+my $dir = dir($tempdir);
-ok( -e io->catfile(qw't var fixtures producer')->name, "We fetched some producers" );
-ok( -e io->catfile(qw't var fixtures cd_to_producer')->name, "We fetched some cd producer xrefs" );
-ok( -e io->catfile(qw't var fixtures CD')->name, "We fetched some cds" );
-ok( -e io->catfile(qw't var fixtures artist')->name, "We fetched some artists" );
+ok( -e io->catfile($tempdir, qw'producer')->name, "We fetched some producers" );
+ok( -e io->catfile($tempdir, qw'cd_to_producer')->name, "We fetched some cd producer xrefs" );
+ok( -e io->catfile($tempdir, qw'CD')->name, "We fetched some cds" );
+ok( -e io->catfile($tempdir, qw'artist')->name, "We fetched some artists" );
__END__
while ( my ($dirname, $sourcename) = each %dirs ) {
use DBICTest;
use Path::Class;
use Data::Dumper;
+use Test::TempDir::Tiny;
use IO::All;
+my $tempdir = tempdir;
+
# set up and populate schema
-ok(my $schema = DBICTest->init_schema(), 'got schema');
+ok(my $schema = DBICTest->init_schema(db_dir => $tempdir), 'got schema');
my $config_dir = io->catfile(qw't var configs')->name;
# do dump
ok(my $fixtures = DBIx::Class::Fixtures->new({ config_dir => $config_dir, debug => 0 }), 'object created with correct config dir');
-ok($fixtures->dump({ config => 'rules2.json', schema => $schema, directory => io->catfile(qw't var fixtures')->name }), 'quantity dump executed okay');
+ok($fixtures->dump({ config => 'rules2.json', schema => $schema, directory => $tempdir }), 'quantity dump executed okay');
# check dump is okay
foreach my $test (
[ 'CD', 2, 'CD', 'cdid' ],
) {
my ($dirname, $count, $moniker, $id) = @$test;
- my $dir = dir(io->catfile(qw"t var fixtures",$dirname)->name);
+ my $dir = dir(io->catfile($tempdir,$dirname)->name);
my @children = $dir->children;
is(scalar(@children), $count, "right number of $dirname fixtures created");
use Path::Class;
use Data::Dumper;
use File::Spec;
+use Test::TempDir::Tiny;
use IO::All;
+my $tempdir = tempdir;
+
ok my $config_dir = io->catfile(qw't var configs')->name;
-ok my $schema = DBICTest->init_schema(), 'got schema';
+ok my $schema = DBICTest->init_schema(db_dir => $tempdir), 'got schema';
ok my $fixtures = DBIx::Class::Fixtures->new({config_dir => $config_dir}),
'object created with correct config dir';
schema => $schema,
directory_template => sub {
my ($fixture, $params, $set) = @_;
- File::Spec->catdir('t','var','fixtures','multi', $set);
+ File::Spec->catdir($tempdir,'multi', $set);
},
});
-ok -e io->catfile(qw't var fixtures multi date.json artist')->name,
+ok -e io->catfile($tempdir, qw'multi date.json artist')->name,
'artist directory created';
-my $dir = dir(io->catfile(qw't var fixtures multi date.json artist')->name);
+my $dir = dir(io->catfile($tempdir, qw'multi date.json artist')->name);
my @children = $dir->children;
is(scalar(@children), 1, 'right number of fixtures created');
use lib qw(t/lib);
use ExtraTest::Schema;
+use Test::TempDir::Tiny;
use IO::All;
+my $tempdir = tempdir;
+
(my $schema = ExtraTest::Schema->connect(
'DBI:SQLite::memory:','',''))->init_schema;
$fixtures->dump({
config => 'extra.json',
schema => $schema,
- directory => io->catfile(qw"t var fixtures photos")->name }),
+ directory => io->catfile($tempdir, qw" photos")->name }),
'fetch dump executed okay');
ok my $key = $schema->resultset('Photo')->first->file;
$fixtures->populate({
no_deploy => 1,
schema => $schema,
- directory => io->catfile(qw"t var fixtures photos")->name}),
+ directory => io->catfile($tempdir, qw" photos")->name}),
'populated');
is $key, $schema->resultset('Photo')->first->file,
END {
rmtree io->catfile(qw't var files')->name;
- rmtree io->catfile(qw't var fixtures photos')->name;
+ rmtree io->catfile($tempdir, qw'photos')->name;
}
--- /dev/null
+#!perl
+
+use DBIx::Class::Fixtures;
+use Test::More tests => 7;
+use lib qw(t/lib);
+use DBICTest;
+use Path::Class;
+use Data::Dumper;
+use IO::All;
+
+use if $^O eq 'MSWin32','Devel::Confess';
+# set up and populate schema
+ok(my $schema = DBICTest->init_schema(), 'got schema');
+
+my $config_dir = io->catfile(qw't var configs')->name;
+
+# Add washedup
+
+ok my $artist = $schema->resultset("Artist")->find(1);
+ok my $washed_up = $artist->create_related('washed_up', +{});
+ok $washed_up->fk_artistid;
+
+
+ok(my $fixtures = DBIx::Class::Fixtures->new({ config_dir => $config_dir, debug => 0 }), 'object created with correct config dir');
+ok($fixtures->dump({
+ config => {
+ "might_have" => {
+ "fetch" => 0
+ },
+ "has_many" => {
+ "fetch" => 0
+ },
+ "sets" => [{
+ "class" => "Artist::WashedUp",
+ "quantity" => 1
+ }]
+ },
+ schema => $schema,
+ directory => io->catfile(qw't var fixtures')->name,
+ }), 'simple dump executed okay');
+
+ok(
+ $fixtures->dump({
+ config => 'washed-up.json',
+ schema => $schema,
+ directory => io->catfile(qw't var fixtures')->name,
+ }));
+
+
my $self = shift;
my %args = @_;
- my $db_file = "t/var/DBIxClass.db";
+ my $db_file
+ = $args{db_dir}
+ ? "$args{db_dir}/DBIxClass.db"
+ : "t/var/DBIxClass.db"
+ ;
mkdir("t/var") unless -d "t/var";
if ( !$args{no_deploy} ) {
[ 32948, 'Big PK' ],
]);
+ $schema->populate('Artist::WashedUp', [
+ [ qw/fk_artistid/ ],
+ [ 2 ],
+ ]);
+
$schema->populate('CD', [
[ qw/cdid artist title year/ ],
[ 1, 1, "Spoonful of bees", 1999 ],
no warnings qw/qw/;
-__PACKAGE__->load_classes(qw/Artist CD Track Tag Producer CD_to_Producer/);
+__PACKAGE__->load_classes(qw/Artist Artist::WashedUp CD Track Tag Producer CD_to_Producer/);
1;
{ order_by => 'year' },
);
+__PACKAGE__->might_have(
+ washed_up => 'DBICTest::Schema::Artist::WashedUp',
+ {'foreign.fk_artistid' => 'self.artistid'},
+);
+
sub new {
my ( $class, $args ) = @_;
--- /dev/null
+package # hide from PAUSE
+ DBICTest::Schema::Artist::WashedUp;
+
+use base 'DBIx::Class::Core';
+
+__PACKAGE__->table('artist_washed_up');
+__PACKAGE__->add_columns(
+ 'fk_artistid' => {
+ data_type => 'integer',
+ },
+);
+
+__PACKAGE__->set_primary_key('fk_artistid');
+__PACKAGE__->belongs_to(
+ 'artist', 'DBICTest::Schema::Artist',
+ { 'foreign.artistid' => 'self.fk_artistid' }
+);
+
+1;
name varchar(100)
);
+--
+-- Table: artist_washed_up
+--
+DROP TABLE IF EXISTS artist_washed_up;
+CREATE TABLE artist_washed_up (
+ fk_artistid INTEGER PRIMARY KEY NOT NULL
+);
--
-- Table: cd
name varchar(100)
);
+--
+-- Table: artist_washed_up
+--
+CREATE TABLE artist_washed_up (
+ fk_artistid INTEGER PRIMARY KEY NOT NULL
+);
--
-- Table: cd
--- /dev/null
+{
+ "might_have" : {
+ "fetch" : 0
+ },
+ "belongs_to" : {
+ "fetch" : 0
+ },
+ "sets" : [
+ {
+ "class" : "Artist::WashedUp",
+ "quantity" : "all"
+ }
+ ],
+ "has_many" : {
+ "fetch" : 0
+ }
+}
+
+++ /dev/null
-$HASH1 = {
- artist => 1,
- cdid => 1,
- title => 'Spoonful of bees',
- year => 1999
- };
+++ /dev/null
-$HASH1 = {
- artist => 1,
- cdid => 2,
- title => 'Forkful of bees',
- year => 2001
- };
+++ /dev/null
-$HASH1 = {
- artist => 1,
- cdid => 3,
- title => 'Caterwaulin\' Blues',
- year => 1997
- };
+++ /dev/null
-$HASH1 = {
- artist => 2,
- cdid => 4,
- title => 'Generic Manufactured Singles',
- year => 2001
- };
+++ /dev/null
-$HASH1 = {
- artist => 2,
- cdid => 5,
- title => "Unicode Chars \x{2122} \251 \x{2022} \x{2020} \x{2211} \x{3b1} \x{3b2} \253 \273 \x{2192} \x{2026}",
- year => 2015
- };
+++ /dev/null
-$HASH1 = {
- artist => 3,
- cdid => 6,
- title => "\334bertreibung \344lterer Umlaute",
- year => 1998
- };
+++ /dev/null
-$VAR1 = {
- 'sets' => [
- {
- 'class' => 'CD',
- 'quantity' => 'all'
- }
- ],
- 'might_have' => {
- 'fetch' => 0
- },
- 'has_many' => {
- 'fetch' => 0
- },
- 'belongs_to' => {
- 'fetch' => 1
- }
- };
+++ /dev/null
-1.001029
\ No newline at end of file
+++ /dev/null
-$HASH1 = {
- artistid => 1,
- name => 'Caterwauler McCrae'
- };
+++ /dev/null
-$HASH1 = {
- artistid => 2,
- name => 'Random Boy Band'
- };
+++ /dev/null
-$HASH1 = {
- artistid => 3,
- name => 'We Are Goth'
- };
+++ /dev/null
-$HASH1 = {
- artist => 1,
- cdid => 1,
- title => 'Spoonful of bees',
- year => 1999
- };
+++ /dev/null
-$HASH1 = {
- artist => 1,
- cdid => 2,
- title => 'Forkful of bees',
- year => 2001
- };
+++ /dev/null
-$HASH1 = {
- artist => 1,
- cdid => 3,
- title => 'Caterwaulin\' Blues',
- year => 1997
- };
+++ /dev/null
-$HASH1 = {
- artist => 2,
- cdid => 4,
- title => 'Generic Manufactured Singles',
- year => 2001
- };
+++ /dev/null
-$HASH1 = {
- artist => 2,
- cdid => 5,
- title => "Unicode Chars \x{2122} \251 \x{2022} \x{2020} \x{2211} \x{3b1} \x{3b2} \253 \273 \x{2192} \x{2026}",
- year => 2015
- };
+++ /dev/null
-$HASH1 = {
- artist => 3,
- cdid => 6,
- title => "\334bertreibung \344lterer Umlaute",
- year => 1998
- };
+++ /dev/null
-$VAR1 = {
- 'sets' => [
- {
- 'quantity' => 'all',
- 'class' => 'Producer'
- },
- {
- 'quantity' => 'all',
- 'class' => 'CD'
- },
- {
- 'quantity' => 'all',
- 'class' => 'Artist'
- },
- {
- 'quantity' => 'all',
- 'class' => 'Track'
- },
- {
- 'quantity' => 'all',
- 'class' => 'CD_to_Producer'
- }
- ],
- 'belongs_to' => {
- 'fetch' => 0
- },
- 'has_many' => {
- 'fetch' => 0
- },
- 'might_have' => {
- 'fetch' => 0
- }
- };
+++ /dev/null
-1.001029
\ No newline at end of file
+++ /dev/null
-$HASH1 = {
- artistid => 1,
- name => 'Caterwauler McCrae'
- };
+++ /dev/null
-$HASH1 = {
- artistid => 2,
- name => 'Random Boy Band'
- };
+++ /dev/null
-$HASH1 = {
- artistid => 3,
- name => 'We Are Goth'
- };
+++ /dev/null
-$HASH1 = {
- artistid => 32948,
- name => 'Big PK'
- };
+++ /dev/null
-$HASH1 = {
- artistid => 4,
- name => ''
- };
+++ /dev/null
-$HASH1 = {
- cd => 1,
- producer => 1
- };
+++ /dev/null
-$HASH1 = {
- cd => 1,
- producer => 2
- };
+++ /dev/null
-$HASH1 = {
- cd => 1,
- producer => 3
- };
+++ /dev/null
-$HASH1 = {
- cd => 2,
- producer => 1
- };
+++ /dev/null
-$HASH1 = {
- cd => 2,
- producer => 2
- };
+++ /dev/null
-$HASH1 = {
- cd => 3,
- producer => 3
- };
+++ /dev/null
-$HASH1 = {
- name => 'Matt S Trout',
- producerid => 1
- };
+++ /dev/null
-$HASH1 = {
- name => 'Bob The Builder',
- producerid => 2
- };
+++ /dev/null
-$HASH1 = {
- name => 'Fred The Phenotype',
- producerid => 3
- };
+++ /dev/null
-$HASH1 = {
- cd => 4,
- last_updated_on
- => undef,
- position
- => 1,
- title => 'Boring Name',
- trackid => 10
- };
+++ /dev/null
-$HASH1 = {
- cd => 4,
- last_updated_on
- => undef,
- position
- => 2,
- title => 'Boring Song',
- trackid => 11
- };
+++ /dev/null
-$HASH1 = {
- cd => 4,
- last_updated_on
- => undef,
- position
- => 3,
- title => 'No More Ideas',
- trackid => 12
- };
+++ /dev/null
-$HASH1 = {
- cd => 5,
- last_updated_on
- => undef,
- position
- => 1,
- title => 'Sad',
- trackid => 13
- };
+++ /dev/null
-$HASH1 = {
- cd => 5,
- last_updated_on
- => undef,
- position
- => 2,
- title => 'Under The Weather',
- trackid => 14
- };
+++ /dev/null
-$HASH1 = {
- cd => 5,
- last_updated_on
- => undef,
- position
- => 3,
- title => 'Suicidal',
- trackid => 15
- };
+++ /dev/null
-$HASH1 = {
- cd => 1,
- last_updated_on
- => undef,
- position
- => 1,
- title => 'The Bees Knees',
- trackid => 16
- };
+++ /dev/null
-$HASH1 = {
- cd => 1,
- last_updated_on
- => undef,
- position
- => 2,
- title => 'Apiary',
- trackid => 17
- };
+++ /dev/null
-$HASH1 = {
- cd => 1,
- last_updated_on
- => undef,
- position
- => 3,
- title => 'Beehind You',
- trackid => 18
- };
+++ /dev/null
-$HASH1 = {
- cd => 2,
- last_updated_on
- => undef,
- position
- => 1,
- title => 'Stung with Success',
- trackid => 4
- };
+++ /dev/null
-$HASH1 = {
- cd => 2,
- last_updated_on
- => undef,
- position
- => 2,
- title => 'Stripy',
- trackid => 5
- };
+++ /dev/null
-$HASH1 = {
- cd => 2,
- last_updated_on
- => undef,
- position
- => 3,
- title => 'Sticky Honey',
- trackid => 6
- };
+++ /dev/null
-$HASH1 = {
- cd => 3,
- last_updated_on
- => undef,
- position
- => 1,
- title => 'Yowlin',
- trackid => 7
- };
+++ /dev/null
-$HASH1 = {
- cd => 3,
- last_updated_on
- => undef,
- position
- => 2,
- title => 'Howlin',
- trackid => 8
- };
+++ /dev/null
-$HASH1 = {
- cd => 3,
- last_updated_on
- => '2007-10-20 00:00:00',
- position
- => 3,
- title => 'Fowlin',
- trackid => 9
- };
+++ /dev/null
-$HASH1 = {
- artist => 1,
- cdid => 3,
- title => 'Caterwaulin\' Blues',
- year => 1997
- };
+++ /dev/null
-$VAR1 = {
- 'sets' => [
- {
- 'class' => 'Track',
- 'ids' => [
- '9'
- ]
- }
- ],
- 'belongs_to' => {
- 'fetch' => 1
- },
- 'has_many' => {
- 'fetch' => 0
- },
- 'might_have' => {
- 'fetch' => 0
- },
- 'datetime_relative' => '2007-10-30 00:00:00'
- };
+++ /dev/null
-1.001029
\ No newline at end of file
+++ /dev/null
-$HASH1 = {
- artistid => 1,
- name => 'Caterwauler McCrae'
- };
+++ /dev/null
-$HASH1 = {
- cd => 3,
- last_updated_on
- => {
- days => -10,
- end_of_month
- => 'wrap',
- minutes => 0,
- months => 0,
- nanoseconds
- => 0,
- seconds => 0
- },
- position
- => 3,
- title => 'Fowlin',
- trackid => 9
- };
-bless( $HASH1->{last_updated_on}, 'DateTime::Duration' );
+++ /dev/null
-$HASH1 = {
- artist => 1,
- cdid => 2,
- title => 'Forkful of bees',
- year => 2001
- };
+++ /dev/null
-$HASH1 = {
- artist => 2,
- cdid => 5,
- title => "Unicode Chars \x{2122} \251 \x{2022} \x{2020} \x{2211} \x{3b1} \x{3b2} \253 \273 \x{2192} \x{2026}",
- year => 2015
- };
+++ /dev/null
-$VAR1 = {
- 'might_have' => {
- 'fetch' => 0
- },
- 'rules' => {
- 'might_have' => {
- 'fetch' => 0
- },
- 'CD' => {
- 'join' => [
- 'tags'
- ],
- 'fetch' => [
- {
- 'cond' => {
- 'position' => 2
- },
- 'rel' => 'tracks'
- }
- ],
- 'cond' => [
- {
- 'tags.tag' => 'Cheesy'
- }
- ]
- }
- },
- 'sets' => [
- {
- 'ids' => [
- '5'
- ],
- 'class' => 'CD'
- },
- {
- 'ids' => [
- '1'
- ],
- 'fetch' => [
- {
- 'rel' => 'cds',
- 'quantity' => 'all'
- }
- ],
- 'class' => 'Artist'
- }
- ],
- 'belongs_to' => {
- 'fetch' => 1
- },
- 'has_many' => {
- 'fetch' => 0
- }
- };
+++ /dev/null
-1.001029
\ No newline at end of file
+++ /dev/null
-$HASH1 = {
- artistid => 1,
- name => 'Caterwauler McCrae'
- };
+++ /dev/null
-$HASH1 = {
- artistid => 2,
- name => 'Random Boy Band'
- };
+++ /dev/null
-$HASH1 = {
- cd => 5,
- last_updated_on
- => undef,
- position
- => 2,
- title => 'Under The Weather',
- trackid => 14
- };
+++ /dev/null
-$HASH1 = {
- cd => 2,
- last_updated_on
- => undef,
- position
- => 2,
- title => 'Stripy',
- trackid => 5
- };
+++ /dev/null
-test file
\ No newline at end of file