예제 #1
0
def test_unpack_1():
    e = V.Invalid({'ding': [V.Invalid('pod')], 'dong': [V.Invalid('piddle')]})
    res = e.unpack_errors()
    assert res == {'ding': 'pod', 'dong': 'piddle'}
    e2 = V.Invalid({'': [e]})
    res2 = e.unpack_errors()
    assert res == res2
예제 #2
0
 def check_keys(data, context=None):
     allkeys = set(('x', 'y', 'text'))
     found = set(data.keys())
     if allkeys.difference(found):
         raise V.Invalid("incomplete data")
     if found.difference(allkeys):
         raise V.Invalid("extra data")
예제 #3
0
def test_unpack_2():
    "Empty string keys should be collapsed"
    e = V.Invalid({'ding': [V.Invalid('pod')], 'dong': [V.Invalid('piddle')]})

    e2 = V.Invalid({'': [e]})
    e3 = V.Invalid({'': [e2]})
    r1 = e.unpack_errors()
    r2 = e2.unpack_errors()
    r3 = e3.unpack_errors()
    assert r1 == r3
예제 #4
0
def test_Invalid_unpack_errors():
    error = V.Invalid(dict(foo=V.Invalid(dict(bar="flim"))))
    expected = {'foo': {'bar': "flim"}}
    result = error.unpack_errors()
    assert expected == result

    error = V.Invalid(dict(foo=dict(bar="flim")))
    expected = {'foo': {'bar': "flim"}}
    result = error.unpack_errors()
    assert expected == result

    error = V.Invalid(V.Invalid(dict(foo="bar")))
    expected = {'foo': "bar"}
    result = error.unpack_errors()
    assert expected == result
예제 #5
0
def test_unpack_3():
    errors = dict(frog="My peachy frog hurts",
                  dog="My dog has warts up and down his spine",
                  insect="I would characterize this insect as flawed")
    e = V.Invalid(errors)

    u = e.unpack_errors()
    assert set(u) == set(('frog', 'dog', 'insect'))
    for v in u.itervalues():
        assert isinstance(v, basestring)

    e2 = V.Invalid(dict(frog='squished'))
    u2 = e2.unpack_errors()
    assert u2 == dict(frog='squished')

    e3 = V.Invalid(errors, {'': e2})
    u3 = e3.unpack_errors()
    assert set(u3) == set(('frog', 'dog', 'insect'))
    for k, v in u3.iteritems():
        assert isinstance(v, basestring)
예제 #6
0
 def len_d(v2, size, context=None):
     if len(v2) != size:
         raise V.Invalid("wrong size")
예제 #7
0
def test_Invalid():
    error = V.Invalid("foo")
    assert error.errors == {None: "foo"}
    error = V.Invalid(dict(foo="bar"))
    assert error.errors == {'foo': "bar"}
예제 #8
0
 def f(value, context):
     if not value in context:
         raise V.Invalid()
     return value
 def f(value, context):
     if not value in context['database']:
         raise V.Invalid(msg)
     return True
예제 #10
0
 def POST(request, data=None, item_id=None):
     if data == dict(do_raise=True):
         raise v.Invalid("You told me to raise")
     return "This is POST with item_id: %s and data: %s" % (item_id,
                                                            data)