Exemplo n.º 1
0
 def test_fasta_file_object_not_a_file(self):
     with pytest.raises(TypeError):
         Reader('')
     with pytest.raises(TypeError):
         Reader([])
     with pytest.raises(TypeError):
         Reader(123)
Exemplo n.º 2
0
 def test_sequences_type_wrong_str(self, fasta_empty):
     with pytest.raises(TypeError):
         Reader(fasta_empty, sequences_type='')
     with pytest.raises(TypeError):
         Reader(fasta_empty, sequences_type=' ')
     with pytest.raises(TypeError):
         Reader(fasta_empty, sequences_type='wrong_type')
Exemplo n.º 3
0
 def test_single_fasta_file_rich(self, fasta_nucleotide_single,
                                 fasta_nucleotide_single_contents,
                                 fasta_aminoacid_single,
                                 fasta_aminoacid_single_contents):
     # nucleotide
     fasta_nucleotide_reader = Reader(fasta_nucleotide_single,
                                      sequences_type='nucleotide')
     fastas_nucleotide = []
     for fasta in fasta_nucleotide_reader:
         fastas_nucleotide.append(fasta)
     assert len(fastas_nucleotide) == 1
     assert fastas_nucleotide[0].sequence_as_string(
     ) == fasta_nucleotide_single_contents[0][2]
     assert fastas_nucleotide[0].id == fasta_nucleotide_single_contents[0][
         0]
     assert fastas_nucleotide[
         0].description == fasta_nucleotide_single_contents[0][1]
     assert fastas_nucleotide[0].sequence_type == 'nucleotide'
     assert fastas_nucleotide[0].inferred_type is False
     # aminoacid
     fasta_aminoacid_reader = Reader(fasta_aminoacid_single,
                                     sequences_type='aminoacid')
     fastas_aminoacid = []
     for fasta in fasta_aminoacid_reader:
         fastas_aminoacid.append(fasta)
     assert len(fastas_aminoacid) == 1
     assert fastas_aminoacid[0].sequence_as_string(
     ) == fasta_aminoacid_single_contents[0][2]
     assert fastas_aminoacid[0].id == fasta_aminoacid_single_contents[0][0]
     assert fastas_aminoacid[
         0].description == fasta_aminoacid_single_contents[0][1]
     assert fastas_aminoacid[0].sequence_type == 'aminoacid'
     assert fastas_aminoacid[0].inferred_type is False
Exemplo n.º 4
0
 def test_multiple_fasta_file_quick(self, fasta_nucleotide_multiple,
                                    fasta_nucleotide_multiple_contents,
                                    fasta_aminoacid_multiple,
                                    fasta_aminoacid_multiple_contents):
     # nucleotide
     fasta_nucleotide_reader = Reader(fasta_nucleotide_multiple,
                                      parse_method='quick')
     fastas_nucleotide = []
     for fasta in fasta_nucleotide_reader:
         fastas_nucleotide.append(fasta)
         assert fasta.sequence == fasta_nucleotide_multiple_contents[
             len(fastas_nucleotide) - 1][2]
         assert fasta.header == '>' + ' '.join(
             (fasta_nucleotide_multiple_contents[len(fastas_nucleotide) -
                                                 1][0],
              fasta_nucleotide_multiple_contents[len(fastas_nucleotide) -
                                                 1][1]))
     assert len(fastas_nucleotide) == 17
     # aminoacid
     fasta_aminoacid_reader = Reader(fasta_aminoacid_multiple,
                                     parse_method='quick')
     fastas_aminoacid = []
     for fasta in fasta_aminoacid_reader:
         fastas_aminoacid.append(fasta)
         assert fasta.sequence == fasta_aminoacid_multiple_contents[
             len(fastas_aminoacid) - 1][2]
         assert fasta.header == '>' + ' '.join(
             (fasta_aminoacid_multiple_contents[len(fastas_aminoacid) -
                                                1][0],
              fasta_aminoacid_multiple_contents[len(fastas_aminoacid) -
                                                1][1]))
     assert len(fastas_aminoacid) == 20
Exemplo n.º 5
0
 def test_infer_type_not_bool(self, fasta_empty):
     with pytest.raises(TypeError):
         Reader(fasta_empty, infer_type='')
     with pytest.raises(TypeError):
         Reader(fasta_empty, infer_type=[])
     with pytest.raises(TypeError):
         Reader(fasta_empty, infer_type=123)
