def test_on_error_ensured_trafaret(self): trafaret = t.OnError(t.Bool, message='Changed message') res = trafaret(False) self.assertEqual(res, False)
def test_on_error_data_error(self): trafaret = t.OnError(t.Bool, message='Changed message') res = catch_error(trafaret, 'Trololo') self.assertEqual(res.as_dict(), 'Changed message')
def test_on_error(self): trafaret = t.OnError(t.Bool(), message='Changed message') res = trafaret(True) self.assertEqual(res, True)
def test_on_error_ensured_trafaret(self): trafaret = t.OnError(t.Bool, message='Changed message') res = trafaret(False) assert res is False
def test_on_error(self): trafaret = t.OnError(t.Bool(), message='Changed message') res = trafaret(True) assert res is True
just, Any, All, Not, Pattern, unique_strings_list, ensure_list, ) from .decimal import Decimal from .format import format_trafaret __VERSION__ = (0, 2, 1) check_number = t.OnError(t.Float() | Decimal(), 'Not a number') json_schema_type = ( t.Atom('null') & just(t.Null()) | t.Atom('boolean') & just(t.Bool()) | t.Atom('object') & just(t.Type(dict)) | t.Atom('array') & just(t.Type(list)) | t.Atom('number') & just(check_number) | t.Atom('integer') & just(t.Int()) | t.Atom('string') & just(t.String()) ) def multipleOf(multiplier): def check(value): if value % multiplier != 0:
super(ReAndTrans, self).__init__(regexp, re_flags) self.trans = trans def check_and_return(self, value): return self.trans(super(ReAndTrans, self).check_and_return(value)) def format_macaddr(mac_address): m = mac_address.upper().replace('-', '').replace(':', '') return ':'.join(m[x:x + 2] for x in range(0, len(m), 2)) MacAddress = t.OnError( ReAndTrans(re.compile( r'^([0-9A-F]{2}[:-]?){5}([0-9A-F]{2})$', re.IGNORECASE, ), trans=format_macaddr), 'value is not a MAC address', ) SiteName = t.OnError( # XXX: New unifi update changes site id structure, fix for future releases # t.Or(t.String(min_length=8, max_length=8), t.Atom('default')), t.String(), 'value is not an Unifi site id') # No concrete JsonResponse structure for now, only basics # maybe use special t.Key to map some usefull things like meta.rc (ok, error) => (True, False) in another key JsonResponse = t.Dict( { 'data':