コード例 #1
0
ファイル: test_backends.py プロジェクト: ercpe/phylter
    def test_apply_django_filter(self):
        qs = Mock()

        db = DjangoBackend()
        db.apply_django_filter(qs, EqualsCondition('a', 1))

        assert qs.filter.called
コード例 #2
0
ファイル: test_backends.py プロジェクト: ercpe/phylter
    def test_to_q(self):
        db = DjangoBackend()

        assert db.to_q(EqualsCondition('a', 1)).children == [('a', 1)]
        assert db.to_q(GreaterThanCondition('a', 0)).children == [('a__gt', 0)]
        assert db.to_q(GreaterThanOrEqualCondition('a', 1)).children == [
            ('a__gte', 1)
        ]
        assert db.to_q(LessThanCondition('a', 2)).children == [('a__lt', 2)]
        assert db.to_q(LessThanOrEqualCondition('a',
                                                1)).children == [('a__lte', 1)]

        q = db.to_q(
            AndOperator(EqualsCondition('a', 1), GreaterThanCondition('a', 0)))
        assert len(q.children) == 2
        assert q.children[0].children == [('a', 1)]
        assert q.children[1].children == [('a__gt', 0)]
        assert q.connector == 'AND'

        q = db.to_q(
            OrOperator(EqualsCondition('a', 1), GreaterThanCondition('a', 0)))
        assert len(q.children) == 2
        assert q.children[0].children == [('a', 1)]
        assert q.children[1].children == [('a__gt', 0)]
        assert q.connector == 'OR'

        with pytest.raises(Exception):
            db.to_q(False)
コード例 #3
0
ファイル: test_backends.py プロジェクト: ercpe/phylter
    def test_apply(self):
        all_qs = Mock()

        manager = Mock()
        manager.all = Mock(return_value=all_qs)

        db = DjangoBackend()
        db.apply(Query([EqualsCondition('a', 1)]), manager)

        assert manager.all.called  # Mock() isn't an instance of Manager, so .all() must be called
        assert all_qs.filter.called