Exemplo n.º 1
0
    def test_unknown_field_type_error(self):
        f = NetworkSetting._meta.get_field('mask')

        with self.assertRaises(AssertionError) as excinfo:
            FilterSet.filter_for_field(f, 'mask')

        self.assertIn(
            "FilterSet resolved field 'mask' with 'exact' lookup "
            "to an unrecognized field type SubnetMaskField",
            excinfo.exception.args[0])
Exemplo n.º 2
0
    def test_unknown_field_type_error(self):
        f = NetworkSetting._meta.get_field('mask')

        with self.assertRaises(AssertionError) as excinfo:
            FilterSet.filter_for_field(f, 'mask')

        self.assertIn(
            "FilterSet resolved field 'mask' with 'exact' lookup "
            "to an unrecognized field type SubnetMaskField",
            excinfo.exception.args[0])
Exemplo n.º 3
0
 def test_field_with_choices(self):
     f = User._meta.get_field('status')
     result = FilterSet.filter_for_field(f, 'status')
     self.assertIsInstance(result, ChoiceFilter)
     self.assertEqual(result.name, 'status')
     self.assertTrue('choices' in result.extra)
     self.assertIsNotNone(result.extra['choices'])
Exemplo n.º 4
0
 def test_field_with_choices(self):
     f = User._meta.get_field("status")
     result = FilterSet.filter_for_field(f, "status")
     self.assertIsInstance(result, ChoiceFilter)
     self.assertEqual(result.name, "status")
     self.assertTrue("choices" in result.extra)
     self.assertIsNotNone(result.extra["choices"])
Exemplo n.º 5
0
 def test_filter_for_field_with_extras(self):
     f = User._meta.get_field('favorite_books')
     result = FilterSet.filter_for_field(f, 'favorite_books')
     self.assertIsInstance(result, ModelMultipleChoiceFilter)
     self.assertEqual(result.name, 'favorite_books')
     self.assertTrue('queryset' in result.extra)
     self.assertIsNotNone(result.extra['queryset'])
Exemplo n.º 6
0
 def test_field_with_choices(self):
     f = User._meta.get_field('status')
     result = FilterSet.filter_for_field(f, 'status')
     self.assertIsInstance(result, ChoiceFilter)
     self.assertEqual(result.name, 'status')
     self.assertTrue('choices' in result.extra)
     self.assertIsNotNone(result.extra['choices'])
Exemplo n.º 7
0
 def test_reverse_m2m_field_with_through_model(self):
     f = Worker._meta.get_field("employers")
     result = FilterSet.filter_for_reverse_field(f, "employers")
     self.assertIsInstance(result, ModelMultipleChoiceFilter)
     self.assertEqual(result.name, "employers")
     self.assertTrue("queryset" in result.extra)
     self.assertIsNotNone(result.extra["queryset"])
     self.assertEqual(result.extra["queryset"].model, Business)
Exemplo n.º 8
0
 def test_reverse_m2m_relationship(self):
     f = Book._meta.get_field("lovers")
     result = FilterSet.filter_for_reverse_field(f, "lovers")
     self.assertIsInstance(result, ModelMultipleChoiceFilter)
     self.assertEqual(result.name, "lovers")
     self.assertTrue("queryset" in result.extra)
     self.assertIsNotNone(result.extra["queryset"])
     self.assertEqual(result.extra["queryset"].model, User)
Exemplo n.º 9
0
 def test_reverse_o2o_relationship(self):
     f = Account._meta.get_field("profile")
     result = FilterSet.filter_for_reverse_field(f, "profile")
     self.assertIsInstance(result, ModelChoiceFilter)
     self.assertEqual(result.name, "profile")
     self.assertTrue("queryset" in result.extra)
     self.assertIsNotNone(result.extra["queryset"])
     self.assertEqual(result.extra["queryset"].model, Profile)
Exemplo n.º 10
0
 def test_non_symmetrical_selfref_m2m_field(self):
     f = DirectedNode._meta.get_field("outbound_nodes")
     result = FilterSet.filter_for_field(f, "outbound_nodes")
     self.assertIsInstance(result, ModelMultipleChoiceFilter)
     self.assertEqual(result.name, "outbound_nodes")
     self.assertTrue("queryset" in result.extra)
     self.assertIsNotNone(result.extra["queryset"])
     self.assertEqual(result.extra["queryset"].model, DirectedNode)
