From: Didier Raboud Date: Sat, 5 May 2012 10:36:53 +0000 (+0200) Subject: PyUT: Implement a unittest for valid_lsb_versions. X-Git-Tag: archive/raspbian/10.2018112800+rpi1^2~132^2~3 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=a44b22d5c000e5be16874bcc24d2293cc54b057e;p=lsb.git PyUT: Implement a unittest for valid_lsb_versions. Take the opportunity to fix its output for cxx in 3.1. --- diff --git a/lsb_release.py b/lsb_release.py index 2727d13..ed0667b 100644 --- a/lsb_release.py +++ b/lsb_release.py @@ -68,6 +68,8 @@ def valid_lsb_versions(version, module): elif version == '3.1': if module in ('desktop', 'qt4'): return ['3.1'] + elif module == 'cxx': + return ['3.0', '3.1'] else: return ['2.0', '3.0', '3.1'] elif version == '3.2': 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):