def test_taxa_of_programs(): dbf = ProgramFilter(db) programs = {"prg8.py", "prg9.py", "non_existing_program"} taxa = dbf.taxa_of_programs(programs) prg8_taxa = set(dbf.db_programs["prg8.py"]["taxa"]) prg9_taxa = set(dbf.db_programs["prg9.py"]["taxa"]) print(sorted(taxa)) assert taxa == prg8_taxa | prg9_taxa
def test_taxa_of_programs(): dbf = ProgramFilter(db) # collatz is imported by fizzbuzz subset_taxa = dbf.taxa_of_programs({"collatz.py"}, follow=False) subset_taxa = set(filter(lambda x: not x.startswith("meta/"), subset_taxa)) print(sorted(subset_taxa)) print() # when following the importations... superset_taxa = dbf.taxa_of_programs({"fizzbuzz.py"}, follow=True) superset_taxa = set( filter(lambda x: not x.startswith("meta/"), superset_taxa)) print(sorted(superset_taxa)) # in addition to its own taxa, fizzbuzz features all those of collatz... assert superset_taxa.issuperset(subset_taxa) assert len(superset_taxa - subset_taxa) > 0 # when not following the importations... own_taxa = dbf.taxa_of_programs({"fizzbuzz.py"}, follow=False) own_taxa = set(filter(lambda x: not x.startswith("meta/"), own_taxa)) print(sorted(own_taxa)) assert superset_taxa.issuperset(own_taxa) assert len(superset_taxa - own_taxa) > 0