URLify
[bioperl-live.git] / t / RemoteDB / BioFetch.t
blob9ba007c51defd20c62c5f320c33fd384c9aed464
1 # -*-Perl-*- Test Harness script for Bioperl
2 # $Id$
4 use strict;
6 BEGIN {
7     use lib '.';
8     use Bio::Root::Test;
10     test_begin(-tests               => 36,
11                -requires_modules    => [qw(IO::String
12                                            LWP::UserAgent)],
13                -requires_networking => 1);
15     use_ok('Bio::DB::BioFetch');
18 my $verbose = test_debug();
20 my $dbwarn = "Warning: Couldn't connect to EMBL with Bio::DB::BioFetch!\n";
22 my ($db,$db2,$seq,$seqio);
24 SKIP :{
25     # get a single seq
26     ok defined($db = Bio::DB::BioFetch->new(-verbose => $verbose));
27     # get a RefSeq entry
28     ok $db->db('refseq');
29     eval {
30         $seq = $db->get_Seq_by_acc('NM_006732'); # RefSeq VERSION
31     };
32     skip($dbwarn, 4) if $@;
33     isa_ok($seq, 'Bio::SeqI');
34     is($seq->accession_number,'NM_006732');
35     is($seq->accession_number,'NM_006732');
36     is( $seq->length, 3776);
39 SKIP: {
40     # EMBL
41     $db->db('embl');
42     eval {
43         $seq = $db->get_Seq_by_acc('J02231');
44     };
45     skip($dbwarn, 3) if $@;
46     isa_ok($seq, 'Bio::SeqI');
47     is($seq->id, 'J02231');
48     is($seq->length, 200);
51 SKIP: {
52     eval {
53         $seqio = $db->get_Stream_by_id(['AEE33958']);
54     };
55     skip($dbwarn, 3) if $@;
56     undef $db; # testing to see if we can remove gb
57     $seq = $seqio->next_seq();
58     isa_ok($seqio, 'Bio::SeqIO');
59     isa_ok($seq, 'Bio::SeqI');
60     cmp_ok( $seq->length, '>=', 1);
63 SKIP: {
64     #swissprot
65     ok $db2 = Bio::DB::BioFetch->new(-db => 'swissprot');
66     test_skip(-tests => 5, -requires_module => 'Data::Stag');
67     eval {
68         $seq = $db2->get_Seq_by_id('YNB3_YEAST');
69     };
70     skip($dbwarn, 5) if $@;
71     isa_ok($seq, 'Bio::SeqI');
72     is($seq->length, 125);
73     is($seq->division, 'YEAST');
74     $db2->request_format('fasta');
75     eval {
76         $seq = $db2->get_Seq_by_acc('P43780');
77     };
78     skip($dbwarn, 2) if $@;
79     isa_ok($seq, 'Bio::SeqI');
80     is($seq->length,103);
83 $seq = $seqio = undef;
85 SKIP: {
86     ok $db = Bio::DB::BioFetch->new(-retrievaltype => 'tempfile',
87                                     -format        => 'fasta',
88                                     -verbose       => $verbose
89                                     );
90     $db->db('embl');
91     eval {
92         $seqio = $db->get_Stream_by_id('J00522 AF303112 J02231');
93     };
94     skip($dbwarn, 7) if $@;
95     my %seqs;
96     # don't assume anything about the order of the sequences
97     while ( my $s = $seqio->next_seq ) {
98         isa_ok($s, 'Bio::SeqI');
99         my ($type,$x,$name) = split(/\|/,$s->display_id);
100         $seqs{$x} = $s->length;
101     }
102     isa_ok($seqio, 'Bio::SeqIO');
103     is($seqs{'J00522'},408);
104     is($seqs{'AF303112'},1611);
105     is($seqs{'J02231'},200);
108 SKIP: {
109     ok $db = Bio::DB::BioFetch->new(-db      => 'embl',
110                                     -verbose => $verbose ? $verbose : -1);
112     # check contig warning (WebDBSeqI)
113     eval {
114         $seq = $db->get_Seq_by_acc('NT_006732');
115     };
116     like($@, qr{contigs are whole chromosome files}, 'contig warning');
117     eval {
118         $seq = $db->get_Seq_by_acc('NM_006732');
119     };
120     skip($dbwarn, 2) if $@;
121     isa_ok($seq, 'Bio::SeqI');
122     is($seq->length,3776);
125 # unisave
126 SKIP: {
127     ok $db = Bio::DB::BioFetch->new(-db      => 'unisave',
128                                     -verbose => $verbose ? $verbose : -1);
129     eval {
130         $seq = $db->get_Seq_by_acc('P14733');
131     };
132     skip($dbwarn, 4) if $@;
133     isa_ok($seq, 'Bio::SeqI');
134     is($seq->display_id, 'LMNB1_MOUSE');
135     is($seq->accession, 'P14733');
136     is($seq->length, 588);