aboutsummaryrefslogtreecommitdiff
path: root/tests/test_merge.py
diff options
context:
space:
mode:
authorJoseph Hunkeler <jhunkeler@gmail.com>2019-05-08 08:34:55 -0400
committerJoseph Hunkeler <jhunkeler@gmail.com>2019-05-08 08:34:55 -0400
commit00ad428894d65857bb85ee99d3deff578c69faf3 (patch)
tree59f835e09c289da0b62aa66350050d96114047cc /tests/test_merge.py
parent8be522461c0a0050666790ee782a8a1b7bb2a3b8 (diff)
downloaddelivery_merge-00ad428894d65857bb85ee99d3deff578c69faf3.tar.gz
Initial commit of tests
Diffstat (limited to 'tests/test_merge.py')
-rw-r--r--tests/test_merge.py63
1 files changed, 63 insertions, 0 deletions
diff --git a/tests/test_merge.py b/tests/test_merge.py
new file mode 100644
index 0000000..168d2cc
--- /dev/null
+++ b/tests/test_merge.py
@@ -0,0 +1,63 @@
+import pytest
+from delivery_merge import merge
+
+
+COMMENTS_DELIM = [';', '#']
+COMMENTS = """; comment
+; comment ; comment
+;comment;comment
+;comment#comment
+data ; comment
+data ; comment
+data; comment
+data;comment
+# comment
+# comment # comment
+#comment#comment
+#comment;comment
+data # comment
+data # comment
+data# comment
+data#comment
+"""
+DMFILE = """
+; Example
+python # dmfile
+nomkl
+numpy>=1.16.3
+
+"""
+DMFILE_INVALID = f"""
+{DMFILE}
+invalid package specification
+"""
+
+class TestMerge:
+ def setup_class(self):
+ self.input_file = 'sample.dm'
+ self.input_file_invalid = 'sample_invalid.dm'
+ self.input_file_empty = 'sample_empty.dm'
+ open(self.input_file, 'w+').write(DMFILE)
+ open(self.input_file_invalid, 'w+').write(DMFILE_INVALID)
+ open(self.input_file_empty, 'w+').write("")
+
+ def teardown_class(self):
+ pass
+
+ @pytest.mark.parametrize('comments', [x for x in COMMENTS.splitlines()])
+ def test_comment_find(self, comments):
+ index = merge.comment_find(comments)
+ assert comments[index] in COMMENTS_DELIM
+
+ def test_dmfile(self):
+ data = merge.dmfile(self.input_file)
+ assert COMMENTS_DELIM not in data
+ assert all([merge.DMFILE_RE.match(x) for x in data])
+
+ def test_dmfile_raises_InvalidPackageSpec(self):
+ with pytest.raises(merge.InvalidPackageSpec):
+ merge.dmfile(self.input_file_invalid)
+
+ def test_dmfile_raises_EmptyPackageSpec(self):
+ with pytest.raises(merge.EmptyPackageSpec):
+ merge.dmfile(self.input_file_empty)