def test_020_gff3_i0(self): """check functions for retreiving input filename, and reading and validating a GFF3 file and separate FASTA file""" newmunger = GFFMunger(None) newmunger.input_file_arg = test_gff_no_fasta newmunger.fasta_file_arg = test_fasta_file newmunger.output_file = self.output_file self.assertEqual(test_gff_no_fasta, newmunger.get_gff3_source()) self.assertTrue(newmunger.validate_GFF3(test_gff_no_fasta)) self.assertTrue(newmunger.validate_FASTA(test_fasta_file)) self.assertEqual(newmunger.gffutils_db_filename, newmunger.import_gff3()) self.assertEqual(newmunger.gffutils_db_filename, newmunger.import_gff3(test_gff_no_fasta)) # when FASTA is in separate file, GFFMunger.extract_GFF3_components() should read only metadata self.assertEqual(expected_num_metadata_lines, newmunger.extract_GFF3_components()) self.assertEqual(expected_num_metadata_lines, newmunger.extract_GFF3_components(test_gff_no_fasta)) with warnings.catch_warnings(): warnings.filterwarnings("ignore", "unclosed file <_io\.FileIO", ResourceWarning, "six", 581) warnings.filterwarnings("ignore", "", ResourceWarning, "gffutils", 0) self.assertIsInstance(newmunger.import_fasta(), pyfaidx.Fasta) self.assertIsInstance(newmunger.import_fasta(test_fasta_file), pyfaidx.Fasta) try: newmunger.move_polypeptide_annotations() except: self.fail("Failed to process valid GFF3 file " + test_gff_no_fasta) warnings.resetwarnings() self.assertTrue(newmunger.export_gff3()) os.remove(newmunger.output_file) newmunger.clean_up()
def test_000_gff3_with_fasta_io(self): """check functions for reading and validating a GFF3 file including FASTA, and writing it as output""" gffmunger = GFFMunger(None) gffmunger.input_file_arg = test_gff_file gffmunger.output_file = self.output_file self.assertEqual(test_gff_file, gffmunger.get_gff3_source()) self.assertTrue(gffmunger.validate_GFF3(test_gff_file)) self.assertEqual(gffmunger.gffutils_db_filename, gffmunger.import_gff3()) self.assertEqual(gffmunger.gffutils_db_filename, gffmunger.import_gff3(test_gff_file)) self.assertEqual(expected_num_input_lines, gffmunger.extract_GFF3_components()) self.assertEqual(expected_num_input_lines, gffmunger.extract_GFF3_components(test_gff_file)) with warnings.catch_warnings(): warnings.filterwarnings("ignore", "unclosed file <_io\.TextIOWrapper", ResourceWarning, "gffutils", 668) try: gffmunger.move_polypeptide_annotations() except: self.fail("Failed to process valid GFF3 file " + test_gff_file) warnings.resetwarnings() self.assertTrue(gffmunger.export_gff3()) os.remove(gffmunger.output_file) gffmunger.clean_up()