Skip to content

Commit a93b7a6

Browse files
committed
cli.transfer_data.py: add tests for '--short_names' & fiz bug in ZIP file naming.
1 parent 27aceb0 commit a93b7a6

2 files changed

Lines changed: 76 additions & 1 deletion

File tree

auto_process_ngs/cli/transfer_data.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -868,7 +868,7 @@ def main(argv=None):
868868
if analysis_dir.metadata.analysis_number is not None:
869869
run_number += "_" + str(analysis_dir.metadata.analysis_number)
870870
if short_names:
871-
final_zip_basename = f"{project.name}"
871+
final_zip_basename = f"{project.name}-fastqs"
872872
else:
873873
final_zip_basename = \
874874
"{platform}_{datestamp}.{run_number}-{project}-fastqs".\

auto_process_ngs/test/cli/test_transfer_data.py

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -664,3 +664,78 @@ def test_transfer_data_dry_run(self):
664664
"--dry-run" ]), 0)
665665
# Check nothing was transferred
666666
self.assertEqual(len(os.listdir(target_dir)), 0)
667+
668+
def test_transfer_data_fastqs_with_qc_report_short_names(self):
669+
"""
670+
transfer_data: copy Fastqs and QC report with shortened names
671+
"""
672+
# Make a mock auto-process directory
673+
mockdir = MockAnalysisDirFactory.bcl2fastq2(
674+
'170901_M00879_0087_000000000-AGEW9',
675+
'miseq',
676+
metadata={ "instrument_datestamp": "170901",
677+
"run_number": "89" },
678+
project_metadata={ "AB": { "Library type": "RNA-seq",
679+
"Organism": "Human" } },
680+
top_dir=self.dirn)
681+
mockdir.create()
682+
# Add QC outputs
683+
project = AnalysisProject(os.path.join(mockdir.dirn, "AB"))
684+
UpdateAnalysisProject(project).add_qc_outputs()
685+
# Make a target directory
686+
target_dir = os.path.join(self.dirn, "shared")
687+
os.makedirs(target_dir)
688+
# Do data transfer (--include_qc_report)
689+
self.assertEqual(transfer_data(
690+
[target_dir,
691+
os.path.join(mockdir.dirn, "AB"),
692+
"--include_qc_report",
693+
"--short_names"]), 0)
694+
# Check transferred artefacts
695+
print(os.listdir(target_dir))
696+
expected_files = ("AB1_S1_R1_001.fastq.gz",
697+
"AB1_S1_R2_001.fastq.gz",
698+
"AB2_S2_R2_001.fastq.gz",
699+
"AB2_S2_R1_001.fastq.gz",
700+
"AB.chksums",
701+
"qc_report.AB.zip")
702+
for f in expected_files:
703+
self.assertTrue(os.path.exists(os.path.join(target_dir, f)),
704+
f"'{f}': missing, should be present")
705+
for f in os.listdir(target_dir):
706+
self.assertTrue(f in expected_files,
707+
f"'{f}': present, but not expected")
708+
709+
def test_transfer_data_zip_fastqs_short_names(self):
710+
"""
711+
transfer_data: put Fastqs into ZIP archive using shortened names
712+
"""
713+
# Make a mock auto-process directory
714+
mockdir = MockAnalysisDirFactory.bcl2fastq2(
715+
'170901_M00879_0087_000000000-AGEW9',
716+
'miseq',
717+
metadata={ "instrument_datestamp": "170901",
718+
"run_number": "89" },
719+
project_metadata={ "AB": { "Library type": "RNA-seq",
720+
"Organism": "Human" } },
721+
top_dir=self.dirn)
722+
mockdir.create()
723+
# Make a target directory
724+
target_dir = os.path.join(self.dirn, "shared")
725+
os.makedirs(target_dir)
726+
# Do data transfer (--zip_fastqs)
727+
self.assertEqual(transfer_data(
728+
[target_dir,
729+
os.path.join(mockdir.dirn, "AB"),
730+
"--zip_fastqs",
731+
"--short_names"]), 0)
732+
# Check transferred artefacts
733+
print(os.listdir(target_dir))
734+
expected_files = ("AB-fastqs.zip",
735+
"AB-fastqs.checksums")
736+
for f in expected_files:
737+
self.assertTrue(os.path.exists(os.path.join(target_dir, f)),
738+
f"'{f}': missing, should be present")
739+
for f in os.listdir(target_dir):
740+
self.assertTrue(f in expected_files,
741+
f"'{f}': present, but not expected")

0 commit comments

Comments
 (0)