Skip to content

Commit

Permalink
SQUASH: basic unit tests
Browse files Browse the repository at this point in the history
  • Loading branch information
thermokarst committed May 28, 2020
1 parent 59188dd commit 70e6314
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 2 deletions.
12 changes: 10 additions & 2 deletions q2_types/per_sample_sequences/_transformer.py
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,14 @@
yaml_fmt=YamlFormat,
)

_dirfmt_to_casava_partial = functools.partial(
_dirfmt_to_casava,
manifest_fmt=FastqManifestFormat,
abs_manifest_fmt=FastqAbsolutePathManifestFormat,
fastq_fmt=FastqGzFormat,
casava_fmt=CasavaOneEightSingleLanePerSampleDirFmt,
)


@plugin.register_transformer
def _3(dirfmt: CasavaOneEightSingleLanePerSampleDirFmt) \
Expand All @@ -84,7 +92,7 @@ def _3(dirfmt: CasavaOneEightSingleLanePerSampleDirFmt) \
@plugin.register_transformer
def _3_and_a_half(dirfmt_in: SingleLanePerSampleSingleEndFastqDirFmt) \
-> CasavaOneEightSingleLanePerSampleDirFmt:
return _dirfmt_to_casava(dirfmt_in)
return _dirfmt_to_casava_partial(dirfmt_in)


@plugin.register_transformer
Expand All @@ -97,7 +105,7 @@ def _4(dirfmt: CasavaOneEightSingleLanePerSampleDirFmt) \
@plugin.register_transformer
def _4_and_a_half(dirfmt_in: SingleLanePerSamplePairedEndFastqDirFmt) \
-> CasavaOneEightSingleLanePerSampleDirFmt:
return _dirfmt_to_casava(dirfmt_in)
return _dirfmt_to_casava_partial(dirfmt_in)


@plugin.register_transformer
Expand Down
26 changes: 26 additions & 0 deletions q2_types/per_sample_sequences/tests/test_transformer.py
Original file line number Diff line number Diff line change
Expand Up @@ -1065,6 +1065,32 @@ def test_paired_end_fastq_manifest_phred64_to_slpspefdf(self):
with obs.manifest.view(FastqManifestFormat).open() as obs_manifest:
self.assertEqual(obs_manifest.read(), self.exp_pe_manifest)

def test_slpssefdf_to_casava_one_eight_single_lane_per_sample_dirfmt(self):
filenames = ('Human-Kneecap_S1_L001_R1_001.fastq.gz',)
_, obs = self.transform_format(
SingleLanePerSampleSingleEndFastqDirFmt,
CasavaOneEightSingleLanePerSampleDirFmt, filenames=filenames
)

exp_fp = ['Human-Kneecap_S1_L001_R1_001.fastq.gz']
obs_fp = [str(fp) for fp, _ in obs.sequences.iter_views(FastqGzFormat)]

self.assertEqual(obs_fp, exp_fp)

def test_slpspefdf_to_casava_one_eight_single_lane_per_sample_dirfmt(self):
filenames = ('Human-Kneecap_S1_L001_R1_001.fastq.gz',
'paired_end_data/Human-Kneecap_S1_L001_R2_001.fastq.gz')
_, obs = self.transform_format(
SingleLanePerSamplePairedEndFastqDirFmt,
CasavaOneEightSingleLanePerSampleDirFmt, filenames=filenames
)

exp_fp = ['Human-Kneecap_S1_L001_R1_001.fastq.gz',
'Human-Kneecap_S1_L001_R2_001.fastq.gz']
obs_fp = [str(fp) for fp, _ in obs.sequences.iter_views(FastqGzFormat)]

self.assertEqual(obs_fp, exp_fp)


if __name__ == '__main__':
unittest.main()

0 comments on commit 70e6314

Please sign in to comment.