Convert to Test::More
[bioperl-live.git] / t / Perl.t
blobbf535b24c9d382885a25b1fc59305e90a2ed080e
1 # This is -*-Perl-*- code
2 ## Bioperl Test Harness Script for Modules
3 ##
4 # $Id$
6 # Before `make install' is performed this script should be runnable with
7 # `make test'. After `make install' it should work as `perl test.t'
9 use strict;
10 use vars qw($NUMTESTS $DEBUG);
11 $DEBUG = $ENV{'BIOPERLDEBUG'} || 0;
13 my $error;
15 BEGIN { 
16         # to handle systems with no installed Test module
17         # we include the t dir (where a copy of Test.pm is located)
18         # as a fallback
19         eval { require Test::More; };
20         if( $@ ) {
21                 use lib 't/lib';
22         }
23         use Test::More;
25         $NUMTESTS = 30;
26         plan tests => $NUMTESTS;
27         eval { require IO::String };
28         if( $@ ) {
29                 $error = "IO::String not installed. This means the Bio::DB::* modules are not usable. Skipping some tests.";
30                 $DEBUG = 0;
31         } elsif (!$DEBUG) {
32                 $error = "BIOPERLDEBUG must be set to 1 for running tests requiring network access. Skipping some tests.";
33         }
34         use_ok('Bio::Perl');
35         use_ok('File::Spec');
38 END {
39         # clean up after oneself
40         unlink (  'Perltmp' );
43 ## End of black magic.
45 ## Insert additional test code below but remember to change
46 ## the print "1..x\n" in the BEGIN block to reflect the
47 ## total number of tests that will be run. 
49 my ($seq_object,$filename,@seq_object_array);
51 # will guess file format from extension
52 $filename = File::Spec->catfile(qw(t data cysprot1.fa));
53 ok ($seq_object = read_sequence($filename));
54 isa_ok $seq_object, 'Bio::SeqI';
56 # forces genbank format
57 $filename = File::Spec->catfile(qw(t data AF165282.gb));
58 ok  ($seq_object = read_sequence($filename,'genbank'));
59 isa_ok $seq_object, 'Bio::SeqI';
61 # reads an array of sequences
62 $filename = File::Spec->catfile(qw(t data amino.fa));
63 is (@seq_object_array = read_all_sequences($filename,'fasta'), 2);
64 isa_ok $seq_object_array[0], 'Bio::SeqI';
65 isa_ok $seq_object_array[1], 'Bio::SeqI';
67 $filename = 'Perltmp';
68 ok write_sequence(">$filename",'genbank',$seq_object);
69 ok ($seq_object = new_sequence("ATTGGTTTGGGGACCCAATTTGTGTGTTATATGTA","myname","AL12232"));
70 isa_ok $seq_object, 'Bio::SeqI';
72 my $trans;
74 ok ($trans = translate($seq_object));
76 isa_ok $trans, 'Bio::SeqI';
78 ok ($trans = translate("ATTGGTTTGGGGACCCAATTTGTGTGTTATATGTA"));
80 isa_ok $trans, 'Bio::PrimarySeqI';
82 ok ($trans = translate_as_string($seq_object));
84 is $trans, 'IGLGTQFVCYM';
86 $trans = '';
88 ok ($trans = translate_as_string("ATTGGTTTGGGGACCCAATTTGTGTGTTATATGTA"));
90 is $trans, 'IGLGTQFVCYM';
92 # we need to keep tests that depend on net connection at the end
93 # these now run only with BIOPERLDEBUG set
95 SKIP: {
96         skip($error, 10) unless $DEBUG;
98         # swissprot
99         SKIP: {
100                 eval {
101                         $seq_object = get_sequence('swissprot',"ROA1_HUMAN");
102                 };
103                 if ($@) {
104                         skip("problem connecting to SwissProt:$@",2);
105                 } else {
106                         ok $seq_object;
107                         isa_ok $seq_object, 'Bio::SeqI';
108                 }
109         }
110         
111     # embl
112         SKIP: {
113                 eval {
114                         $seq_object = get_sequence('embl',"BUM");
115                 };
116                 if ($@) {
117                         skip("problem connecting to EMBL:$@",2);
118                 } else {
119                         ok $seq_object;
120                         isa_ok $seq_object, 'Bio::SeqI';
121                 }
122         }
124         # genbank       
125         SKIP: {
126                 eval {
127                         $seq_object = get_sequence('genbank',"AI129902");
128                 };
129                 if ($@) {
130                         skip("problem connecting to GenBank:$@",2);
131                 } else {
132                         ok $seq_object;
133                         isa_ok $seq_object, 'Bio::SeqI';
134                 }
135         }
137     # refseq
138         SKIP: {
139                 eval {
140                         $seq_object = get_sequence('genbank',"NM_006732");
141                 };
142                 if( $@ ) {
143                         skip("problem connecting to RefSeq:$@",2);
144                 } else {
145                         ok $seq_object;
146                         isa_ok $seq_object, 'Bio::SeqI';
147                 }
148         }
149         
150         # genpept
151         SKIP: {
152                 eval {
153                         $seq_object = get_sequence('genpept',"AAC06201");
154                 };
155                 if ($@) {
156                         skip("problem connecting to RefSeq:$@",2);
157                 } else {
158                         ok $seq_object;
159                         isa_ok $seq_object, 'Bio::SeqI';
160                 }
161         }