Commit | Line | Data |
9a3fb143 |
1 | #!/usr/bin/env perl |
2 | |
3 | use strict; |
4 | use warnings; |
5 | use feature 'say'; |
6 | use Text::Tradition; |
7 | use Text::Tradition::Directory; |
8 | |
9 | my $DBDIR = 'db'; |
10 | my $DBNAME = 'traditions.db'; |
11 | my $DBEXT = 'test'; |
12 | # Delete the old directory if it exists |
13 | if( -f "$DBDIR/$DBNAME.$DBEXT" ) { |
14 | unlink( "$DBDIR/$DBNAME.$DBEXT" ); |
15 | } |
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"; |
22 | } |
23 | # Set up the test directory |
24 | symlink( "$DBNAME.$DBEXT", "$DBDIR/$DBNAME" ) or die "Could not set up testing db symlink"; |
25 | |
26 | my $dir = Text::Tradition::Directory->new( |
27 | dsn => "dbi:SQLite:dbname=$DBDIR/$DBNAME", |
28 | extra_args => { create => 1 } |
29 | ); |
30 | my $scope = $dir->new_scope(); |
31 | say "Created test directory"; |
32 | |
33 | # Create users |
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; |
38 | say "Created users"; |
39 | |
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 ); |
43 | $dir->store( $user ); |
44 | say "Created test user tradition"; |
45 | |
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; |
50 | $t2->public( 1 ); |
51 | $dir->store( $t2 ); |
52 | say "Created test public tradition"; |
53 | |