"""
Unit tests for the Deis web app.
Run the tests with "./manage.py test web"
"""
from __future__ import unicode_literals
from django.template import Context
from django.template import Template
from django.template import TemplateSyntaxError
from django.test import TestCase
class WebViewsTest(TestCase):
fixtures = ['test_web.json']
def setUp(self):
self.client.login(username='autotest-1', password='password')
def test_account(self):
response = self.client.get('/account/')
self.assertContains(response, '
Deis | Account', html=True)
self.assertContains(response, 'autotest-1')
self.assertContains(response, '
')
self.assertContains(response, 'IRC
')
self.assertContains(response, 'GitHub
')
class GravatarTagsTest(TestCase):
def _render_template(self, t, ctx=None):
"""Test that the tag renders a gravatar URL."""
tmpl = Template(t)
return tmpl.render(Context(ctx)).strip()
def test_render(self):
tmpl = """\
{% load gravatar_tags %}
{% gravatar_url email %}
"""
rendered = self._render_template(tmpl, {'email': 'github@deis.io'})
self.assertEquals(
rendered,
r'//www.gravatar.com/avatar/058ff74579b6a8fa1e10ab98c990e945?s=24&d=mm')
def test_render_syntax_error(self):
"""Test that the tag requires one argument."""
tmpl = """
{% load gravatar_tags %}
{% gravatar_url %}
"""
self.assertRaises(TemplateSyntaxError, self._render_template, tmpl)
def test_render_context_error(self):
"""Test that an empty email returns an empty string."""
tmpl = """
{% load gravatar_tags %}
{% gravatar_url email %}
"""
rendered = self._render_template(tmpl, {})
self.assertEquals(rendered, '')