From ae8aa4480c98459816d7268b1f25acfeb2f6a5e9 Mon Sep 17 00:00:00 2001
From: Venkat Malladi <venkat.malladi@utsouthwestern.edu>
Date: Thu, 14 Mar 2019 14:57:58 -0500
Subject: [PATCH] Add in tests.

---
 workflow/main.nf                              |  2 +
 .../test_generate_software_references.py      | 41 +++++++++++++++++++
 .../tests/test_generate_software_versions.py  | 31 ++++++++++++++
 3 files changed, 74 insertions(+)
 create mode 100644 workflow/tests/test_generate_software_references.py
 create mode 100644 workflow/tests/test_generate_software_versions.py

diff --git a/workflow/main.nf b/workflow/main.nf
index f89abdb..2a210bb 100644
--- a/workflow/main.nf
+++ b/workflow/main.nf
@@ -487,6 +487,8 @@ process diffPeaks {
 // Collect Software Versions and references
 process softwareReport {
 
+  publishDir "$outDir/${task.process}", mode: 'copy'
+
   input:
 
   file trimReads_vf from trimReadsVersions.collect()
diff --git a/workflow/tests/test_generate_software_references.py b/workflow/tests/test_generate_software_references.py
new file mode 100644
index 0000000..1aeb6d3
--- /dev/null
+++ b/workflow/tests/test_generate_software_references.py
@@ -0,0 +1,41 @@
+#!/usr/bin/env python3
+
+import pytest
+import os
+import utils
+
+test_output_path = os.path.dirname(os.path.abspath(__file__)) + \
+                '/../output/softwareReport/'
+
+
+@pytest.mark.singleend
+def test_software_references():
+    assert os.path.exists(os.path.join(test_output_path, 'software_references_mqc.txt'))
+
+
+@pytest.mark.singleend
+def test_nextflow_version():
+    assert os.path.exists(os.path.join(test_output_path, 'version_nextflow.txt'))
+
+
+@pytest.mark.singleend
+def test_software_versions():
+    assert os.path.exists(os.path.join(test_output_path, 'software_versions_mqc.yaml'))
+
+
+@pytest.mark.singleend
+def test_software_versions_output():
+    software_versions = os.path.join(test_output_path, 'software_versions_mqc.yaml')
+    with open(software_versions, 'r') as stream:
+        data_loaded = yaml.load(stream)
+
+    assert len(data_loaded['data'].split('<dt>')) == 15
+
+
+@pytest.mark.singleskip_true
+def test_software_versions_output_rep():
+    software_versions = os.path.join(test_output_path, 'software_versions_mqc.yaml')
+    with open(software_versions, 'r') as stream:
+        data_loaded = yaml.load(stream)
+
+    assert len(data_loaded['data'].split('<dt>')) == 13
diff --git a/workflow/tests/test_generate_software_versions.py b/workflow/tests/test_generate_software_versions.py
new file mode 100644
index 0000000..77489a8
--- /dev/null
+++ b/workflow/tests/test_generate_software_versions.py
@@ -0,0 +1,31 @@
+#!/usr/bin/env python3
+
+import pytest
+import os
+import utils
+
+test_output_path = os.path.dirname(os.path.abspath(__file__)) + \
+                '/../output/softwareReport/'
+
+
+@pytest.mark.singleend
+def test_software_versions():
+    assert os.path.exists(os.path.join(test_output_path, 'software_versions_mqc.yaml'))
+
+
+@pytest.mark.singleend
+def test_software_versions_output():
+    software_versions = os.path.join(test_output_path, 'software_versions_mqc.yaml')
+    with open(software_versions, 'r') as stream:
+        data_loaded = yaml.load(stream)
+
+    assert len(data_loaded['data'].split('<dt>')) == 15
+
+
+@pytest.mark.singleskip_true
+def test_software_versions_output_rep():
+    software_versions = os.path.join(test_output_path, 'software_versions_mqc.yaml')
+    with open(software_versions, 'r') as stream:
+        data_loaded = yaml.load(stream)
+
+    assert len(data_loaded['data'].split('<dt>')) == 13
-- 
GitLab