Exemplo n.º 11
0
 def test_field_with_extras(self):
     f = User._meta.get_field("favorite_books")
     result = FilterSet.filter_for_field(f, "favorite_books")
     self.assertIsInstance(result, ModelMultipleChoiceFilter)
     self.assertEqual(result.name, "favorite_books")
     self.assertTrue("queryset" in result.extra)
     self.assertIsNotNone(result.extra["queryset"])
     self.assertEqual(result.extra["queryset"].model, Book)
Exemplo n.º 12
0
 def test_filter_found_for_uuidfield(self):
     if UUIDTestModel is None:
         self.assertLess(django.VERSION, (1, 8))
     else:
         f = UUIDTestModel._meta.get_field('uuid')
         result = FilterSet.filter_for_field(f, 'uuid')
         self.assertIsInstance(result, UUIDFilter)
         self.assertEqual(result.name, 'uuid')
Exemplo n.º 13
0
 def test_reverse_m2m_field_with_through_model(self):
     f = Worker._meta.get_field('employers')
     result = FilterSet.filter_for_reverse_field(f, 'employers')
     self.assertIsInstance(result, ModelMultipleChoiceFilter)
     self.assertEqual(result.name, 'employers')
     self.assertTrue('queryset' in result.extra)
     self.assertIsNotNone(result.extra['queryset'])
     self.assertEqual(result.extra['queryset'].model, Business)
Exemplo n.º 14
0
 def test_reverse_fk_relationship(self):
     f = User._meta.get_field_by_name("comments")[0]
     result = FilterSet.filter_for_reverse_field(f, "comments")
     self.assertIsInstance(result, ModelMultipleChoiceFilter)
     self.assertEqual(result.name, "comments")
     self.assertTrue("queryset" in result.extra)
     self.assertIsNotNone(result.extra["queryset"])
     self.assertEqual(result.extra["queryset"].model, Comment)
Exemplo n.º 15
0
 def test_reverse_fk_relationship(self):
     f = User._meta.get_field('comments')
     result = FilterSet.filter_for_field(f, 'comments')
     self.assertIsInstance(result, ModelMultipleChoiceFilter)
     self.assertEqual(result.field_name, 'comments')
     self.assertTrue('queryset' in result.extra)
     self.assertIsNotNone(result.extra['queryset'])
     self.assertEqual(result.extra['queryset'].model, Comment)
Exemplo n.º 16
0
 def test_reverse_m2m_relationship(self):
     f = Book._meta.get_field('lovers')
     result = FilterSet.filter_for_reverse_field(f, 'lovers')
     self.assertIsInstance(result, ModelMultipleChoiceFilter)
     self.assertEqual(result.name, 'lovers')
     self.assertTrue('queryset' in result.extra)
     self.assertIsNotNone(result.extra['queryset'])
     self.assertEqual(result.extra['queryset'].model, User)
Exemplo n.º 17
0
 def test_reverse_m2m_field_with_through_model(self):
     f = Worker._meta.get_field_by_name('employers')[0]
     result = FilterSet.filter_for_reverse_field(f, 'employers')
     self.assertIsInstance(result, ModelMultipleChoiceFilter)
     self.assertEqual(result.name, 'employers')
     self.assertTrue('queryset' in result.extra)
     self.assertIsNotNone(result.extra['queryset'])
     self.assertEqual(result.extra['queryset'].model, Business)
Exemplo n.º 18
0
 def test_reverse_non_symmetrical_selfref_m2m_field(self):
     f = DirectedNode._meta.get_field('inbound_nodes')
     result = FilterSet.filter_for_reverse_field(f, 'inbound_nodes')
     self.assertIsInstance(result, ModelMultipleChoiceFilter)
     self.assertEqual(result.name, 'inbound_nodes')
     self.assertTrue('queryset' in result.extra)
     self.assertIsNotNone(result.extra['queryset'])
     self.assertEqual(result.extra['queryset'].model, DirectedNode)
Exemplo n.º 19
0
 def test_reverse_non_symmetrical_selfref_m2m_field(self):
     f = DirectedNode._meta.get_field_by_name('inbound_nodes')[0]
     result = FilterSet.filter_for_reverse_field(f, 'inbound_nodes')
     self.assertIsInstance(result, ModelMultipleChoiceFilter)
     self.assertEqual(result.name, 'inbound_nodes')
     self.assertTrue('queryset' in result.extra)
     self.assertIsNotNone(result.extra['queryset'])
     self.assertEqual(result.extra['queryset'].model, DirectedNode)