Exemplo n.º 6
0
 def test_parse_method_wrong_str(self, fasta_empty):
     with pytest.raises(TypeError):
         Reader(fasta_empty, parse_method='')
     with pytest.raises(TypeError):
         Reader(fasta_empty, parse_method=' ')
     with pytest.raises(TypeError):
         Reader(fasta_empty, parse_method='wrong_type')
Exemplo n.º 7
0
 def test_current_iterator(self, fasta_empty):
     fasta_reader = Reader(fasta_empty)
     assert fasta_reader._current_iterator is None
     iterator = fasta_reader.__iter__()
     assert fasta_reader._current_iterator == iterator
     try:  # test if is iterable
         iter(fasta_reader._current_iterator)
     except TypeError:
         pytest.fail('Reader._current_iterator is not iterable.')
Exemplo n.º 8
0
 def test_sequences_type_aminoacid(self, fasta_aminoacid_multiple):
     fasta_reader = Reader(fasta_aminoacid_multiple,
                           sequences_type='aminoacid')
     assert fasta_reader.fasta_file is fasta_aminoacid_multiple
     assert fasta_reader.sequences_type == 'aminoacid'
     assert fasta_reader.infer_type is False
     assert fasta_reader.parse_method == 'rich'
Exemplo n.º 9
0
 def test_sequences_type_nucleotide(self, fasta_nucleotide_multiple):
     fasta_reader = Reader(fasta_nucleotide_multiple,
                           sequences_type='nucleotide')
     assert fasta_reader.fasta_file is fasta_nucleotide_multiple
     assert fasta_reader.sequences_type == 'nucleotide'
     assert fasta_reader.infer_type is False
     assert fasta_reader.parse_method == 'rich'
Exemplo n.º 10
0
 def test_fasta_sequence_fastasequence_objects(self,
                                               fasta_nucleotide_multiple,
                                               fasta_temporary_file):
     fasta_reader = Reader(fasta_nucleotide_multiple)
     fasta_writer = Writer(fasta_temporary_file)
     fasta_writer.writefastas(fasta_reader)
     # at this point the 2 files should be equal
     compare_2_files(fasta_nucleotide_multiple, fasta_temporary_file)
Exemplo n.º 11
0
 def test_fasta_sequence_tuple(self, fasta_nucleotide_single,
                               fasta_temporary_file):
     fasta_reader = Reader(fasta_nucleotide_single)
     fasta_writer = Writer(fasta_temporary_file)
     fasta = next(fasta_reader)
     fasta_writer.writefasta(
         (fasta.formatted_definition_line(), fasta.formatted_sequence()))
     # at this point the 2 files should be equal
     compare_2_files(fasta_nucleotide_single, fasta_temporary_file)
Exemplo n.º 12
0
 def test_fasta_sequence_fastasequence_object(self, fasta_nucleotide_single,
                                              fasta_temporary_file):
     fasta_reader = Reader(fasta_nucleotide_single)
     fasta_writer = Writer(fasta_temporary_file)
     fasta_writer.writefasta(
         next(fasta_reader
              ))  # only a single FASTA sequence in fasta_nucleotide_single
     # at this point the 2 files should be equal
     compare_2_files(fasta_nucleotide_single, fasta_temporary_file)
Exemplo n.º 13
0
 def test_fasta_sequence_tuples(self, fasta_nucleotide_multiple,
                                fasta_temporary_file):
     fasta_reader = Reader(fasta_nucleotide_multiple)
     fasta_writer = Writer(fasta_temporary_file)
     fastas = [(fasta.formatted_definition_line(),
                fasta.formatted_sequence()) for fasta in fasta_reader]
     fasta_writer.writefastas(fastas)
     # at this point the 2 files should be equal
     compare_2_files(fasta_nucleotide_multiple, fasta_temporary_file)
Exemplo n.º 14
0
 def test_fasta_no_empty_lines(self, fasta_no_empty_lines,
                               fasta_no_empty_lines_contents):
     fasta_reader = Reader(fasta_no_empty_lines, parse_method='quick')
     fastas = []
     for fasta in fasta_reader:
         fastas.append(fasta)
         assert fasta.sequence == fasta_no_empty_lines_contents[len(fastas)
                                                                - 1][2]
         assert fasta.header == '>' + ' '.join(
             (fasta_no_empty_lines_contents[len(fastas) - 1][0],
              fasta_no_empty_lines_contents[len(fastas) - 1][1]))
     assert len(fastas) == 2
