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 | ||
