Skip to content

Commit 1e6aa1e

Browse files
committed
add test
1 parent 5c2da8a commit 1e6aa1e

4 files changed

Lines changed: 69 additions & 90 deletions

File tree

americangut/per_category.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
from .util import collapse_full, collapse_taxonomy, get_existing_path
88

99

10-
def cat_taxa_summaries(debug=False):
10+
def cat_taxa_summaries():
1111
"""Creates taxa summary files for each available summary category per site
1212
"""
1313
paths = copy(agenv.paths['collapsed']['notrim']['1k'])
108 KB
Binary file not shown.
116 KB
Binary file not shown.

tests/test_per_category.py

Lines changed: 68 additions & 89 deletions
Original file line numberDiff line numberDiff line change
@@ -1,109 +1,88 @@
1-
from os import remove, mkdir
2-
from os.path import join, exists
1+
from os import makedirs, listdir, rmdir
2+
from os.path import exists, join
3+
from shutil import rmtree
34

45
from unittest import TestCase, main
56
import americangut.notebook_environment as agenv
6-
from americangut.util import get_new_path
7+
from americangut.util import get_existing_path
78
from americangut.per_category import cat_taxa_summaries
89

910

1011
class PerCategoryTests(TestCase):
1112
def setUp(self):
12-
self.taxa_base = agenv.paths['populated-templates']['result-taxa']
13-
14-
try:
15-
get_new_path(
16-
agenv.paths['populated-templates']['result-taxa'])
17-
except IOError:
18-
pass
19-
20-
self.taxa_files = [
21-
'ag-stool-average.txt',
22-
'ag-stool-sex-male.txt',
23-
'ag-stool-sex-other.txt',
24-
'ag-stool-sex-female.txt',
25-
'ag-oral-diet-Omnivore.txt',
26-
'ag-oral-diet-Vegetarian.txt',
27-
'ag-oral-diet-Vegan.txt',
28-
'ag-oral-diet-Omnivore_but_do_not_eat_red_meat.txt',
29-
'ag-oral-diet-Vegetarian_but_eat_seafood.txt',
30-
'ag-skin-sex-male.txt',
31-
'ag-skin-sex-female.txt',
32-
'ag-stool-diet-Omnivore.txt',
33-
'ag-stool-diet-Vegetarian.txt',
34-
'ag-stool-diet-Vegan.txt',
35-
'ag-stool-diet-Omnivore_but_do_not_eat_red_meat.txt',
36-
'ag-stool-diet-Vegetarian_but_eat_seafood.txt',
37-
'ag-skin-hand-I_am_left_handed.txt',
38-
'ag-skin-hand-I_am_ambidextrous.txt',
39-
'ag-skin-hand-I_am_right_handed.txt',
40-
'ag-oral-sex-male.txt',
41-
'ag-oral-sex-female.txt',
42-
'ag-stool-bmi-Overweight.txt',
43-
'ag-stool-bmi-Obese.txt',
44-
'ag-stool-bmi-Underweight.txt',
45-
'ag-stool-bmi-Normal.txt',
46-
'ag-oral-flossing-Never.txt',
47-
'ag-oral-flossing-Rarely.txt',
48-
'ag-oral-flossing-Daily.txt',
49-
'ag-oral-flossing-Occasionally.txt',
50-
'ag-oral-flossing-Regularly.txt',
51-
'ag-stool-age-teen.txt',
52-
'ag-stool-age-20s.txt',
53-
'ag-stool-age-60s.txt',
54-
'ag-stool-age-30s.txt',
55-
'ag-stool-age-child.txt',
56-
'ag-stool-age-40s.txt',
57-
'ag-stool-age-70+.txt',
58-
'ag-stool-age-baby.txt',
59-
'ag-stool-age-50s.txt',
60-
'ag-oral-average.txt',
61-
'ag-skin-cosmetics-Never.txt',
62-
'ag-skin-cosmetics-Rarely.txt',
63-
'ag-skin-cosmetics-Daily.txt',
64-
'ag-skin-cosmetics-Occasionally.txt',
65-
'ag-skin-cosmetics-Regularly.txt',
66-
'ag-skin-age-teen.txt',
67-
'ag-skin-age-20s.txt',
68-
'ag-skin-age-60s.txt',
69-
'ag-skin-age-30s.txt',
70-
'ag-skin-age-70+.txt',
71-
'ag-skin-age-40s.txt',
72-
'ag-skin-age-child.txt',
73-
'ag-skin-age-baby.txt',
74-
'ag-skin-age-50s.txt',
75-
'ag-skin-average.txt',
76-
'ag-oral-age-teen.txt',
77-
'ag-oral-age-20s.txt',
78-
'ag-oral-age-60s.txt',
79-
'ag-oral-age-30s.txt',
80-
'ag-oral-age-child.txt',
81-
'ag-oral-age-40s.txt',
82-
'ag-oral-age-70+.txt',
83-
'ag-oral-age-50s.txt']
13+
# Make expected directory structure
14+
makedirs('../agp_processing/10-populated-templates/taxa')
15+
self.path = agenv.paths['collapsed']['notrim']['1k']
16+
agenv.paths['collapsed']['notrim']['1k'] = \
17+
{'ag-biom':
18+
'../tests/data/ag_testing/category_test.biom',
19+
'ag-fecal':
20+
'../tests/data/ag_testing/ag-fecal.biom',
21+
'ag-oral-flossing':
22+
'../tests/data/ag_testing/ag-oral-flossing.biom'}
8423

