Пример #1
0
def test_is(backend, view, rf, monkeypatch):
    monkeypatch.setattr(view, 'filter_fields', ['logic'])
    record(logic=True)
    request = Request(rf.get('/aaa/?logic__is=true'))

    qs = backend.filter_queryset(request, view.queryset, view)
    assert list(qs.values('logic')) == [{u'logic': True}], qs
Пример #2
0
def test_distinct(backend, view, rf, monkeypatch):
    monkeypatch.setattr(view, 'filter_fields', ['char'])
    record(id=1)
    record(id=2)
    request = Request(rf.get('/aaa/?_distinct=char&_distinct=id'))

    backend.filter_queryset(request, view.queryset, view)
Пример #3
0
    def setup(self):
        self.view = DemoModelView.as_view()
        self.uri = reverse('demos')
        self.rec1 = record(
            id=1,
            # username=str(time.time()),
            json={
                'a': {
                    'b': {
                        'c': [11, 22, 33],
                        'd': 'xyz',
                        'e': 2222,
                        'f': ['aa/11', 'bb/22', 'cc/33']
                    }
                }
            }).obj

        self.rec2 = record(
            id=2,
            # fk=None,
            # username=str(time.time()),
            json={
                'a': {
                    'b': {
                        'c': [1, 2, 3],
                        'd': 'abc',
                        'e': 22,
                        'f': ['a/1', 'b/2', 'c/3']
                    }
                }
            }).obj
Пример #4
0
def test_equal2(backend, view, rf, monkeypatch):
    request = Request(rf.get('/aaa/?char=1'))
    monkeypatch.setattr(view, 'filter_fields', ['char'])
    record(id=1)

    qs = backend.filter_queryset(request, view.queryset, view)
    assert list(qs.values('char')) == [{'char': '1'}]
Пример #5
0
def test_format(backend, view, rf, monkeypatch):
    request = Request(rf.get('/aaa/?format=csv'))
    monkeypatch.setattr(view, 'filter_fields', ['id'])
    record(id=1)

    qs = backend.filter_queryset(request, view.queryset, view)
    assert list(qs.values('id')) == [{'id': 1}]
Пример #6
0
def test_join(backend, view, rf, monkeypatch):
    monkeypatch.setattr(view, 'filter_fields', ['fk'])
    record(id=2)

    request = Request(rf.get('/aaa/?fk__id=2'))

    qs = backend.filter_queryset(request, view.queryset, view)
    assert qs.filter(fk__id=2).exists()
Пример #7
0
def test_source_join(backend, view, rf, monkeypatch):
    monkeypatch.setattr(view, 'filter_fields', ['username'])
    record(id=1)

    request = Request(rf.get('/aaa/?username=1'))

    qs = backend.filter_queryset(request, view.queryset, view)
    assert qs.filter(fk__username=1).exists()
Пример #8
0
def test_format_override(backend, view, rf, monkeypatch, settings):
    settings.URL_FORMAT_OVERRIDE = "f"
    request = Request(rf.get('/aaa/?f=csv'))
    monkeypatch.setattr(view, 'filter_fields', ['id'])
    record(id=1)

    qs = backend.filter_queryset(request, view.queryset, view)
    assert list(qs.values('id')) == [{'id': 1}]
Пример #9
0
def test_ignore_filter(backend, view, rf, monkeypatch):
    monkeypatch.setattr(view, 'filter_fields', ['char'])
    monkeypatch.setattr(view, 'drf_ignore_filter', lambda *args: True, raising=False)
    record(id=1)
    record(id=2)
    request = Request(rf.get('/aaa/?id=1'))

    qs = backend.filter_queryset(request, view.queryset, view)
    assert qs.count() == 2
Пример #10
0
def test_processor(backend, view, rf, monkeypatch):
    def process_custom(*k, **kw):
        filters = {'id': 1}
        return filters, {}

    monkeypatch.setattr(backend, 'process_custom', process_custom, False)
    record()
    request = Request(rf.get('/aaa/?custom=1'))

    qs = backend.filter_queryset(request, view.queryset, view)
    assert list(qs.values('id')) == [{u'id': 1}], qs.values()
