# Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. from toscaparser.common.exception import ( InvalidTOSCAVersionPropertyException) from toscaparser.tests.base import TestCase from toscaparser.utils.gettextutils import _ from toscaparser.utils.validateutils import TOSCAVersionProperty class TOSCAVersionPropertyTest(TestCase): def test_tosca_version_property(self): version = '18.0.3.beta-1' expected_output = '18.0.3.beta-1' output = TOSCAVersionProperty(version).get_version() self.assertEqual(output, expected_output) version = 18 expected_output = '18.0' output = TOSCAVersionProperty(version).get_version() self.assertEqual(output, expected_output) version = 18.0 expected_output = '18.0' output = TOSCAVersionProperty(version).get_version() self.assertEqual(output, expected_output) version = '18.0.3' expected_output = '18.0.3' output = TOSCAVersionProperty(version).get_version() self.assertEqual(output, expected_output) version = 0 expected_output = None output = TOSCAVersionProperty(version).get_version() self.assertEqual(output, expected_output) version = 00 expected_output = None output = TOSCAVersionProperty(version).get_version() self.assertEqual(output, expected_output) version = 0.0 expected_output = None output = TOSCAVersionProperty(version).get_version() self.assertEqual(output, expected_output) version = 00.00 expected_output = None output = TOSCAVersionProperty(version).get_version() self.assertEqual(output, expected_output) version = '0.0.0' expected_output = None output = TOSCAVersionProperty(version).get_version() self.assertEqual(output, expected_output) def test_tosca_version_property_invalid_major_version(self): version = 'x' exp_msg = _('Value of TOSCA version property "x" is invalid.') err = self.assertRaises(InvalidTOSCAVersionPropertyException, TOSCAVersionProperty, version) self.assertEqual(exp_msg, err.__str__()) def test_tosca_version_property_invalid_minor_version(self): version = '18.x' exp_msg = _('Value of TOSCA version property "18.x" is invalid.') err = self.assertRaises(InvalidTOSCAVersionPropertyException, TOSCAVersionProperty, version) self.assertEqual(exp_msg, err.__str__()) version = '18.x.y' exp_msg = _('Value of TOSCA version property "18.x.y" is invalid.') err = self.assertRaises(InvalidTOSCAVersionPropertyException, TOSCAVersionProperty, version) self.assertEqual(exp_msg, err.__str__()) version = '18-2' exp_msg = _('Value of TOSCA version property "18-2" is invalid.') err = self.assertRaises(InvalidTOSCAVersionPropertyException, TOSCAVersionProperty, version) self.assertEqual(exp_msg, err.__str__()) def test_tosca_version_property_invalid_fix_version(self): version = '18.0.a' exp_msg = _('Value of TOSCA version property "18.0.a" is invalid.') err = self.assertRaises(InvalidTOSCAVersionPropertyException, TOSCAVersionProperty, version) self.assertEqual(exp_msg, err.__str__()) def test_tosca_version_property_invalid_qualifier(self): version = '18.0.1-xyz' exp_msg = _('Value of TOSCA version property "18.0.1-xyz" is invalid.') err = self.assertRaises(InvalidTOSCAVersionPropertyException, TOSCAVersionProperty, version) self.assertEqual(exp_msg, err.__str__()) version = '0.0.0.abc' exp_msg = _('Value of TOSCA version property "0.0.0.abc" is invalid.') err = self.assertRaises(InvalidTOSCAVersionPropertyException, TOSCAVersionProperty, version) self.assertEqual(exp_msg, err.__str__()) def test_tosca_version_property_invalid_build_version(self): version = '18.0.1.abc-x' exp_msg = _('Value of TOSCA version property ' '"18.0.1.abc-x" is invalid.') err = self.assertRaises(InvalidTOSCAVersionPropertyException, TOSCAVersionProperty, version) self.assertEqual(exp_msg, err.__str__()) version = '0.0.0.abc-x' exp_msg = _('Value of TOSCA version property "0.0.0.abc-x" is ' 'invalid.') err = self.assertRaises(InvalidTOSCAVersionPropertyException, TOSCAVersionProperty, version) self.assertEqual(exp_msg, err.__str__())