| Line 0
          
      
      
        Link Here | 
            
              |  |  | 1 | #!/usr/share/ucs-test/runner python | 
            
              | 2 | ## desc: Test if app installation version check is working | 
            
              | 3 | ## tags: [SKIP-UCSSCHOOL, basic, apptest] | 
            
              | 4 | ## roles-not: [basesystem] | 
            
              | 5 | ## exposure: safe | 
            
              | 6 | ## packages: | 
            
              | 7 | ##   - univention-management-console-module-appcenter | 
            
              | 8 |  | 
            
              | 9 | from univention.appcenter.app import App | 
            
              | 10 | import univention.testing.utils as utils | 
            
              | 11 |  | 
            
              | 12 | FAIL = "\033[91m" | 
            
              | 13 | SUCCUSS = "\033[92m" | 
            
              | 14 | ENDC = "\033[0m" | 
            
              | 15 |  | 
            
              | 16 | test_successful = True | 
            
              | 17 | def test_is_required_fitting(): | 
            
              | 18 | 	version_pairs = [ | 
            
              | 19 | 		{'required_version': '4', 'current_version': '4.0-0 errata0'}, | 
            
              | 20 | 		{'required_version': '4.0', 'current_version': '4.0-0 errata0'}, | 
            
              | 21 | 		{'required_version': '4.0-0', 'current_version': '4.0-0 errata0'}, | 
            
              | 22 | 		{'required_version': '4.0-0 errata0', 'current_version': '4.0-0 errata0'}, | 
            
              | 23 |  | 
            
              | 24 | 		{'required_version': '4', 'current_version': '4.1-0 errata0'}, | 
            
              | 25 | 		{'required_version': '4.0', 'current_version': '4.1-0 errata0'}, | 
            
              | 26 | 		{'required_version': '4.0-0', 'current_version': '4.1-0 errata0'}, | 
            
              | 27 | 		{'required_version': '4.0-0 errata0', 'current_version': '4.1-0 errata0'}, | 
            
              | 28 |  | 
            
              | 29 | 		{'required_version': '4.0-0 errata100', 'current_version': '4.1-0 errata0'}, | 
            
              | 30 | 		{'required_version': '4.0-1 errata100', 'current_version': '4.1-0 errata0'}, | 
            
              | 31 |  | 
            
              | 32 | 		{'required_version': '3', 'current_version': '4.0-0 errata0'}, | 
            
              | 33 | 		{'required_version': '3.1', 'current_version': '4.0-0 errata0'}, | 
            
              | 34 | 		{'required_version': '3.0-1', 'current_version': '4.0-0 errata0'}, | 
            
              | 35 | 		{'required_version': '3.0-0 errata1', 'current_version': '4.0-0 errata0'} | 
            
              | 36 | 	] | 
            
              | 37 | 	print "Should be fitting:" | 
            
              | 38 | 	for version_pair in version_pairs: | 
            
              | 39 | 		is_fitting = App.is_fitting_ucs_version(version_pair['required_version'], version_pair['current_version']) | 
            
              | 40 | 		print "\tRequired: %s" % version_pair['required_version'] | 
            
              | 41 | 		print "\tCurrent:  %s" % version_pair['current_version'] | 
            
              | 42 | 		print '\t{color}{outcome}{endc}\n'.format(color=SUCCUSS if is_fitting else FAIL, outcome=is_fitting, endc=ENDC) | 
            
              | 43 | 		if not is_fitting: | 
            
              | 44 | 			global test_successful | 
            
              | 45 | 			test_successful = False | 
            
              | 46 |  | 
            
              | 47 | def test_is_required_not_fitting(): | 
            
              | 48 | 	version_pairs = [ | 
            
              | 49 | 		{'required_version': '5', 'current_version': '4.0-0 errata0'}, | 
            
              | 50 | 		{'required_version': '4.1', 'current_version': '4.0-0 errata0'}, | 
            
              | 51 | 		{'required_version': '4.0-1', 'current_version': '4.0-0 errata0'}, | 
            
              | 52 | 		{'required_version': '4.0-0 errata1', 'current_version': '4.0-0 errata0'}, | 
            
              | 53 |  | 
            
              | 54 | 		{'required_version': '5.0-0 errata0', 'current_version': '4.0-0 errata1'}, | 
            
              | 55 | 		{'required_version': '5.0-0 errata0', 'current_version': '4.0-1 errata1'}, | 
            
              | 56 | 		{'required_version': '5.0-0 errata0', 'current_version': '4.1-1 errata1'} | 
            
              | 57 | 	] | 
            
              | 58 | 	print "Should not be fitting:" | 
            
              | 59 | 	for version_pair in version_pairs: | 
            
              | 60 | 		is_fitting = App.is_fitting_ucs_version(version_pair['required_version'], version_pair['current_version']) | 
            
              | 61 | 		print "\tRequired: %s" % version_pair['required_version'] | 
            
              | 62 | 		print "\tCurrent:  %s" % version_pair['current_version'] | 
            
              | 63 | 		not_fitting = not is_fitting | 
            
              | 64 | 		print '\t{color}{outcome}{endc}\n'.format(color=SUCCUSS if not_fitting else FAIL, outcome=not_fitting, endc=ENDC) | 
            
              | 65 | 		if is_fitting: | 
            
              | 66 | 			global test_successful | 
            
              | 67 | 			test_successful = False | 
            
              | 68 |  | 
            
              | 69 | if __name__ == '__main__': | 
            
              | 70 | 	test_is_required_fitting() | 
            
              | 71 | 	test_is_required_not_fitting() | 
            
              | 72 | 	if not test_successful: | 
            
              | 73 | 		utils.fail('A version comparison failed') | 
            
              | 74 | * |