summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/test_wrapper.py88
1 files changed, 88 insertions, 0 deletions
diff --git a/tests/test_wrapper.py b/tests/test_wrapper.py
index a98c4130..c105a3ce 100644
--- a/tests/test_wrapper.py
+++ b/tests/test_wrapper.py
@@ -153,5 +153,93 @@ class SetGitTrace2ParentSid(RepoWrapperTestCase):
153 self.assertRegex(value, self.VALID_FORMAT) 153 self.assertRegex(value, self.VALID_FORMAT)
154 154
155 155
156class RunCommand(RepoWrapperTestCase):
157 """Check run_command behavior."""
158
159 def test_capture(self):
160 """Check capture_output handling."""
161 ret = self.wrapper.run_command(['echo', 'hi'], capture_output=True)
162 self.assertEqual(ret.stdout, 'hi\n')
163
164 def test_check(self):
165 """Check check handling."""
166 self.wrapper.run_command(['true'], check=False)
167 self.wrapper.run_command(['true'], check=True)
168 self.wrapper.run_command(['false'], check=False)
169 with self.assertRaises(self.wrapper.RunError):
170 self.wrapper.run_command(['false'], check=True)
171
172
173class RunGit(RepoWrapperTestCase):
174 """Check run_git behavior."""
175
176 def test_capture(self):
177 """Check capture_output handling."""
178 ret = self.wrapper.run_git('--version')
179 self.assertIn('git', ret.stdout)
180
181 def test_check(self):
182 """Check check handling."""
183 with self.assertRaises(self.wrapper.CloneFailure):
184 self.wrapper.run_git('--version-asdfasdf')
185 self.wrapper.run_git('--version-asdfasdf', check=False)
186
187
188class ParseGitVersion(RepoWrapperTestCase):
189 """Check ParseGitVersion behavior."""
190
191 def test_autoload(self):
192 """Check we can load the version from the live git."""
193 ret = self.wrapper.ParseGitVersion()
194 self.assertIsNotNone(ret)
195
196 def test_bad_ver(self):
197 """Check handling of bad git versions."""
198 ret = self.wrapper.ParseGitVersion(ver_str='asdf')
199 self.assertIsNone(ret)
200
201 def test_normal_ver(self):
202 """Check handling of normal git versions."""
203 ret = self.wrapper.ParseGitVersion(ver_str='git version 2.25.1')
204 self.assertEqual(2, ret.major)
205 self.assertEqual(25, ret.minor)
206 self.assertEqual(1, ret.micro)
207 self.assertEqual('2.25.1', ret.full)
208
209 def test_extended_ver(self):
210 """Check handling of extended distro git versions."""
211 ret = self.wrapper.ParseGitVersion(
212 ver_str='git version 1.30.50.696.g5e7596f4ac-goog')
213 self.assertEqual(1, ret.major)
214 self.assertEqual(30, ret.minor)
215 self.assertEqual(50, ret.micro)
216 self.assertEqual('1.30.50.696.g5e7596f4ac-goog', ret.full)
217
218
219class CheckGitVersion(RepoWrapperTestCase):
220 """Check _CheckGitVersion behavior."""
221
222 def test_unknown(self):
223 """Unknown versions should abort."""
224 with mock.patch.object(self.wrapper, 'ParseGitVersion', return_value=None):
225 with self.assertRaises(self.wrapper.CloneFailure):
226 self.wrapper._CheckGitVersion()
227
228 def test_old(self):
229 """Old versions should abort."""
230 with mock.patch.object(
231 self.wrapper, 'ParseGitVersion',
232 return_value=self.wrapper.GitVersion(1, 0, 0, '1.0.0')):
233 with self.assertRaises(self.wrapper.CloneFailure):
234 self.wrapper._CheckGitVersion()
235
236 def test_new(self):
237 """Newer versions should run fine."""
238 with mock.patch.object(
239 self.wrapper, 'ParseGitVersion',
240 return_value=self.wrapper.GitVersion(100, 0, 0, '100.0.0')):
241 self.wrapper._CheckGitVersion()
242
243
156if __name__ == '__main__': 244if __name__ == '__main__':
157 unittest.main() 245 unittest.main()