github.com/jiasir/deis@v1.12.2/controller/web/tests.py (about)

     1  """
     2  Unit tests for the Deis web app.
     3  
     4  Run the tests with "./manage.py test web"
     5  """
     6  
     7  from __future__ import unicode_literals
     8  
     9  from django.conf import settings
    10  from django.template import Context
    11  from django.template import Template
    12  from django.template import TemplateSyntaxError
    13  from django.test import TestCase
    14  
    15  
    16  class WebViewsTest(TestCase):
    17  
    18      fixtures = ['test_web.json']
    19  
    20      @classmethod
    21      def setUpClass(cls):
    22          settings.WEB_ENABLED = True
    23  
    24      def setUp(self):
    25          self.client.login(username='autotest-1', password='password')
    26  
    27      def test_account(self):
    28          response = self.client.get('/account/')
    29          self.assertContains(response, '<title>Deis | Account</title>', html=True)
    30          self.assertContains(response, 'autotest-1')
    31          self.assertContains(response, '<img src="//www.gravatar.com/avatar')
    32  
    33      def test_dashboard(self):
    34          response = self.client.get('/')
    35          self.assertContains(response, '<title>Deis | Dashboard</title>', html=True)
    36  
    37      def test_apps(self):
    38          response = self.client.get('/apps/')
    39          self.assertContains(response, '<title>Deis | Apps</title>', html=True)
    40          self.assertContains(response, '<h1>One App</h1>')
    41          self.assertContains(response, '<h3>autotest-1-app</h3>')
    42  
    43      def test_support(self):
    44          response = self.client.get('/support/')
    45          self.assertContains(response, '<title>Deis | Support</title>', html=True)
    46          self.assertContains(response, '<div class="forkImage">')
    47          self.assertContains(response, '<h2>IRC</h2>')
    48          self.assertContains(response, '<h2>GitHub</h2>')
    49  
    50  
    51  class GravatarTagsTest(TestCase):
    52  
    53      def _render_template(self, t, ctx=None):
    54          """Test that the tag renders a gravatar URL."""
    55          tmpl = Template(t)
    56          return tmpl.render(Context(ctx)).strip()
    57  
    58      def test_render(self):
    59          tmpl = """\
    60  {% load gravatar_tags %}
    61  {% gravatar_url email %}
    62  """
    63          rendered = self._render_template(tmpl, {'email': 'github@deis.io'})
    64          self.assertEquals(
    65              rendered,
    66              r'//www.gravatar.com/avatar/058ff74579b6a8fa1e10ab98c990e945?s=24&d=mm')
    67  
    68      def test_render_syntax_error(self):
    69          """Test that the tag requires one argument."""
    70          tmpl = """
    71  {% load gravatar_tags %}
    72  {% gravatar_url %}
    73  """
    74          self.assertRaises(TemplateSyntaxError, self._render_template, tmpl)
    75  
    76      def test_render_context_error(self):
    77          """Test that an empty email returns an empty string."""
    78          tmpl = """
    79  {% load gravatar_tags %}
    80  {% gravatar_url email %}
    81  """
    82          rendered = self._render_template(tmpl, {})
    83          self.assertEquals(rendered, '')