/usr/local/CPAN/Siesta/Siesta/Test.pm


package Siesta::Test;
# set up some stuff for testing
use Siesta::Config;
BEGIN {
    my %dbs = (
        pg     => [ 'dbi:Pg:dbname=siesta', 'richardc', undef ],
        mysql  => [ 'dbi:mysql:siesta_test', 'root', undef ],
        sqlite => [ 'dbi:SQLite:t/test.db', '', '' ],
       );
    @Siesta::Config::STORAGE  = @{ $dbs{ $ENV{SIESTA_TEST_DB} || 'sqlite' } };
    $Siesta::Config::MESSAGES = 'messages';
    $Siesta::Config::ARCHIVE  = 't/root/archive';
    $Siesta::Config::LOG_PATH = 't/temp_error';
}
use Siesta::DBI;

sub import {
    my $class = shift;

    if (@_ && $_[0] eq 'init_db') {
        print "# nuking test database\n";
        if ($Siesta::Config::STORAGE[0] =~ /^dbi:SQLite:(.*)/) {
            unlink $1;
        }
        else {
            # assume mysql
            Siesta::DBI->db_Main->do("drop database siesta_test");
            Siesta::DBI->db_Main->do("create database siesta_test");
        }
        Siesta::DBI->init_db;
    }
    require Siesta;
    Siesta->set_sender('Test');

}

1;