Exemplo n.º 20
0
 def test_reverse_o2o_relationship(self):
     f = Account._meta.get_field('profile')
     result = FilterSet.filter_for_reverse_field(f, 'profile')
     self.assertIsInstance(result, ModelChoiceFilter)
     self.assertEqual(result.name, 'profile')
     self.assertTrue('queryset' in result.extra)
     self.assertIsNotNone(result.extra['queryset'])
     self.assertEqual(result.extra['queryset'].model, Profile)
Exemplo n.º 21
0
 def test_field_with_extras(self):
     f = User._meta.get_field('favorite_books')
     result = FilterSet.filter_for_field(f, 'favorite_books')
     self.assertIsInstance(result, ModelMultipleChoiceFilter)
     self.assertEqual(result.name, 'favorite_books')
     self.assertTrue('queryset' in result.extra)
     self.assertIsNotNone(result.extra['queryset'])
     self.assertEqual(result.extra['queryset'].model, Book)
Exemplo n.º 22
0
 def test_reverse_fk_relationship(self):
     f = User._meta.get_field('comments')
     result = FilterSet.filter_for_field(f, 'comments')
     self.assertIsInstance(result, ModelMultipleChoiceFilter)
     self.assertEqual(result.field_name, 'comments')
     self.assertTrue('queryset' in result.extra)
     self.assertIsNotNone(result.extra['queryset'])
     self.assertEqual(result.extra['queryset'].model, Comment)
Exemplo n.º 23
0
 def test_symmetrical_selfref_m2m_field(self):
     f = Node._meta.get_field('adjacents')
     result = FilterSet.filter_for_field(f, 'adjacents')
     self.assertIsInstance(result, ModelMultipleChoiceFilter)
     self.assertEqual(result.name, 'adjacents')
     self.assertTrue('queryset' in result.extra)
     self.assertIsNotNone(result.extra['queryset'])
     self.assertEqual(result.extra['queryset'].model, Node)
Exemplo n.º 24
0
 def test_reverse_m2m_relationship(self):
     f = Book._meta.get_field_by_name('lovers')[0]
     result = FilterSet.filter_for_reverse_field(f, 'lovers')
     self.assertIsInstance(result, ModelMultipleChoiceFilter)
     self.assertEqual(result.name, 'lovers')
     self.assertTrue('queryset' in result.extra)
     self.assertIsNotNone(result.extra['queryset'])
     self.assertEqual(result.extra['queryset'].model, User)
Exemplo n.º 25
0
 def test_reverse_o2o_relationship(self):
     f = Account._meta.get_field_by_name('profile')[0]
     result = FilterSet.filter_for_reverse_field(f, 'profile')
     self.assertIsInstance(result, ModelChoiceFilter)
     self.assertEqual(result.name, 'profile')
     self.assertTrue('queryset' in result.extra)
     self.assertIsNotNone(result.extra['queryset'])
     self.assertEqual(result.extra['queryset'].model, Profile)
Exemplo n.º 26
0
 def test_symmetrical_selfref_m2m_field(self):
     f = Node._meta.get_field('adjacents')
     result = FilterSet.filter_for_field(f, 'adjacents')
     self.assertIsInstance(result, ModelMultipleChoiceFilter)
     self.assertEqual(result.name, 'adjacents')
     self.assertTrue('queryset' in result.extra)
     self.assertIsNotNone(result.extra['queryset'])
     self.assertEqual(result.extra['queryset'].model, Node)
Exemplo n.º 27
0
 def test_filter_not_found_for_field(self):
     f = User._meta.get_field('id')
     result = FilterSet.filter_for_field(f, 'id')
     self.assertIsNone(result)
Exemplo n.º 28
0
 def test_filter_found_for_autofield(self):
     f = User._meta.get_field('id')
     result = FilterSet.filter_for_field(f, 'id')
     self.assertIsInstance(result, NumberFilter)
     self.assertEqual(result.name, 'id')
Exemplo n.º 29
0
 def test_filter_found_for_uuidfield(self):
     f = UUIDTestModel._meta.get_field('uuid')
     result = FilterSet.filter_for_field(f, 'uuid')
     self.assertIsInstance(result, UUIDFilter)
     self.assertEqual(result.name, 'uuid')
Exemplo n.º 30
0
 def test_filter_found_for_field(self):
     f = User._meta.get_field('username')
     result = FilterSet.filter_for_field(f, 'username')
     self.assertIsInstance(result, CharFilter)
     self.assertEqual(result.name, 'username')
