diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/test_wrapper.py | 50 |
1 files changed, 45 insertions, 5 deletions
diff --git a/tests/test_wrapper.py b/tests/test_wrapper.py index 38def512..e574946b 100644 --- a/tests/test_wrapper.py +++ b/tests/test_wrapper.py | |||
@@ -19,8 +19,10 @@ | |||
19 | from __future__ import print_function | 19 | from __future__ import print_function |
20 | 20 | ||
21 | import os | 21 | import os |
22 | import re | ||
22 | import unittest | 23 | import unittest |
23 | 24 | ||
25 | from pyversion import is_python3 | ||
24 | import wrapper | 26 | import wrapper |
25 | 27 | ||
26 | 28 | ||
@@ -30,16 +32,22 @@ def fixture(*paths): | |||
30 | return os.path.join(os.path.dirname(__file__), 'fixtures', *paths) | 32 | return os.path.join(os.path.dirname(__file__), 'fixtures', *paths) |
31 | 33 | ||
32 | 34 | ||
33 | class RepoWrapperUnitTest(unittest.TestCase): | 35 | class RepoWrapperTestCase(unittest.TestCase): |
34 | """Tests helper functions in the repo wrapper | 36 | """TestCase for the wrapper module.""" |
35 | """ | ||
36 | 37 | ||
37 | def setUp(self): | 38 | def setUp(self): |
38 | """Load the wrapper module every time | 39 | """Load the wrapper module every time.""" |
39 | """ | ||
40 | wrapper._wrapper_module = None | 40 | wrapper._wrapper_module = None |
41 | self.wrapper = wrapper.Wrapper() | 41 | self.wrapper = wrapper.Wrapper() |
42 | 42 | ||
43 | if not is_python3(): | ||
44 | self.assertRegex = self.assertRegexpMatches | ||
45 | |||
46 | |||
47 | class RepoWrapperUnitTest(RepoWrapperTestCase): | ||
48 | """Tests helper functions in the repo wrapper | ||
49 | """ | ||
50 | |||
43 | def test_get_gitc_manifest_dir_no_gitc(self): | 51 | def test_get_gitc_manifest_dir_no_gitc(self): |
44 | """ | 52 | """ |
45 | Test reading a missing gitc config file | 53 | Test reading a missing gitc config file |
@@ -80,5 +88,37 @@ class RepoWrapperUnitTest(unittest.TestCase): | |||
80 | self.assertEqual(self.wrapper.gitc_parse_clientdir('/test/usr/local/google/gitc/'), None) | 88 | self.assertEqual(self.wrapper.gitc_parse_clientdir('/test/usr/local/google/gitc/'), None) |
81 | 89 | ||
82 | 90 | ||
91 | class SetGitTrace2ParentSid(RepoWrapperTestCase): | ||
92 | """Check SetGitTrace2ParentSid behavior.""" | ||
93 | |||
94 | KEY = 'GIT_TRACE2_PARENT_SID' | ||
95 | VALID_FORMAT = re.compile(r'^repo-[0-9]{8}T[0-9]{6}Z-P[0-9a-f]{8}$') | ||
96 | |||
97 | def test_first_set(self): | ||
98 | """Test env var not yet set.""" | ||
99 | env = {} | ||
100 | self.wrapper.SetGitTrace2ParentSid(env) | ||
101 | self.assertIn(self.KEY, env) | ||
102 | value = env[self.KEY] | ||
103 | self.assertRegex(value, self.VALID_FORMAT) | ||
104 | |||
105 | def test_append(self): | ||
106 | """Test env var is appended.""" | ||
107 | env = {self.KEY: 'pfx'} | ||
108 | self.wrapper.SetGitTrace2ParentSid(env) | ||
109 | self.assertIn(self.KEY, env) | ||
110 | value = env[self.KEY] | ||
111 | self.assertTrue(value.startswith('pfx/')) | ||
112 | self.assertRegex(value[4:], self.VALID_FORMAT) | ||
113 | |||
114 | def test_global_context(self): | ||
115 | """Check os.environ gets updated by default.""" | ||
116 | os.environ.pop(self.KEY, None) | ||
117 | self.wrapper.SetGitTrace2ParentSid() | ||
118 | self.assertIn(self.KEY, os.environ) | ||
119 | value = os.environ[self.KEY] | ||
120 | self.assertRegex(value, self.VALID_FORMAT) | ||
121 | |||
122 | |||
83 | if __name__ == '__main__': | 123 | if __name__ == '__main__': |
84 | unittest.main() | 124 | unittest.main() |