Mercurial > hgrepos > Python > apps > py-cutils
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 |
| 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()) |