Пример #11
0
def test_processor_alter_filter(backend, view, rf, monkeypatch):
    def process_fk(*k, **kw):
        return {'fk__id': 2}, {}

    record(id=2)
    monkeypatch.setattr(view, 'filter_fields', ['fk'])
    monkeypatch.setattr(backend, 'process_fk', process_fk, False)
    request = Request(rf.get('/aaa/?fk__id=1'))

    qs = backend.filter_queryset(request, view.queryset, view)
    assert list(qs.values('id')) == [{'id': 2}], qs
Пример #12
0
 def test_equal_date(self):
     with record(
             json={},
             date='2000-01-01',
     ) as rec:
         request = factory.get(self.uri, {'date': '2000-01-01'})
         response = self.view(request).render()
         j = json.loads(response.content.decode('utf-8'))
         assert j[0]['date'] == rec.date
Пример #13
0
def test_not_in(backend, view, rf, monkeypatch):
    monkeypatch.setattr(view, 'filter_fields', ['id'])
    record(id=1)
    record(id=2)
    record(id=3)
    record(id=4)

    request = Request(rf.get('/aaa/?id__not_in=1&id__not_in=2'))

    qs = backend.filter_queryset(request, view.queryset, view)
    assert not qs.filter(id__in=[1, 2])
Пример #14
0
def test_in(backend, view, rf, monkeypatch):
    monkeypatch.setattr(view, 'filter_fields', ['id'])
    record(id=1)
    record(id=2)
    record(id=3)
    record(id=4)

    request = Request(rf.get('/aaa/?id__in=1&id__in=2&id__in=3'))

    qs = backend.filter_queryset(request, view.queryset, view)
    assert list(qs.values_list('id', flat=True)) == [1, 2, 3]
Пример #15
0
    def setup(self):
        self.view = DemoModelView.as_view()
        self.uri = reverse('demos')
        self.rec1 = record(id=1,
            # username=str(time.time()),
            json={'a': {'b': {'c': [11, 22, 33],
                              'd': 'xyz',
                              'e': 2222,
                              'f': ['aa/11', 'bb/22', 'cc/33']}
                        }
                  }).obj

        self.rec2 = record(
            id=2,
            # fk=None,
            # username=str(time.time()),
            json={'a': {'b': {'c': [1, 2, 3],
                              'd': 'abc',
                              'e': 22,
                              'f': ['a/1', 'b/2', 'c/3']}
                        }
                  }).obj
Пример #16
0
 def test_equal_logic(self):
     with record(logic=True) as rec:
         request = factory.get(self.uri, {'logic': 'true'})
         response = self.view(request).render()
         j = json.loads(response.content.decode('utf-8'))
         assert j[0]['logic'] == rec.logic
Пример #17
0
 def test_equal_date(self):
     with record(json={}, date='2000-01-01', ) as rec:
         request = factory.get(self.uri, {'date': '2000-01-01'})
         response = self.view(request).render()
         j = json.loads(response.content.decode('utf-8'))
         assert j[0]['date'] == rec.date
Пример #18
0
 def test_equal_integer(self):
     with record():
         request = factory.get(self.uri, {'integer': 1})
         response = self.view(request).render()
         j = json.loads(response.content.decode('utf-8'))
         assert j[0]['integer'] == 1
Пример #19
0
 def test_equal_logic(self):
     with record(logic=True) as rec:
         request = factory.get(self.uri, {'logic': 'true'})
         response = self.view(request).render()
         j = json.loads(response.content.decode('utf-8'))
         assert j[0]['logic'] == rec.logic
Пример #20
0
 def test_equal_integer(self):
     with record():
         request = factory.get(self.uri, {'integer': 1})
         response = self.view(request).render()
         j = json.loads(response.content.decode('utf-8'))
         assert j[0]['integer'] == 1