Exemplo n.º 15
0
 def test_no_current_iterator(self, fasta_nucleotide_multiple,
                              fasta_nucleotide_multiple_contents):
     fasta_reader = Reader(fasta_nucleotide_multiple,
                           sequences_type='nucleotide')
     fasta = next(fasta_reader)
     assert fasta.sequence_as_string(
     ) == fasta_nucleotide_multiple_contents[0][2]
     assert fasta.id == fasta_nucleotide_multiple_contents[0][0]
     assert fasta.description == fasta_nucleotide_multiple_contents[0][1]
     assert fasta.sequence_type == 'nucleotide'
     assert fasta.inferred_type is False
     fasta = next(fasta_reader)
     assert fasta.sequence_as_string(
     ) == fasta_nucleotide_multiple_contents[1][2]
     assert fasta.id == fasta_nucleotide_multiple_contents[1][0]
     assert fasta.description == fasta_nucleotide_multiple_contents[1][1]
     assert fasta.sequence_type == 'nucleotide'
     assert fasta.inferred_type is False
Exemplo n.º 16
0
 def test_fasta_file_object_closed(self, fasta_nucleotide_multiple):
     fasta_nucleotide_multiple.close()
     with pytest.raises(TypeError):
         Reader(fasta_nucleotide_multiple)
Exemplo n.º 17
0
 def test_fasta_file_object_good(self, fasta_nucleotide_multiple):
     fasta_reader = Reader(fasta_nucleotide_multiple)
     assert fasta_reader.fasta_file is fasta_nucleotide_multiple
     assert fasta_reader.sequences_type is None
     assert fasta_reader.infer_type is False
     assert fasta_reader.parse_method == 'rich'
Exemplo n.º 18
0
 def test__repr__(self, fasta_empty):
     fasta_reader = Reader(fasta_empty)
     assert repr(
         fasta_reader) == 'fastaparser.Reader(%s)' % os.path.abspath(
             fasta_empty.name)
Exemplo n.º 19
0
 def test_empty_fasta_file_quick(self, fasta_empty):
     fasta_reader = Reader(fasta_empty, parse_method='quick')
     fastas = []
     for fasta in fasta_reader:
         fastas.append(fasta)
     assert len(fastas) == 0
Exemplo n.º 20
0
 def test_empty_fasta_file_rich(self, fasta_empty):
     fasta_reader = Reader(fasta_empty)
     fastas = []
     for fasta in fasta_reader:
         fastas.append(fasta)
     assert len(fastas) == 0
Exemplo n.º 21
0
 def test_sequences_type_wrong_type(self, fasta_empty):
     with pytest.raises(TypeError):
         Reader(fasta_empty, sequences_type=[])
     with pytest.raises(TypeError):
         Reader(fasta_empty, sequences_type=123)
Exemplo n.º 22
0
 def test_closed_file(self, fasta_empty):
     fasta_reader = Reader(fasta_empty)
     fasta_empty.close()
     with pytest.raises(TypeError):
         fasta_reader.__iter__()
Exemplo n.º 23
0
 def test_current_iterator(self, fasta_empty):
     fasta_reader = Reader(fasta_empty)
     assert fasta_reader._current_iterator is None
Exemplo n.º 24
0
 def test_parse_method_wrong_type(self, fasta_empty):
     with pytest.raises(TypeError):
         Reader(fasta_empty, parse_method=[])
     with pytest.raises(TypeError):
         Reader(fasta_empty, parse_method=123)
Exemplo n.º 25
0
 def test_parse_method_quick(self, fasta_empty):
     fasta_reader = Reader(fasta_empty, parse_method='quick')
     assert fasta_reader.fasta_file is fasta_empty
     assert fasta_reader.sequences_type is None
     assert fasta_reader.infer_type is False
     assert fasta_reader.parse_method == 'quick'
Exemplo n.º 26
0
 def test_infer_type_true(self, fasta_empty):
     fasta_reader = Reader(fasta_empty, infer_type=True)
     assert fasta_reader.fasta_file is fasta_empty
     assert fasta_reader.sequences_type is None
     assert fasta_reader.infer_type is True
     assert fasta_reader.parse_method == 'rich'