Example #1
0
def test_builtin_serializers():
    render = Engines()

    tests = [
        (render.bencode, ("foo", ), dict(kind='basic'),
         ('application/x-bencode', '3:foo')),
        (render.bencode, (u"foo", ), {}, ('application/x-bencode', 'u3:foo')),
        (render.json, ("foo", ), {}, ('application/json', '"foo"')),
        (render.pickle, ("foo", ), {}, ('application/octet-stream',
                                        "S'foo'\np0\n.")),
        (render.cpickle, ("foo", ), {}, ('application/octet-stream',
                                         "S'foo'\np1\n.")),
        (render.yaml, ("foo", ), {}, ('application/x-yaml', 'foo\n...\n'))
    ]

    # Marshal is version-specific.
    if sys.version_info < (2, 6):
        tests.append((render.marshal, ("foo", ), {},
                      ('application/octet-stream', 't\x03\x00\x00\x00foo')))

    elif sys.version_info < (3, 0):
        tests.append((render.marshal, ("foo", ), {},
                      ('application/octet-stream', 's\x03\x00\x00\x00foo')))

    for engine, args, kw, expected in tests:
        yield partial(serializer, engine, expected, *args, **kw)
Example #2
0
    def test_engine_func(self):
        def engine(data, template=None):
            return 'text/plain', data

        render = Engines()
        render['raw'] = engine

        self.assertEqual(render.raw("foo"), ('text/plain', 'foo'))

        del render.raw
Example #3
0
    def test_engine_class(self):
        class Engine(object):
            def __call__(self, data, template=None):
                return 'text/plain', data

        render = Engines()
        render['raw'] = Engine

        self.assertEqual(render.raw("foo"), ('text/plain', 'foo'))

        del render.raw
Example #4
0
    def test_render_no_engine(self):
        render = Engines()

        try:
            self.assertEqual(
                render('./templates/hello-sprintf.txt', dict(name='world')),
                ('text/plain', "Hello world!"))

        except ValueError:
            pass

        except:
            self.fail()
Example #5
0
    def test_no_defaults(self):
        render = Engines()

        self.assertTrue('json' in render)
        self.assertTrue(callable(render.json))
        self.assertEqual(render.options['json'], dict())
Example #6
0
    def test_render(self):
        render = Engines()

        self.assertEqual(
            render('sprintf:./templates/hello-sprintf.txt',
                   dict(name='world')), ('text/plain', "Hello world!"))
Example #7
0
 def test_bad_engine_name(self):
     render = Engines()
     self.assertRaises(ValueError, lambda: render('text/html:'))
Example #8
0
    def test_defaults(self):
        render = Engines(json=dict(content_type="foo"))
        self.assertEqual(render.options['json'], dict(content_type="foo"))

        render.options['json'] = dict(content_type="bar")
        self.assertEqual(render.options['json'], dict(content_type="bar"))
Example #9
0
 def setUp(self):
     self.render = Engines()