A somewhat usable and tested version.
[django-ssify.git] / tests / tests / test_args.py
diff --git a/tests/tests/test_args.py b/tests/tests/test_args.py
new file mode 100644 (file)
index 0000000..a45f47c
--- /dev/null
@@ -0,0 +1,62 @@
+# -*- 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
+from django.test import TestCase
+from django.test.utils import override_settings
+from tests.tests_utils import split_ssi
+
+
+class ArgsTestCase(TestCase):
+    def test_args(self):
+        self.assertEqual(
+            sorted(split_ssi(self.client.get('/args').content)),
+            sorted([b"<!--#set var='vff80027f1d552d08d46c8b603948d85c' value='2'-->",
+                 b"<!--#set var='veeb5ec4364971b409c48e36bd1428d03' value='1'-->",
+                 b"<!--#set var='v05a1f9ec205c5aa84197f6b326c518a2' value='0'-->",
+                 b"<!--#echo var='v05a1f9ec205c5aa84197f6b326c518a2' encoding='none'-->",
+                 ])
+            )
+
+    def test_args_included(self):
+        self.assertEqual(
+            self.client.get('/args/3').content.strip(),
+            b"<!--#echo var='v05a1f9ec205c5aa84197f6b326c518a2' encoding='none'-->"
+            )
+
+    def test_include_args(self):
+        self.assertEqual(
+            sorted(split_ssi(self.client.get('/include_args').content)),
+            sorted([b"<!--#set var='vf6aba0780227af845107c046f336cc8a' value='3'-->",
+                 b"<!--#set var='vff80027f1d552d08d46c8b603948d85c' value='2'-->",
+                 b"<!--#set var='veeb5ec4364971b409c48e36bd1428d03' value='1'-->",
+                 b"<!--#set var='v05a1f9ec205c5aa84197f6b326c518a2' value='0'-->",
+                 b"<!--#include file='/args/${vf6aba0780227af845107c046f336cc8a}'-->",
+                 ]),
+            )
+
+        # Test a second time, this time from cache.
+        self.assertEqual(
+            sorted(split_ssi(self.client.get('/include_args').content)),
+            sorted([b"<!--#set var='vf6aba0780227af845107c046f336cc8a' value='3'-->",
+                 b"<!--#set var='vff80027f1d552d08d46c8b603948d85c' value='2'-->",
+                 b"<!--#set var='veeb5ec4364971b409c48e36bd1428d03' value='1'-->",
+                 b"<!--#set var='v05a1f9ec205c5aa84197f6b326c518a2' value='0'-->",
+                 b"<!--#include file='/args/${vf6aba0780227af845107c046f336cc8a}'-->",
+                 ]),
+            )
+
+    @override_settings(SSIFY_DEBUG=True)
+    def test_debug_render_include_args(self):
+        pass
+        """Renders the complete view using the DebugSsiMiddleware."""
+        response = self.client.get('/include_args')
+        if hasattr(response, 'render') and callable(response.render):
+            response.render()
+        self.assertEqual(
+            response.content.strip(),
+            b"""0"""
+        )