diff --git a/dav_base/templates/dav_base/tests/include_if_exist.html b/dav_base/templates/dav_base/tests/include_if_exist.html new file mode 100644 index 0000000..22eefd4 --- /dev/null +++ b/dav_base/templates/dav_base/tests/include_if_exist.html @@ -0,0 +1,6 @@ +{# This template is used by software tests #}{% load dav_base %} +--{% include_if_exist './includes/include_missing.html' %}-- +--{% include_if_exist './includes/include_missing.html' default 'dav_base/tests/includes/include_default.html' %}-- +--{% include_if_exist './includes/include_optional.html' %}-- +--{% include_if_exist './includes/include_optional.html' default 'dav_base/tests/includes/include_default.html' %}-- +--{% include_if_exist './includes/include_with_missing_include.html' %}-- diff --git a/dav_base/templates/dav_base/tests/include_if_exist_default_missing.html b/dav_base/templates/dav_base/tests/include_if_exist_default_missing.html new file mode 100644 index 0000000..62da605 --- /dev/null +++ b/dav_base/templates/dav_base/tests/include_if_exist_default_missing.html @@ -0,0 +1,2 @@ +{# This template is used by software tests #}{% load dav_base %} +--{% include_if_exist './includes/include_missing.html' default './includes/include_missing.html' %}-- diff --git a/dav_base/templates/dav_base/tests/include_if_exist_default_without_argument.html b/dav_base/templates/dav_base/tests/include_if_exist_default_without_argument.html new file mode 100644 index 0000000..8f52bc4 --- /dev/null +++ b/dav_base/templates/dav_base/tests/include_if_exist_default_without_argument.html @@ -0,0 +1,3 @@ +{% load dav_base %} +This template is used by the automatic software tests. +--{% include_if_exist './includes/include_optional.html' default %}-- diff --git a/dav_base/templates/dav_base/tests/include_if_exist_with_unexpected_argument.html b/dav_base/templates/dav_base/tests/include_if_exist_with_unexpected_argument.html new file mode 100644 index 0000000..d3e5370 --- /dev/null +++ b/dav_base/templates/dav_base/tests/include_if_exist_with_unexpected_argument.html @@ -0,0 +1,3 @@ +{% load dav_base %} +This template is used by the automatic software tests. +--{% include_if_exist './includes/include_optional.html' 'bogus' %}-- diff --git a/dav_base/templates/dav_base/tests/include_if_exist_without_argument.html b/dav_base/templates/dav_base/tests/include_if_exist_without_argument.html new file mode 100644 index 0000000..f9735f5 --- /dev/null +++ b/dav_base/templates/dav_base/tests/include_if_exist_without_argument.html @@ -0,0 +1,3 @@ +{% load dav_base %} +This template is used by the automatic software tests. +--{% include_if_exist %}-- diff --git a/dav_base/templates/dav_base/tests/includes/include_default.html b/dav_base/templates/dav_base/tests/includes/include_default.html new file mode 100644 index 0000000..32d18b0 --- /dev/null +++ b/dav_base/templates/dav_base/tests/includes/include_default.html @@ -0,0 +1 @@ +{# This template is used by software tests #}DEFAULT INCLUDED HTML \ No newline at end of file diff --git a/dav_base/templates/dav_base/tests/includes/include_optional.html b/dav_base/templates/dav_base/tests/includes/include_optional.html new file mode 100644 index 0000000..8d946a6 --- /dev/null +++ b/dav_base/templates/dav_base/tests/includes/include_optional.html @@ -0,0 +1 @@ +{# This template is used by software tests #}OPTIONAL INCLUDED HTML \ No newline at end of file diff --git a/dav_base/templates/dav_base/tests/includes/include_with_missing_include.html b/dav_base/templates/dav_base/tests/includes/include_with_missing_include.html new file mode 100644 index 0000000..8694ad9 --- /dev/null +++ b/dav_base/templates/dav_base/tests/includes/include_with_missing_include.html @@ -0,0 +1,2 @@ +{# This template is used by software tests #}{% load dav_base %} +--{% include './include_missing.html' %}-- diff --git a/dav_base/tests/test_templatetags.py b/dav_base/tests/test_templatetags.py new file mode 100644 index 0000000..1cba8a1 --- /dev/null +++ b/dav_base/tests/test_templatetags.py @@ -0,0 +1,61 @@ +from django.template.exceptions import TemplateSyntaxError, TemplateDoesNotExist +from django.template.loader import get_template +from django.test import SimpleTestCase + + +class TemplateTagsTestCase(SimpleTestCase): + def test_include_if_exist_without_argument(self): + template_name = 'dav_base/tests/include_if_exist_without_argument.html' + with self.assertRaises(TemplateSyntaxError): + get_template(template_name) + + def test_include_if_exist_with_unexpected_argument(self): + template_name = 'dav_base/tests/include_if_exist_with_unexpected_argument.html' + with self.assertRaises(TemplateSyntaxError): + get_template(template_name) + + def test_include_if_exist_default_without_argument(self): + template_name = 'dav_base/tests/include_if_exist_default_without_argument.html' + with self.assertRaises(TemplateSyntaxError): + get_template(template_name) + + def test_include_if_exist_default_missing(self): + template_name = 'dav_base/tests/include_if_exist_default_missing.html' + with self.settings(DEBUG=True): + with self.assertRaises(TemplateDoesNotExist): + template = get_template(template_name) + template.render() + + def test_include_if_exist(self): + template_name = 'dav_base/tests/include_if_exist.html' + template = get_template(template_name) + + content = template.render() + expected_content = """ +---- +--DEFAULT INCLUDED HTML-- +--OPTIONAL INCLUDED HTML-- +--OPTIONAL INCLUDED HTML-- +-- +---- +-- +""" + + self.assertEqual(content, expected_content) + + def test_include_if_exist_while_debug(self): + template_name = 'dav_base/tests/include_if_exist.html' + + with self.settings(DEBUG=True): + template = get_template(template_name) + + content = template.render() + expected_content = """ +---- +--DEFAULT INCLUDED HTML-- +--OPTIONAL INCLUDED HTML-- +--OPTIONAL INCLUDED HTML-- +---- +""" + + self.assertEqual(content, expected_content)