Browse Source

Add some tests, remove old template tags

rafalp 6 years ago
parent
commit
0363251cf5

+ 0 - 78
misago/admin/templatetags/misago_admin_forms.py

@@ -1,78 +0,0 @@
-from crispy_forms.templatetags import crispy_forms_field, crispy_forms_filters
-
-from django import template
-from django.template.loader import render_to_string
-
-
-register = template.Library()
-
-
-@register.tag
-def form_row(parser, token):
-    """
-    Form row: renders single row in form
-
-    Syntax:
-    {% form_row form.field %} # renders vertical field
-    {% form_row form.field "col-md-3" "col-md-9" %} # renders horizontal field
-    """
-    args = token.split_contents()
-
-    if len(args) < 2:
-        raise template.TemplateSyntaxError("form_row tag requires at least one argument")
-
-    if len(args) == 3 or len(args) > 4:
-        raise template.TemplateSyntaxError(
-            "form_row tag supports either one argument (form field) or "
-            "four arguments (form field, label class, field class)"
-        )
-
-    form_field = args[1]
-
-    if len(args) == 4:
-        label_class = args[2]
-        field_class = args[3]
-    else:
-        label_class = None
-        field_class = None
-
-    return FormRowNode(form_field, label_class, field_class)
-
-
-class FormRowNode(template.Node):
-    def __init__(self, form_field, label_class, field_class):
-        self.form_field = template.Variable(form_field)
-
-        if label_class and field_class:
-            self.label_class = template.Variable(label_class)
-            self.field_class = template.Variable(field_class)
-        else:
-            self.label_class = None
-            self.field_class = None
-
-    def render(self, context):
-        field = self.form_field.resolve(context)
-
-        if self.label_class and self.field_class:
-            label_class = self.label_class.resolve(context)
-            field_class = self.field_class.resolve(context)
-        else:
-            label_class = None
-            field_class = None
-
-        template_pack = crispy_forms_filters.TEMPLATE_PACK
-        return render_to_string(
-            '%s/field.html' % template_pack, {
-                'field': field,
-                'form_show_errors': True,
-                'form_show_labels': True,
-                'label_class': label_class or '',
-                'field_class': field_class or '',
-            }
-        )
-
-
-@register.tag
-def form_input(parser, token):
-    """form input: renders given field input"""
-    return crispy_forms_field.crispy_field(parser, token)

+ 19 - 36
misago/admin/tests/test_templatetags.py → misago/admin/tests/test_admin_form_templatetags.py

@@ -11,10 +11,9 @@ class FormRowTests(TestCase):
     def setUp(self):
     def setUp(self):
         self.context = Context({'form': TestForm()})
         self.context = Context({'form': TestForm()})
 
 
-    def test_form_row_no_args(self):
-        """form_row with no args renders form row"""
+    def test_tag_renders_row_with_field(self):
         tpl_content = """
         tpl_content = """
-{% load misago_admin_forms %}
+{% load misago_admin_form %}
 
 
 {% form_row form.somefield %}
 {% form_row form.somefield %}
 """
 """
@@ -23,65 +22,49 @@ class FormRowTests(TestCase):
         render = tpl.render(self.context).strip()
         render = tpl.render(self.context).strip()
         self.assertIn('id_somefield', render)
         self.assertIn('id_somefield', render)
 
 
-    def test_form_row_with_args(self):
-        """form_row with args renders form row"""
+    def test_tag_with_label_class_option_renders_row_including_css_class(self):
         tpl_content = """
         tpl_content = """
-{% load misago_admin_forms %}
+{% load misago_admin_form %}
 
 
-{% form_row form.somefield "col-md-3" "col-md-9" %}
+{% form_row form.somefield label_class="col-md-3" %}
 """
 """
 
 
         tpl = Template(tpl_content)
         tpl = Template(tpl_content)
         render = tpl.render(self.context).strip()
         render = tpl.render(self.context).strip()
-
         self.assertIn('id_somefield', render)
         self.assertIn('id_somefield', render)
         self.assertIn('col-md-3', render)
         self.assertIn('col-md-3', render)
-        self.assertIn('col-md-9', render)
 
 
-    def test_form_row_with_value_args(self):
-        """form_row with values args renders form row"""
+    def test_tag_with_field_class_option_renders_row_including_css_class(self):
         tpl_content = """
         tpl_content = """
-{% load misago_admin_forms %}
+{% load misago_admin_form %}
 
 
-{% with label="col-md-3" field="col-md-9" %}
-    {% form_row form.somefield label field %}
-{% endwith %}
+{% form_row form.somefield field_class="col-md-9" %}
 """
 """
 
 
         tpl = Template(tpl_content)
         tpl = Template(tpl_content)
         render = tpl.render(self.context).strip()
         render = tpl.render(self.context).strip()
         self.assertIn('id_somefield', render)
         self.assertIn('id_somefield', render)
-        self.assertIn('col-md-3', render)
         self.assertIn('col-md-9', render)
         self.assertIn('col-md-9', render)
 
 
-    def test_form_row_with_no_args(self):
-        """form_row with no args raises exception"""
+    def test_tag_with_label_and_control_options_renders_row_including_both_css_classes(self):
         tpl_content = """
         tpl_content = """
-{% load misago_admin_forms %}
+{% load misago_admin_form %}
 
 
-{% form_row %}
+{% form_row form.somefield "col-md-3" "col-md-9" %}
 """
 """
 
 
-        with self.assertRaises(TemplateSyntaxError):
-            Template(tpl_content)
-
-    def test_form_row_with_two_args(self):
-        """form_row with two args raises exception"""
-        tpl_content = """
-{% load misago_admin_forms %}
-
-{% form_row form.somefield "col-md-9" %}
-"""
+        tpl = Template(tpl_content)
+        render = tpl.render(self.context).strip()
 
 
-        with self.assertRaises(TemplateSyntaxError):
-            Template(tpl_content)
+        self.assertIn('id_somefield', render)
+        self.assertIn('col-md-3', render)
+        self.assertIn('col-md-9', render)
 
 
-    def test_form_row_with_four_args(self):
-        """form_row with four args raises exception"""
+    def test_tag_without_field_raises_exception(self):
         tpl_content = """
         tpl_content = """
-{% load misago_admin_forms %}
+{% load misago_admin_form %}
 
 
-{% form_row form.somefield "col-md-9" "col-md-9" "col-md-9" %}
+{% form_row %}
 """
 """
 
 
         with self.assertRaises(TemplateSyntaxError):
         with self.assertRaises(TemplateSyntaxError):