Exemplo n.º 31
0
 def test_filter_found_for_field(self):
     f = User._meta.get_field('username')
     result = FilterSet.filter_for_field(f, 'username')
     self.assertIsInstance(result, CharFilter)
     self.assertEqual(result.name, 'username')
Exemplo n.º 32
0
 def test_field_that_is_subclassed(self):
     f = User._meta.get_field('first_name')
     result = FilterSet.filter_for_field(f, 'first_name')
     self.assertIsInstance(result, CharFilter)
Exemplo n.º 33
0
 def test_modified_default_lookup(self):
     f = User._meta.get_field('username')
     result = FilterSet.filter_for_field(f, 'username')
     self.assertIsInstance(result, CharFilter)
     self.assertEqual(result.lookup_expr, 'icontains')
Exemplo n.º 34
0
 def test_filter_found_for_uuidfield(self):
     f = UUIDTestModel._meta.get_field('uuid')
     result = FilterSet.filter_for_field(f, 'uuid')
     self.assertIsInstance(result, UUIDFilter)
     self.assertEqual(result.field_name, 'uuid')
Exemplo n.º 35
0
 def test_filter_found_for_autofield(self):
     f = User._meta.get_field('id')
     result = FilterSet.filter_for_field(f, 'id')
     self.assertIsInstance(result, NumberFilter)
     self.assertEqual(result.name, 'id')
Exemplo n.º 36
0
 def test_filter_not_found_for_field(self):
     f = User._meta.get_field('id')
     result = FilterSet.filter_for_field(f, 'id')
     self.assertIsNone(result)
Exemplo n.º 37
0
 def test_filter_for_ISNULL_lookup(self):
     f = Article._meta.get_field('author')
     result, params = FilterSet.filter_for_lookup(f, 'isnull')
     self.assertEqual(result, BooleanFilter)
     self.assertDictEqual(params, {})
Exemplo n.º 38
0
 def test_transformed_lookup_expr(self):
     f = Comment._meta.get_field('date')
     result = FilterSet.filter_for_field(f, 'date', 'year__gte')
     self.assertIsInstance(result, NumberFilter)
     self.assertEqual(result.name, 'date')
Exemplo n.º 39
0
 def test_reverse_relationship_lookup_expr(self):
     f = Book._meta.get_field('lovers')
     result = FilterSet.filter_for_field(f, 'lovers', 'isnull')
     self.assertIsInstance(result, BooleanFilter)
     self.assertEqual(result.field_name, 'lovers')
     self.assertEqual(result.lookup_expr, 'isnull')
Exemplo n.º 40
0
 def test_filter_for_RANGE_lookup(self):
     f = Article._meta.get_field('author')
     result, params = FilterSet.filter_for_lookup(f, 'range')
     self.assertTrue(issubclass(result, ModelChoiceFilter))
     self.assertTrue(issubclass(result, BaseRangeFilter))
     self.assertEqual(params['to_field_name'], 'id')
Exemplo n.º 41
0
 def test_filter_for_ISNULL_lookup(self):
     f = Article._meta.get_field('author')
     result, params = FilterSet.filter_for_lookup(f, 'isnull')
     self.assertEqual(result, BooleanFilter)
     self.assertDictEqual(params, {})
Exemplo n.º 42
0
 def test_reverse_relationship_lookup_expr(self):
     f = Book._meta.get_field('lovers')
     result = FilterSet.filter_for_field(f, 'lovers', 'isnull')
     self.assertIsInstance(result, BooleanFilter)
     self.assertEqual(result.field_name, 'lovers')
     self.assertEqual(result.lookup_expr, 'isnull')
Exemplo n.º 43
0
 def test_filter_for_RANGE_lookup(self):
     f = Article._meta.get_field('author')
     result, params = FilterSet.filter_for_lookup(f, 'range')
     self.assertTrue(issubclass(result, ModelChoiceFilter))
     self.assertTrue(issubclass(result, BaseRangeFilter))
     self.assertEqual(params['to_field_name'], 'id')
Exemplo n.º 44
0
 def test_field_that_is_subclassed(self):
     f = User._meta.get_field('first_name')
     result = FilterSet.filter_for_field(f, 'first_name')
     self.assertIsInstance(result, CharFilter)
Exemplo n.º 45
0
 def test_transformed_lookup_expr(self):
     f = Comment._meta.get_field('date')
     result = FilterSet.filter_for_field(f, 'date', 'year__gte')
     self.assertIsInstance(result, NumberFilter)
     self.assertEqual(result.field_name, 'date')