def test_fails_on_outer_range_for_field_rule(self): field_format = fields.DecimalFieldFormat("x", False, None, "3.2...4.2", _ANY_FORMAT) self.assertRaises(errors.FieldValueError, field_format.validated, '4.3') self.assertRaises(errors.FieldValueError, field_format.validated, '3.1') field_format = fields.DecimalFieldFormat("x", False, None, "3.2...", _ANY_FORMAT) self.assertRaises(errors.FieldValueError, field_format.validated, '3.1') field_format = fields.DecimalFieldFormat("x", False, None, "...4.2", _ANY_FORMAT) self.assertRaises(errors.FieldValueError, field_format.validated, '4.3')
def test_can_validate_rule_for_field_format(self): field_format = fields.DecimalFieldFormat("x", False, None, "3.2...4.2", _ANY_FORMAT) self.assertEqual(decimal.Decimal('3.2'), field_format.validated('3.2')) self.assertEqual(decimal.Decimal('3.5'), field_format.validated('3.5')) self.assertEqual(decimal.Decimal('4.2'), field_format.validated('4.2')) field_format = fields.DecimalFieldFormat("x", False, None, "3.2...", _ANY_FORMAT) self.assertEqual(decimal.Decimal('3.2'), field_format.validated('3.2')) self.assertEqual(decimal.Decimal('3.5'), field_format.validated('3.5')) self.assertEqual(decimal.Decimal('333.5'), field_format.validated('333.5')) field_format = fields.DecimalFieldFormat("x", False, None, "...4.2", _ANY_FORMAT) self.assertEqual(decimal.Decimal('4.2'), field_format.validated('4.2')) self.assertEqual(decimal.Decimal('-333.5'), field_format.validated('-333.5'))
def test_can_use_default_rule(self): field_format = fields.DecimalFieldFormat("x", False, None, "", _ANY_FORMAT) self.assertEqual(field_format.valid_range.upper_limit, decimal.Decimal('9999999999999999999.999999999999')) self.assertEqual(field_format.valid_range.lower_limit, decimal.Decimal('-9999999999999999999.999999999999'))
def test_can_validate_decimals(self): field_format = fields.DecimalFieldFormat("x", False, None, "", _ANY_FORMAT) self.assertEqual(decimal.Decimal("17.23"), field_format.validated("17.23")) self.assertEqual(decimal.Decimal("17.123456789"), field_format.validated("17.123456789"))
def test_fails_on_thousand_separator_after_decimal_separator(self): field_format = fields.DecimalFieldFormat("x", False, None, "3000.2...4000.2", _ANY_FORMAT) field_format.thousands_separator = "." field_format.decimal_separator = "," self.assertRaises(errors.FieldValueError, field_format.validated, "3000,300.234")
def _create_german_decimal_format(): german_format = data.DataFormat(data.FORMAT_DELIMITED) german_format.set_property(data.KEY_DECIMAL_SEPARATOR, ",") german_format.set_property(data.KEY_THOUSANDS_SEPARATOR, ".") result = fields.DecimalFieldFormat("x", False, None, "", german_format) return result
def test_fails_on_double_decimal_separator(self): field_format = fields.DecimalFieldFormat("x", False, None, "3.2...4.2", _ANY_FORMAT) self.assertRaises(errors.FieldValueError, field_format.validated, "3..3")
def test_fails_on_no_numeric_value(self): field_format = fields.DecimalFieldFormat("x", False, None, "3.2...4.2", _ANY_FORMAT) self.assertRaises(errors.FieldValueError, field_format.validated, "abc")
def test_fails_on_broken_decimal(self): field_format = fields.DecimalFieldFormat('x', False, None, '', _ANY_FORMAT) self.assertRaises(errors.FieldValueError, field_format.validated, 'abc')