예제 #1
0
    def test_decode_as_type(self):
        @decode.from_object()
        class Person(object):
            def __init__(self, first_name, last_name):
                self.first_name = first_name
                self.last_name = last_name

        @decode.from_object()
        class Job(object):
            def __init__(self, title):
                self.title = title

        json_str = ('{"__type__": "Person", '
                    '"first_name": "shawn", '
                    '"last_name": "adams"}')

        self.assertEqual(decode._as_type_context.top, None)

        with decode.ensure_type(Person):
            self.assertEqual(decode._as_type_context.top, Person)
            decode.loader(json_str)

            # Test nested context
            with decode.ensure_type(Job):
                self.assertEqual(decode._as_type_context.top, Job)
                with self.assertRaises(ValidationError):
                    decode.loader(json_str)

            self.assertEqual(decode._as_type_context.top, Person)

        self.assertEqual(decode._as_type_context.top, None)
예제 #2
0
    def test_decode_as_type(self):
        @decode.from_object()
        class Person(object):
            def __init__(self, first_name, last_name):
                self.first_name = first_name
                self.last_name = last_name

        @decode.from_object()
        class Job(object):
            def __init__(self, title):
                self.title = title

        json_str = '{"__type__": "Person", ' '"first_name": "shawn", ' '"last_name": "adams"}'

        self.assertEqual(decode._as_type_context.top, None)

        with decode.ensure_type(Person):
            self.assertEqual(decode._as_type_context.top, Person)
            decode.loader(json_str)

            # Test nested context
            with decode.ensure_type(Job):
                self.assertEqual(decode._as_type_context.top, Job)
                with self.assertRaises(ValidationError):
                    decode.loader(json_str)

            self.assertEqual(decode._as_type_context.top, Person)

        self.assertEqual(decode._as_type_context.top, None)
예제 #3
0
 def wrapper(*args, **kw):
     with decode.ensure_type(expects):
         return jsonweb_response(func(*args, **kw))
예제 #4
0
 def wrapper(*args, **kw):
     with decode.ensure_type(expects):
         return jsonweb_response(func(*args, **kw))