def test_convert_value_type(self): """Test convert_value_type function.""" # to string self.assertEqual(convert_value_type(100, basestring), '100') self.assertEqual(convert_value_type((100, ), str), '(100,)') self.assertEqual(convert_value_type([100], basestring), '[100]') self.assertEqual(convert_value_type(None, str), 'None') # to int/float self.assertEqual(convert_value_type('100', int), 100) self.assertEqual(convert_value_type('0', int), 0) self.assertEqual(convert_value_type('-123', int), -123) self.assertEqual(convert_value_type('1.6', float), 1.6) self.assertEqual(convert_value_type('5', float), 5.0) self.assertErrorRegex(EasyBuildError, "Converting type of .* failed", convert_value_type, '', int) # 1.6 can't be parsed as an int (yields "invalid literal for int() with base 10" error) self.assertErrorRegex(EasyBuildError, "Converting type of .* failed", convert_value_type, '1.6', int) # idempotency self.assertEqual(convert_value_type('foo', basestring), 'foo') self.assertEqual(convert_value_type('foo', str), 'foo') self.assertEqual(convert_value_type(100, int), 100) self.assertEqual(convert_value_type(1.6, float), 1.6) # complex types dep = [{'GCC': '1.2.3', 'versionsuffix': 'foo'}] converted_dep = [{ 'name': 'GCC', 'version': '1.2.3', 'versionsuffix': 'foo' }] self.assertEqual(convert_value_type(dep, DEPENDENCIES), converted_dep) # no conversion function available for specific type class Foo(): pass self.assertErrorRegex(EasyBuildError, "No conversion function available", convert_value_type, None, Foo)
def test_convert_value_type(self): """Test convert_value_type function.""" # to string self.assertEqual(convert_value_type(100, basestring), '100') self.assertEqual(convert_value_type((100,), str), '(100,)') self.assertEqual(convert_value_type([100], basestring), '[100]') self.assertEqual(convert_value_type(None, str), 'None') # to int/float self.assertEqual(convert_value_type('100', int), 100) self.assertEqual(convert_value_type('0', int), 0) self.assertEqual(convert_value_type('-123', int), -123) self.assertEqual(convert_value_type('1.6', float), 1.6) self.assertEqual(convert_value_type('5', float), 5.0) self.assertErrorRegex(EasyBuildError, "Converting type of .* failed", convert_value_type, '', int) # 1.6 can't be parsed as an int (yields "invalid literal for int() with base 10" error) self.assertErrorRegex(EasyBuildError, "Converting type of .* failed", convert_value_type, '1.6', int) # idempotency self.assertEqual(convert_value_type('foo', basestring), 'foo') self.assertEqual(convert_value_type('foo', str), 'foo') self.assertEqual(convert_value_type(100, int), 100) self.assertEqual(convert_value_type(1.6, float), 1.6) # complex types dep = [{'GCC': '1.2.3', 'versionsuffix': 'foo'}] converted_dep = [{'name': 'GCC', 'version': '1.2.3', 'versionsuffix': 'foo'}] self.assertEqual(convert_value_type(dep, DEPENDENCIES), converted_dep) # no conversion function available for specific type class Foo(): pass self.assertErrorRegex(EasyBuildError, "No conversion function available", convert_value_type, None, Foo)