""" Tests for the openshift_version Ansible filter module. """ # pylint: disable=missing-docstring,invalid-name import os import sys import unittest sys.path = [os.path.abspath(os.path.dirname(__file__) + "/../filter_plugins/")] + sys.path # pylint: disable=import-error import openshift_version # noqa: E402 class OpenShiftVersionTests(unittest.TestCase): openshift_version_filters = openshift_version.FilterModule() # Static tests for legacy filters. legacy_gte_tests = [{'name': 'oo_version_gte_3_1_or_1_1', 'positive_enterprise_version': '3.2.0', 'negative_enterprise_version': '3.0.0', 'positive_origin_version': '1.2.0', 'negative_origin_version': '1.0.0'}, {'name': 'oo_version_gte_3_1_1_or_1_1_1', 'positive_enterprise_version': '3.2.0', 'negative_enterprise_version': '3.1.0', 'positive_origin_version': '1.2.0', 'negative_origin_version': '1.1.0'}, {'name': 'oo_version_gte_3_2_or_1_2', 'positive_enterprise_version': '3.3.0', 'negative_enterprise_version': '3.1.0', 'positive_origin_version': '1.3.0', 'negative_origin_version': '1.1.0'}, {'name': 'oo_version_gte_3_3_or_1_3', 'positive_enterprise_version': '3.4.0', 'negative_enterprise_version': '3.2.0', 'positive_origin_version': '1.4.0', 'negative_origin_version': '1.2.0'}, {'name': 'oo_version_gte_3_4_or_1_4', 'positive_enterprise_version': '3.5.0', 'negative_enterprise_version': '3.3.0', 'positive_origin_version': '1.5.0', 'negative_origin_version': '1.3.0'}, {'name': 'oo_version_gte_3_5_or_1_5', 'positive_enterprise_version': '3.6.0', 'negative_enterprise_version': '3.4.0', 'positive_origin_version': '3.6.0', 'negative_origin_version': '1.4.0'}] def test_legacy_gte_filters(self): for test in self.legacy_gte_tests: for deployment_type in ['enterprise', 'origin']: # Test negative case per deployment_type self.assertFalse( self.openshift_version_filters._filters[test['name']]( test["negative_{}_version".format(deployment_type)], deployment_type)) # Test positive case per deployment_type self.assertTrue( self.openshift_version_filters._filters[test['name']]( test["positive_{}_version".format(deployment_type)], deployment_type)) def test_gte_filters(self): for major, minor_start, minor_end in self.openshift_version_filters.versions: for minor in range(minor_start, minor_end): # Test positive case self.assertTrue( self.openshift_version_filters._filters["oo_version_gte_{}_{}".format(major, minor)]( "{}.{}".format(major, minor + 1))) # Test negative case self.assertFalse( self.openshift_version_filters._filters["oo_version_gte_{}_{}".format(major, minor)]( "{}.{}".format(major, minor)))