def testSubjectsPerTaxonomicRankEmptyInput(self):
     """
     subjectsPerTaxonomicRank should return an empty dictionary
     when given an empty input.
     """
     blastHits = BlastHits(None)
     result = taxonomy.subjectsPerTaxonomicRank({}, blastHits, "species")
     self.assertEqual({}, result)
 def testSubjectsPerTaxonomicRank(self):
     """
     subjectsPerTaxonomicRank should print the right subject
     for the given taxonomic rank.
     """
     taxIDLookUpDict = {
         1: [
             {"taxID": 1, "parentTaxID": 4, "rank": "species", "scientificName": "mouse"},
             {"taxID": 4, "parentTaxID": 7, "rank": "genus", "scientificName": "mouseian"},
         ],
         2: [{"taxID": 2, "parentTaxID": 5, "rank": "genus", "scientificName": "dog"}],
         3: [{"taxID": 3, "parentTaxID": 6, "rank": "family", "scientificName": "cat"}],
     }
     blastHits = BlastHits(None)
     blastHits.addHit("Smiley Cell Polyomavirus", {"taxID": 1})
     blastHits.addHit("Pink Sheep Virus", {"taxID": 2})
     blastHits.addHit("Flying Elephant Making Virus", {"taxID": 3})
     result = taxonomy.subjectsPerTaxonomicRank(taxIDLookUpDict, blastHits, "species")
     self.assertEqual({"mouse": set(["Smiley Cell Polyomavirus"])}, result)