Index: 21_app_install_version_check =================================================================== --- 21_app_install_version_check (Revision 0) +++ 21_app_install_version_check (Arbeitskopie) @@ -0,0 +1,73 @@ +#!/usr/share/ucs-test/runner python +## desc: Test if app installation version check is working +## tags: [SKIP-UCSSCHOOL, basic, apptest] +## roles-not: [basesystem] +## exposure: safe +## packages: +## - univention-management-console-module-appcenter + +from univention.appcenter.app import App +import univention.testing.utils as utils + +FAIL = "\033[91m" +SUCCUSS = "\033[92m" +ENDC = "\033[0m" + +test_successful = True +def test_is_required_fitting(): + version_pairs = [ + {'required_version': '4', 'current_version': '4.0-0 errata0'}, + {'required_version': '4.0', 'current_version': '4.0-0 errata0'}, + {'required_version': '4.0-0', 'current_version': '4.0-0 errata0'}, + {'required_version': '4.0-0 errata0', 'current_version': '4.0-0 errata0'}, + + {'required_version': '4', 'current_version': '4.1-0 errata0'}, + {'required_version': '4.0', 'current_version': '4.1-0 errata0'}, + {'required_version': '4.0-0', 'current_version': '4.1-0 errata0'}, + {'required_version': '4.0-0 errata0', 'current_version': '4.1-0 errata0'}, + + {'required_version': '4.0-0 errata100', 'current_version': '4.1-0 errata0'}, + {'required_version': '4.0-1 errata100', 'current_version': '4.1-0 errata0'}, + + {'required_version': '3', 'current_version': '4.0-0 errata0'}, + {'required_version': '3.1', 'current_version': '4.0-0 errata0'}, + {'required_version': '3.0-1', 'current_version': '4.0-0 errata0'}, + {'required_version': '3.0-0 errata1', 'current_version': '4.0-0 errata0'} + ] + print "Should be fitting:" + for version_pair in version_pairs: + is_fitting = App.is_fitting_ucs_version(version_pair['required_version'], version_pair['current_version']) + print "\tRequired: %s" % version_pair['required_version'] + print "\tCurrent: %s" % version_pair['current_version'] + print '\t{color}{outcome}{endc}\n'.format(color=SUCCUSS if is_fitting else FAIL, outcome=is_fitting, endc=ENDC) + if not is_fitting: + global test_successful + test_successful = False + +def test_is_required_not_fitting(): + version_pairs = [ + {'required_version': '5', 'current_version': '4.0-0 errata0'}, + {'required_version': '4.1', 'current_version': '4.0-0 errata0'}, + {'required_version': '4.0-1', 'current_version': '4.0-0 errata0'}, + {'required_version': '4.0-0 errata1', 'current_version': '4.0-0 errata0'}, + + {'required_version': '5.0-0 errata0', 'current_version': '4.0-0 errata1'}, + {'required_version': '5.0-0 errata0', 'current_version': '4.0-1 errata1'}, + {'required_version': '5.0-0 errata0', 'current_version': '4.1-1 errata1'} + ] + print "Should not be fitting:" + for version_pair in version_pairs: + is_fitting = App.is_fitting_ucs_version(version_pair['required_version'], version_pair['current_version']) + print "\tRequired: %s" % version_pair['required_version'] + print "\tCurrent: %s" % version_pair['current_version'] + not_fitting = not is_fitting + print '\t{color}{outcome}{endc}\n'.format(color=SUCCUSS if not_fitting else FAIL, outcome=not_fitting, endc=ENDC) + if is_fitting: + global test_successful + test_successful = False + +if __name__ == '__main__': + test_is_required_fitting() + test_is_required_not_fitting() + if not test_successful: + utils.fail('A version comparison failed') Eigenschaftsänderungen: 21_app_install_version_check ___________________________________________________________________ Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property