diff tests/test_shasum.py @ 101:5de499711a92

Begin some unittests for shasum
author Franz Glasner <fzglas.hg@dom66.de>
date Fri, 29 Apr 2022 09:27:05 +0200
parents
children 83dd2506f8f8
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test_shasum.py	Fri Apr 29 09:27:05 2022 +0200
@@ -0,0 +1,75 @@
+# -*- coding: utf-8 -*-
+r"""Unit tests
+
+"""
+
+from __future__ import absolute_import, print_function
+
+import io
+import os
+import sys
+import unittest
+
+from _test_setup import DATADIR
+
+from cutils import shasum
+
+
+PY2 = sys.version_info[0] <= 2
+
+
+class ChangedDir(object):
+
+    """Context manager to temporarily change the directory"""
+
+    def __init__(self, path):
+        self._new_dir = path
+        self._prev_dir = None
+
+    def __enter__(self):
+        self._prev_dir = os.getcwd()
+        os.chdir(self._new_dir)
+
+    def __exit__(self, *args, **kwds):
+        if self._prev_dir is not None:
+            os.chdir(self._prev_dir)
+            self._prev_dir = None
+
+
+class SignifyTests(unittest.TestCase):
+
+    def test_empty(self):
+        destfile = io.StringIO()
+        opts = shasum.gen_opts(algorithm="SHA256",
+                               dest=destfile,
+                               files=[os.path.join(DATADIR, "empty")])
+        shasum.shasum(opts)
+        self.assertTrue(
+            destfile.getvalue().startswith(
+                "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 *"))
+
+    def test_empty_mmap(self):
+        destfile = io.StringIO()
+        opts = shasum.gen_opts(algorithm="SHA256",
+                               dest=destfile,
+                               files=[os.path.join(DATADIR, "empty")],
+                               mmap=True)
+        shasum.shasum(opts)
+        self.assertTrue(
+            destfile.getvalue().startswith(
+                "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 *"))
+
+    def test_empty_no_mmap(self):
+        destfile = io.StringIO()
+        opts = shasum.gen_opts(algorithm="SHA256",
+                               dest=destfile,
+                               files=[os.path.join(DATADIR, "empty")],
+                               mmap=False)
+        shasum.shasum(opts)
+        self.assertTrue(
+            destfile.getvalue().startswith(
+                "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 *"))
+
+
+if __name__ == "__main__":
+    sys.exit(unittest.main())