X-Git-Url: https://git.mdrn.pl/django-ssify.git/blobdiff_plain/3d2c8ba4dfb4774daff367dae1656099eb2b562c..196df9e8170262c31790260d4e280b9981b557d1:/tests/tests/test_basic.py diff --git a/tests/tests/test_basic.py b/tests/tests/test_basic.py new file mode 100644 index 0000000..0c32349 --- /dev/null +++ b/tests/tests/test_basic.py @@ -0,0 +1,84 @@ +# -*- coding: utf-8 -*- +# This file is part of django-ssify, licensed under GNU Affero GPLv3 or later. +# Copyright © Fundacja Nowoczesna Polska. See README.md for more information. +# +from __future__ import unicode_literals + +import re +import warnings +from django.test import TestCase +from django.test.utils import override_settings +from ssify.exceptions import UndeclaredSsiVarsError, UnusedSsiVarsWarning +from tests.tests_utils import split_ssi + + +class BasicTestCase(TestCase): + def test_zero(self): + self.assertEqual( + self.client.get('/number_zero').content.strip(), + b"\n" + b"" + ) + + def test_basic_include(self): + self.assertEqual( + self.client.get('/basic_include').content.strip(), + b"" + ) + + def test_single_quote(self): + self.assertEqual( + self.client.get('/quote/3').content.strip(), + b"""Explicit is better than implicit. +Line 3 of +Odd number of characters. +Even number of characters. +""" + ) + + def test_undeclared_vars(self): + self.assertRaises(UndeclaredSsiVarsError, + self.client.get, + '/quote_undeclared/3') + + def test_overdeclared_vars(self): + with warnings.catch_warnings(record=True) as w: + response = self.client.get('/quote_overdeclared/3') + self.assertIs(w[-1].category, UnusedSsiVarsWarning) + + def test_random_quote(self): + self.assertEqual( + sorted(split_ssi(self.client.get('/').content)), + sorted([b"", + b"", + b"", + b""]) + ) + + # Do it again, this time from cache. + self.assertEqual( + sorted(split_ssi(self.client.get('/').content)), + sorted([b"", + b"", + b"", + b""]) + ) + self.assertEqual( + self.client.get('/random_quote').content.strip(), + b"" + ) + + @override_settings(SSIFY_DEBUG=True) + def test_debug_render_random_quote(self): + """Renders the complete view using the DebugSsiMiddleware.""" + response = self.client.get('/') + if hasattr(response, 'render') and callable(response.render): + response.render() + self.assertEqual( + response.content.strip(), + b"""Simple is better than complex. +Line 4 of 22 +Even number of characters.""" + )