Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

89 lines (74 sloc) 2.145 kb
# -*-Perl-*-
# $Id$
use vars qw($old_obda_path);
BEGIN {
use lib 't';
use Bio::Root::Test;
test_begin(-tests => 16);
$old_obda_path = $ENV{OBDA_SEARCH_PATH}
if defined $ENV{OBDA_SEARCH_PATH};
$ENV{OBDA_SEARCH_PATH} = 't/data/';
use_ok('DBTestHarness');
use_ok('Bio::SeqIO');
use_ok('Bio::DB::Persistent::BioNamespace');
use_ok('Bio::DB::Registry');
}
my $biosql = DBTestHarness->new("biosql");
my $db = $biosql->get_DBAdaptor();
ok $db;
my $registry_file = test_input_file("seqdatabase.ini");
my $obda_name = "mytestbiosql";
# create a temporary seqdatabase.ini file specific for this test database
write_registry($registry_file);
my $seqio = Bio::SeqIO->new('-format' => 'genbank',
'-file' => test_input_file('parkin.gb'));
my $seq = $seqio->next_seq();
ok $seq;
my $pseq = $db->create_persistent($seq);
$pseq->namespace("mytestnamespace");
$pseq->store(); # this will raise warnings if there are duplicates
ok $pseq->primary_key();
$pseq->commit;
# try/finally block
eval {
my $registry = Bio::DB::Registry->new;
ok $registry;
my $biodb = $registry->get_database($obda_name);
ok $biodb;
my $seq = $biodb->get_Seq_by_acc('AB019558');
is $seq->primary_id, 5456929;
$seq = $biodb->get_Seq_by_id(5456929);
is $seq->accession, "AB019558";
$seq = $biodb->get_Seq_by_version('AB019558.1');
is $seq->primary_id, 5456929;
};
print STDERR $@ if $@;
# delete seq
is ($pseq->remove(), 1);
my $ns = Bio::DB::Persistent::BioNamespace->new(-identifiable => $pseq);
ok $ns = $db->get_object_adaptor($ns)->find_by_unique_key($ns);
ok $ns->primary_key();
is ($ns->remove(), 1);
$ns->commit;
END {
unlink $registry_file if (-e $registry_file);
$ENV{OBDA_SEARCH_PATH} = $old_obda_path if defined $old_obda_path;
}
sub write_registry {
my $file = shift;
my $c = $db->dbcontext;
my ($host,$port,$dbname,$pass,$user,$driver) =
($c->host||'',$c->port||'',$c->dbname||'',$c->password||'',$c->username||'',$c->driver||'');
open my $F,">$file";
print $F <<OBDA;
VERSION=1.00
[$obda_name]
protocol=biosql
location=$host:$port
dbname=$dbname
passwd=$pass
user=$user
driver=$driver
OBDA
close $F;
}
Jump to Line
Something went wrong with that request. Please try again.