diff options
Diffstat (limited to 'tests/test_wrapper.py')
-rw-r--r-- | tests/test_wrapper.py | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/tests/test_wrapper.py b/tests/test_wrapper.py index d8713738..6400faf4 100644 --- a/tests/test_wrapper.py +++ b/tests/test_wrapper.py | |||
@@ -19,6 +19,7 @@ from io import StringIO | |||
19 | import os | 19 | import os |
20 | import re | 20 | import re |
21 | import shutil | 21 | import shutil |
22 | import sys | ||
22 | import tempfile | 23 | import tempfile |
23 | import unittest | 24 | import unittest |
24 | from unittest import mock | 25 | from unittest import mock |
@@ -255,6 +256,81 @@ class CheckGitVersion(RepoWrapperTestCase): | |||
255 | self.wrapper._CheckGitVersion() | 256 | self.wrapper._CheckGitVersion() |
256 | 257 | ||
257 | 258 | ||
259 | class Requirements(RepoWrapperTestCase): | ||
260 | """Check Requirements handling.""" | ||
261 | |||
262 | def test_missing_file(self): | ||
263 | """Don't crash if the file is missing (old version).""" | ||
264 | testdir = os.path.dirname(os.path.realpath(__file__)) | ||
265 | self.assertIsNone(self.wrapper.Requirements.from_dir(testdir)) | ||
266 | self.assertIsNone(self.wrapper.Requirements.from_file( | ||
267 | os.path.join(testdir, 'xxxxxxxxxxxxxxxxxxxxxxxx'))) | ||
268 | |||
269 | def test_corrupt_data(self): | ||
270 | """If the file can't be parsed, don't blow up.""" | ||
271 | self.assertIsNone(self.wrapper.Requirements.from_file(__file__)) | ||
272 | self.assertIsNone(self.wrapper.Requirements.from_data(b'x')) | ||
273 | |||
274 | def test_valid_data(self): | ||
275 | """Make sure we can parse the file we ship.""" | ||
276 | self.assertIsNotNone(self.wrapper.Requirements.from_data(b'{}')) | ||
277 | rootdir = os.path.dirname(os.path.dirname(os.path.realpath(__file__))) | ||
278 | self.assertIsNotNone(self.wrapper.Requirements.from_dir(rootdir)) | ||
279 | self.assertIsNotNone(self.wrapper.Requirements.from_file(os.path.join( | ||
280 | rootdir, 'requirements.json'))) | ||
281 | |||
282 | def test_format_ver(self): | ||
283 | """Check format_ver can format.""" | ||
284 | self.assertEqual('1.2.3', self.wrapper.Requirements._format_ver((1, 2, 3))) | ||
285 | self.assertEqual('1', self.wrapper.Requirements._format_ver([1])) | ||
286 | |||
287 | def test_assert_all_unknown(self): | ||
288 | """Check assert_all works with incompatible file.""" | ||
289 | reqs = self.wrapper.Requirements({}) | ||
290 | reqs.assert_all() | ||
291 | |||
292 | def test_assert_all_new_repo(self): | ||
293 | """Check assert_all accepts new enough repo.""" | ||
294 | reqs = self.wrapper.Requirements({'repo': {'hard': [1, 0]}}) | ||
295 | reqs.assert_all() | ||
296 | |||
297 | def test_assert_all_old_repo(self): | ||
298 | """Check assert_all rejects old repo.""" | ||
299 | reqs = self.wrapper.Requirements({'repo': {'hard': [99999, 0]}}) | ||
300 | with self.assertRaises(SystemExit): | ||
301 | reqs.assert_all() | ||
302 | |||
303 | def test_assert_all_new_python(self): | ||
304 | """Check assert_all accepts new enough python.""" | ||
305 | reqs = self.wrapper.Requirements({'python': {'hard': sys.version_info}}) | ||
306 | reqs.assert_all() | ||
307 | |||
308 | def test_assert_all_old_repo(self): | ||
309 | """Check assert_all rejects old repo.""" | ||
310 | reqs = self.wrapper.Requirements({'python': {'hard': [99999, 0]}}) | ||
311 | with self.assertRaises(SystemExit): | ||
312 | reqs.assert_all() | ||
313 | |||
314 | def test_assert_ver_unknown(self): | ||
315 | """Check assert_ver works with incompatible file.""" | ||
316 | reqs = self.wrapper.Requirements({}) | ||
317 | reqs.assert_ver('xxx', (1, 0)) | ||
318 | |||
319 | def test_assert_ver_new(self): | ||
320 | """Check assert_ver allows new enough versions.""" | ||
321 | reqs = self.wrapper.Requirements({'git': {'hard': [1, 0], 'soft': [2, 0]}}) | ||
322 | reqs.assert_ver('git', (1, 0)) | ||
323 | reqs.assert_ver('git', (1, 5)) | ||
324 | reqs.assert_ver('git', (2, 0)) | ||
325 | reqs.assert_ver('git', (2, 5)) | ||
326 | |||
327 | def test_assert_ver_old(self): | ||
328 | """Check assert_ver rejects old versions.""" | ||
329 | reqs = self.wrapper.Requirements({'git': {'hard': [1, 0], 'soft': [2, 0]}}) | ||
330 | with self.assertRaises(SystemExit): | ||
331 | reqs.assert_ver('git', (0, 5)) | ||
332 | |||
333 | |||
258 | class NeedSetupGnuPG(RepoWrapperTestCase): | 334 | class NeedSetupGnuPG(RepoWrapperTestCase): |
259 | """Check NeedSetupGnuPG behavior.""" | 335 | """Check NeedSetupGnuPG behavior.""" |
260 | 336 | ||