annotate 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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
101
5de499711a92 Begin some unittests for shasum
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
5de499711a92 Begin some unittests for shasum
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
2 r"""Unit tests
5de499711a92 Begin some unittests for shasum
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
3
5de499711a92 Begin some unittests for shasum
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
4 """
5de499711a92 Begin some unittests for shasum
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
5
5de499711a92 Begin some unittests for shasum
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
6 from __future__ import absolute_import, print_function
5de499711a92 Begin some unittests for shasum
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
7
5de499711a92 Begin some unittests for shasum
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
8 import io
5de499711a92 Begin some unittests for shasum
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
9 import os
5de499711a92 Begin some unittests for shasum
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
10 import sys
5de499711a92 Begin some unittests for shasum
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
11 import unittest
5de499711a92 Begin some unittests for shasum
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
12
5de499711a92 Begin some unittests for shasum
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
13 from _test_setup import DATADIR
5de499711a92 Begin some unittests for shasum
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
14
5de499711a92 Begin some unittests for shasum
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
15 from cutils import shasum
5de499711a92 Begin some unittests for shasum
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
16
5de499711a92 Begin some unittests for shasum
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
17
5de499711a92 Begin some unittests for shasum
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
18 PY2 = sys.version_info[0] <= 2
5de499711a92 Begin some unittests for shasum
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
19
5de499711a92 Begin some unittests for shasum
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
20
5de499711a92 Begin some unittests for shasum
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
21 class ChangedDir(object):
5de499711a92 Begin some unittests for shasum
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
22
5de499711a92 Begin some unittests for shasum
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
23 """Context manager to temporarily change the directory"""
5de499711a92 Begin some unittests for shasum
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
24
5de499711a92 Begin some unittests for shasum
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
25 def __init__(self, path):
5de499711a92 Begin some unittests for shasum
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
26 self._new_dir = path
5de499711a92 Begin some unittests for shasum
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
27 self._prev_dir = None
5de499711a92 Begin some unittests for shasum
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
28
5de499711a92 Begin some unittests for shasum
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
29 def __enter__(self):
5de499711a92 Begin some unittests for shasum
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
30 self._prev_dir = os.getcwd()
5de499711a92 Begin some unittests for shasum
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
31 os.chdir(self._new_dir)
5de499711a92 Begin some unittests for shasum
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
32
5de499711a92 Begin some unittests for shasum
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
33 def __exit__(self, *args, **kwds):
5de499711a92 Begin some unittests for shasum
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
34 if self._prev_dir is not None:
5de499711a92 Begin some unittests for shasum
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
35 os.chdir(self._prev_dir)
5de499711a92 Begin some unittests for shasum
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
36 self._prev_dir = None
5de499711a92 Begin some unittests for shasum
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
37
5de499711a92 Begin some unittests for shasum
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
38
5de499711a92 Begin some unittests for shasum
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
39 class SignifyTests(unittest.TestCase):
5de499711a92 Begin some unittests for shasum
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
40
5de499711a92 Begin some unittests for shasum
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
41 def test_empty(self):
5de499711a92 Begin some unittests for shasum
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
42 destfile = io.StringIO()
5de499711a92 Begin some unittests for shasum
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
43 opts = shasum.gen_opts(algorithm="SHA256",
5de499711a92 Begin some unittests for shasum
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
44 dest=destfile,
5de499711a92 Begin some unittests for shasum
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
45 files=[os.path.join(DATADIR, "empty")])
5de499711a92 Begin some unittests for shasum
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
46 shasum.shasum(opts)
5de499711a92 Begin some unittests for shasum
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
47 self.assertTrue(
5de499711a92 Begin some unittests for shasum
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
48 destfile.getvalue().startswith(
5de499711a92 Begin some unittests for shasum
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
49 "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 *"))
5de499711a92 Begin some unittests for shasum
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
50
5de499711a92 Begin some unittests for shasum
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
51 def test_empty_mmap(self):
5de499711a92 Begin some unittests for shasum
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
52 destfile = io.StringIO()
5de499711a92 Begin some unittests for shasum
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
53 opts = shasum.gen_opts(algorithm="SHA256",
5de499711a92 Begin some unittests for shasum
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
54 dest=destfile,
5de499711a92 Begin some unittests for shasum
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
55 files=[os.path.join(DATADIR, "empty")],
5de499711a92 Begin some unittests for shasum
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
56 mmap=True)
5de499711a92 Begin some unittests for shasum
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
57 shasum.shasum(opts)
5de499711a92 Begin some unittests for shasum
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
58 self.assertTrue(
5de499711a92 Begin some unittests for shasum
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
59 destfile.getvalue().startswith(
5de499711a92 Begin some unittests for shasum
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
60 "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 *"))
5de499711a92 Begin some unittests for shasum
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
61
5de499711a92 Begin some unittests for shasum
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
62 def test_empty_no_mmap(self):
5de499711a92 Begin some unittests for shasum
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
63 destfile = io.StringIO()
5de499711a92 Begin some unittests for shasum
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
64 opts = shasum.gen_opts(algorithm="SHA256",
5de499711a92 Begin some unittests for shasum
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
65 dest=destfile,
5de499711a92 Begin some unittests for shasum
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
66 files=[os.path.join(DATADIR, "empty")],
5de499711a92 Begin some unittests for shasum
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
67 mmap=False)
5de499711a92 Begin some unittests for shasum
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
68 shasum.shasum(opts)
5de499711a92 Begin some unittests for shasum
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
69 self.assertTrue(
5de499711a92 Begin some unittests for shasum
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
70 destfile.getvalue().startswith(
5de499711a92 Begin some unittests for shasum
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
71 "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 *"))
5de499711a92 Begin some unittests for shasum
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
72
5de499711a92 Begin some unittests for shasum
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
73
5de499711a92 Begin some unittests for shasum
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
74 if __name__ == "__main__":
5de499711a92 Begin some unittests for shasum
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
75 sys.exit(unittest.main())