48 lines
1.4 KiB
Python
48 lines
1.4 KiB
Python
import asyncio
|
|
import unittest
|
|
from microdot import Microdot
|
|
from microdot.test_client import TestClient
|
|
from microdot.utemplate import Template
|
|
|
|
Template.initialize('tests/templates')
|
|
|
|
|
|
class TestUTemplate(unittest.TestCase):
|
|
@classmethod
|
|
def setUpClass(cls):
|
|
if hasattr(asyncio, 'set_event_loop'):
|
|
asyncio.set_event_loop(asyncio.new_event_loop())
|
|
cls.loop = asyncio.get_event_loop()
|
|
|
|
def _run(self, coro):
|
|
return self.loop.run_until_complete(coro)
|
|
|
|
def test_render_template(self):
|
|
s = Template('hello.utemplate.txt').render(name='foo')
|
|
self.assertEqual(s, 'Hello, foo!\n')
|
|
|
|
def test_render_template_in_app(self):
|
|
app = Microdot()
|
|
|
|
@app.route('/')
|
|
async def index(req):
|
|
return Template('hello.utemplate.txt').render(name='foo')
|
|
|
|
client = TestClient(app)
|
|
res = self._run(client.get('/'))
|
|
self.assertEqual(res.status_code, 200)
|
|
self.assertEqual(res.body, b'Hello, foo!\n')
|
|
|
|
def test_render_async_template_in_app(self):
|
|
app = Microdot()
|
|
|
|
@app.route('/')
|
|
async def index(req):
|
|
return await Template('hello.utemplate.txt').render_async(
|
|
name='foo')
|
|
|
|
client = TestClient(app)
|
|
res = self._run(client.get('/'))
|
|
self.assertEqual(res.status_code, 200)
|
|
self.assertEqual(res.body, b'Hello, foo!\n')
|