Преглед на файлове

Add select2_lookups tests

Denis K преди 9 години
родител
ревизия
f0a724db8e
променени са 2 файла, в които са добавени 73 реда и са изтрити 0 реда
  1. 13 0
      jet/tests/models.py
  2. 60 0
      jet/tests/test_tags.py

+ 13 - 0
jet/tests/models.py

@@ -9,3 +9,16 @@ class TestModel(models.Model):
 
     def __str__(self):
         return '%s%d' % (self.field1, self.field2)
+
+
+@python_2_unicode_compatible
+class SearchableTestModel(models.Model):
+    field1 = models.CharField(max_length=255)
+    field2 = models.IntegerField()
+
+    def __str__(self):
+        return '%s%d' % (self.field1, self.field2)
+
+    @staticmethod
+    def autocomplete_search_fields():
+        return 'field1'

+ 60 - 0
jet/tests/test_tags.py

@@ -0,0 +1,60 @@
+from django import forms
+from django.forms import ModelChoiceField
+from django.forms.forms import BoundField
+from django.test import TestCase
+from jet.templatetags.jet_tags import select2_lookups
+from jet.tests.models import TestModel, SearchableTestModel
+
+
+class TagsTestCase(TestCase):
+    models = []
+    searchable_models = []
+
+    def setUp(self):
+        self.models.append(TestModel.objects.create(field1='first', field2=1))
+        self.models.append(TestModel.objects.create(field1='second', field2=2))
+        self.searchable_models.append(SearchableTestModel.objects.create(field1='first', field2=1))
+        self.searchable_models.append(SearchableTestModel.objects.create(field1='second', field2=2))
+
+    def test_select2_lookups(self):
+        class TestForm(forms.Form):
+            form_field = forms.ModelChoiceField(SearchableTestModel.objects)
+
+        value = self.searchable_models[0]
+
+        form = TestForm(initial={'form_field': value.pk})
+        field = form['form_field']
+        field = select2_lookups(field)
+        choices = [choice for choice in field.field.choices]
+
+        self.assertEqual(len(choices), 1)
+        self.assertEqual(choices[0][0], value.pk)
+
+    def test_select2_lookups_posted(self):
+        class TestForm(forms.Form):
+            form_field = forms.ModelChoiceField(SearchableTestModel.objects)
+
+        value = self.searchable_models[0]
+
+        form = TestForm(data={'form_field': value.pk})
+        field = form['form_field']
+        field = select2_lookups(field)
+        choices = [choice for choice in field.field.choices]
+
+        self.assertEqual(len(choices), 1)
+        self.assertEqual(choices[0][0], value.pk)
+
+    def test_non_select2_lookups(self):
+        class TestForm(forms.Form):
+            form_field = forms.ModelChoiceField(TestModel.objects)
+
+        value = self.searchable_models[0]
+
+        form = TestForm(initial={'form_field': value.pk})
+        field = form['form_field']
+        field = select2_lookups(field)
+        choices = [choice for choice in field.field.choices]
+
+        self.assertEqual(len(choices), len(self.models) + 1)
+
+