From 00ad428894d65857bb85ee99d3deff578c69faf3 Mon Sep 17 00:00:00 2001 From: Joseph Hunkeler Date: Wed, 8 May 2019 08:34:55 -0400 Subject: Initial commit of tests --- tests/test_merge.py | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 tests/test_merge.py (limited to 'tests/test_merge.py') 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) -- cgit