7 use Text::Tradition::Directory;
10 my $DBNAME = 'traditions.db';
12 # Delete the old directory if it exists
13 if( -f "$DBDIR/$DBNAME.$DBEXT" ) {
14 unlink( "$DBDIR/$DBNAME.$DBEXT" );
16 if( -l "$DBDIR/$DBNAME" ) {
17 unlink( "$DBDIR/$DBNAME" );
18 } elsif( -e "$DBDIR/$DBNAME" ) {
19 unlink( "$DBDIR/$DBNAME.bak" ) if -f "$DBDIR/$DBNAME.bak";
20 rename( "$DBDIR/$DBNAME", "$DBDIR/$DBNAME.bak" )
21 or die "Could not rename existing $DBNAME";
23 # Set up the test directory
24 symlink( "$DBNAME.$DBEXT", "$DBDIR/$DBNAME" ) or die "Could not set up testing db symlink";
26 my $dir = Text::Tradition::Directory->new(
27 dsn => "dbi:SQLite:dbname=$DBDIR/$DBNAME",
28 extra_args => { create => 1 }
30 my $scope = $dir->new_scope();
31 say "Created test directory";
34 my $user = $dir->add_user({ username => 'user@example.org', password => 'UserPass' });
35 my $admin = $dir->add_user({ username => 'admin@example.org',
36 password => 'AdminPass', role => 'admin' });
37 die "Failed to create test users" unless $user && $admin;
40 my $t1 = Text::Tradition->new( input => 'Self', file => 't/data/besoin.xml' );
41 die "Failed to create test tradition #1" unless $t1;
42 $user->add_tradition( $t1 );
44 say "Created test user tradition";
46 my $t2 = Text::Tradition->new( input => 'Tabular', sep_char => ',',
47 file => 't/data/florilegium.csv' );
48 $t2->add_stemma( dotfile => 't/data/florilegium.dot' );
49 die "Failed to create test tradition #2" unless $t2;
52 say "Created test public tradition";