diff options
author | Didier Raboud <odyx@debian.org> | 2012-05-05 12:36:53 +0200 |
---|---|---|
committer | Didier Raboud <odyx@debian.org> | 2012-05-07 21:04:24 +0200 |
commit | a44b22d5c000e5be16874bcc24d2293cc54b057e (patch) | |
tree | ae83b78f503e70dc8e2415e4cd99d05d82ed594a /test | |
parent | 1d58a03481f6066c6f5085951c9af36696ecfc79 (diff) |
PyUT: Implement a unittest for valid_lsb_versions.
Take the opportunity to fix its output for cxx in 3.1.
Diffstat (limited to 'test')
-rw-r--r-- | test/test_lsb_release.py | 38 |
1 files changed, 37 insertions, 1 deletions
diff --git a/test/test_lsb_release.py b/test/test_lsb_release.py index 5aa821d..c22a3db 100644 --- a/test/test_lsb_release.py +++ b/test/test_lsb_release.py @@ -20,7 +20,43 @@ class TestLSBRelease(unittest.TestCase): self.assertEqual(lr.lookup_codename('inexistent_release' + str(random.randint(0,9)),badDefault),badDefault,'Default release codename is not accepted.') def test_valid_lsb_versions(self): - raise NotImplementedError() + # List versions in which the modules are available + lsb_modules = { + 'cxx' : ['3.0', '3.1', '3.2', '4.0', '4.1'], + 'desktop' : ['3.1', '3.2', '4.0', '4.1'], + 'languages' : ['3.2', '4.0', '4.1'], + 'multimedia' : ['3.2', '4.0', '4.1'], + 'printing' : ['3.2', '4.0', '4.1'], + 'qt4' : ['3.1'], + 'security' : ['4.0','4.1'], + } + lsb_known_versions = ['2.0', '3.0', '3.1', '3.2', '4.0', '4.1']; + for lsb_module in lsb_modules: + in_versions = lsb_modules[lsb_module] + for test_v in lsb_known_versions: + vlv_result = lr.valid_lsb_versions(test_v,lsb_module) + assert_text = 'valid_lsb_versions(' + test_v + ',' + lsb_module + ')' + # For 2.0, all output 2.0 only. + if test_v == '2.0': + self.assertEqual(vlv_result, + ['2.0'], + assert_text) + # For 3.0, all output 2.0 and 3.0. + elif test_v == '3.0': + self.assertEqual(vlv_result, + ['2.0', '3.0'], + assert_text) + # Before appearance, it outputs all past LSB versions + elif int(float(test_v)*10) < int(float(in_versions[0])*10): + self.assertEqual(vlv_result, + [elem for elem in lsb_known_versions if int(float(elem)*10) <= int(float(test_v)*10)], + assert_text) + # From appearence on, it outputs all lower versions from the in_versions + else: + self.assertEqual(vlv_result, + [elem for elem in in_versions if int(float(elem)*10) <= int(float(test_v)*10)], + assert_text) + def test_check_modules_installed(self): raise NotImplementedError() def test_parse_policy_line(self): |