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()