8524
def tearDown(self):
86-
for f in self.taxa_files:
87-
path = join(self.taxa_base, f)
88-
if exists(path):
89-
remove(path)
25+
rmtree('../agp_processing', ignore_errors=True)
26+
agenv.paths['collapsed']['notrim']['1k'] = self.path
9027

9128
def test_cat_taxa_summaries(self):
9229
cat_taxa_summaries()
93-
# Make sure all files created
94-
for f in self.taxa_files:
95-
path = join(self.taxa_base, f)
96-
if not exists(path):
97-
raise AssertionError('File %s not generated!' % f)
30+
path = get_existing_path(
31+
'../agp_processing/10-populated-templates/taxa')
32+
exp = ['ag-oral-flossing-Daily.txt', 'ag-oral-flossing-Never.txt',
33+
'ag-oral-flossing-Occasionally.txt',
34+
'ag-oral-flossing-Rarely.txt', 'ag-oral-flossing-Regularly.txt',
35+
'ag-stool-average.txt']
36+
files = listdir(path)
37+
self.assertEqual(files, exp)
9838

99-
# Test file for correct format
100-
self.maxDiff = None
101-
with open(join(self.taxa_base, 'ag-skin-age-teen.txt')) as f:
39+
with open(join(path, 'ag-oral-flossing-Rarely.txt')) as f:
10240
obs = f.read()
103-
104-
exp = ''
41+
exp = """k__Bacteria; p__Fusobacteria; c__Fusobacteriia; o__Fusobacteriales; f__Fusobacteriaceae; g__Fusobacterium\t0.0110430107527
42+
k__Bacteria; p__Firmicutes; c__Bacilli; o__Bacillales; f__Planococcaceae; g__\t0.00196774193548
43+
k__Bacteria; p__Bacteroidetes; c__Flavobacteriia; o__Flavobacteriales; f__[Weeksellaceae]; g__Chryseobacterium\t0.0125913978495
44+
k__Bacteria; p__Bacteroidetes; c__Sphingobacteriia; o__Sphingobacteriales; f__Sphingobacteriaceae; g__Sphingobacterium\t0.00608602150538
45+
k__Bacteria; p__Firmicutes; c__Erysipelotrichi; o__Erysipelotrichales; f__Erysipelotrichaceae; g__Bulleidia\t0.00269892473118
46+
k__Bacteria; p__Proteobacteria; c__Betaproteobacteria; o__Neisseriales; f__Neisseriaceae; g__Neisseria\t0.074935483871
47+
k__Bacteria; p__Firmicutes; c__Clostridia; o__Clostridiales; f__Lachnospiraceae; g__Oribacterium\t0.00749462365591
48+
k__Bacteria; p__Proteobacteria; c__Gammaproteobacteria; o__Xanthomonadales; f__Xanthomonadaceae; g__\t0.017311827957
49+
k__Bacteria; p__Proteobacteria; c__Gammaproteobacteria; o__Pseudomonadales; f__Moraxellaceae; g__Enhydrobacter\t0.000150537634409
50+
k__Bacteria; p__Firmicutes; c__Clostridia; o__Clostridiales; f__Lachnospiraceae; g__\t0.00667741935484
51+
k__Bacteria; p__Proteobacteria; c__Alphaproteobacteria; o__Caulobacterales; f__Caulobacteraceae; g__Brevundimonas\t0.00996774193548
52+
k__Bacteria; p__Bacteroidetes; c__Flavobacteriia; o__Flavobacteriales; f__[Weeksellaceae]; g__\t0.00139784946237
53+
k__Bacteria; p__Proteobacteria; c__Gammaproteobacteria; o__Enterobacteriales; f__Enterobacteriaceae; g__Klebsiella\t0.00174193548387
54+
k__Bacteria; p__Firmicutes; c__Bacilli; o__Bacillales; f__Staphylococcaceae; g__Staphylococcus\t0.00756989247312
55+
k__Bacteria; p__Bacteroidetes; c__Bacteroidia; o__Bacteroidales; f__Prevotellaceae; g__Prevotella\t0.0509569892473
56+
k__Bacteria; p__Fusobacteria; c__Fusobacteriia; o__Fusobacteriales; f__Leptotrichiaceae; g__Leptotrichia\t0.0143333333333
57+
k__Bacteria; p__Firmicutes; c__Bacilli; o__Lactobacillales; f__Streptococcaceae; g__Streptococcus\t0.138817204301
58+
k__Bacteria; p__Proteobacteria; c__Gammaproteobacteria; o__Pseudomonadales; f__Pseudomonadaceae; g__\t0.0051935483871
59+
k__Bacteria; p__Bacteroidetes; c__Bacteroidia; o__Bacteroidales; f__[Paraprevotellaceae]; g__[Prevotella]\t0.00132258064516
60+
k__Bacteria; p__Proteobacteria; c__Epsilonproteobacteria; o__Campylobacterales; f__Campylobacteraceae; g__Campylobacter\t0.00133333333333
61+
k__Bacteria; p__Firmicutes; c__Bacilli; o__Gemellales; f__Gemellaceae; g__\t0.0097311827957
62+
k__Bacteria; p__Proteobacteria; c__Gammaproteobacteria; o__Enterobacteriales; f__Enterobacteriaceae; g__\t0.0135268817204
63+
k__Bacteria; p__Proteobacteria; c__Gammaproteobacteria; o__Pasteurellales; f__Pasteurellaceae; g__Haemophilus\t0.0668279569892
64+
k__Bacteria; p__Proteobacteria; c__Alphaproteobacteria; o__Rhizobiales; f__Brucellaceae; g__Ochrobactrum\t0.00575268817204
65+
k__Bacteria; p__Firmicutes; c__Clostridia; o__Clostridiales; f__Veillonellaceae; g__Veillonella\t0.0709247311828
66+
k__Bacteria; p__Bacteroidetes; c__Bacteroidia; o__Bacteroidales; f__Porphyromonadaceae; g__Porphyromonas\t0.0165698924731
67+
k__Bacteria; p__Proteobacteria; c__Gammaproteobacteria; o__Pasteurellales; f__Pasteurellaceae; g__Aggregatibacter\t0.00410752688172
68+
k__Bacteria; p__Proteobacteria; c__Betaproteobacteria; o__Neisseriales; f__Neisseriaceae; g__\t0.00394623655914
69+
k__Bacteria; p__Proteobacteria; c__Gammaproteobacteria; o__Pseudomonadales; f__Moraxellaceae; g__Acinetobacter\t0.0247634408602
70+
k__Bacteria; p__Firmicutes; c__Bacilli; o__Lactobacillales; f__Aerococcaceae; g__Alloiococcus\t0.000225806451613
71+
k__Bacteria; p__Firmicutes; c__Clostridia; o__Clostridiales; f__Lachnospiraceae; g__Moryella\t0.000612903225806
72+
k__Bacteria; p__Actinobacteria; c__Actinobacteria; o__Actinomycetales; f__Micrococcaceae; g__Rothia\t0.114602150538
73+
k__Bacteria; p__Actinobacteria; c__Coriobacteriia; o__Coriobacteriales; f__Coriobacteriaceae; g__Atopobium\t0.00761290322581
74+
k__Bacteria; p__Proteobacteria; c__Betaproteobacteria; o__Burkholderiales; f__Comamonadaceae; g__Alicycliphilus\t0.00530107526882
75+
k__Bacteria; p__Actinobacteria; c__Actinobacteria; o__Actinomycetales; f__Actinomycetaceae; g__Actinomyces\t0.0204408602151
76+
k__Bacteria; p__Proteobacteria; c__Gammaproteobacteria; o__Xanthomonadales; f__Xanthomonadaceae; g__Stenotrophomonas\t0.0443655913978
77+
k__Bacteria; p__Actinobacteria; c__Actinobacteria; o__Actinomycetales; f__Corynebacteriaceae; g__Corynebacterium\t0.000440860215054
78+
k__Bacteria; p__Proteobacteria; c__Gammaproteobacteria; o__Enterobacteriales; f__Enterobacteriaceae; g__Morganella\t0.000161290322581
79+
k__Bacteria; p__Firmicutes; c__Bacilli; o__Lactobacillales; f__Carnobacteriaceae; g__Granulicatella\t0.025247311828
80+
k__Bacteria; p__SR1; c__; o__; f__; g__\t0.00222580645161
81+
k__Bacteria; p__Proteobacteria; c__Gammaproteobacteria; o__Pseudomonadales; f__Pseudomonadaceae; g__Pseudomonas\t0.0665268817204
82+
"""
10583
self.assertEqual(obs, exp)
10684

10785

86+
10887
if __name__ == '__main__':
10988
main()

0 commit comments

Comments
 (0)