def test_query_return_self_methods_accept_any_parameters_and_return_instance(self):
     qs = MockSet(MockModel(foo=1), MockModel(foo=2))
     assert qs == qs.all()
     assert qs == qs.only('f1')
     assert qs == qs.defer('f2', 'f3')
     assert qs == qs.using('default')
     assert qs == qs.select_related('t1', 't2')
     assert qs == qs.prefetch_related('t3', 't4')
     assert qs == qs.select_for_update()
 def test_query_return_self_methods_accept_any_parameters_and_return_instance(self):
     qs = MockSet(MockModel(foo=1), MockModel(foo=2))
     assert qs == qs.all()
     assert qs == qs.only('f1')
     assert qs == qs.defer('f2', 'f3')
     assert qs == qs.using('default')
     assert qs == qs.select_related('t1', 't2')
     assert qs == qs.prefetch_related('t3', 't4')
     assert qs == qs.select_for_update()
Beispiel #3
0
    def test_and_merge_queryset(self):
        qs = MockSet(
            MockModel(mock_name='model-1', foo='A', bar='1'),
            MockModel(mock_name='model-2', foo='B', bar='1'),
            MockModel(mock_name='model-3', foo='C', bar='3'),
        )

        test_qs = qs.all().filter(Q(foo='A'))
        test_qs &= test_qs.all().filter(Q(bar='1'))
        expected_results = ['model-1']
        results = [str(x) for x in test_qs]
        # Note: the results may come in various orders, and since we're just focused on the content, we can sort
        assert sorted(results) == sorted(expected_results)

        test_qs = qs.all().filter(Q(foo='A'))
        test_qs &= test_qs.all()
        expected_results = ['model-1']
        results = [str(x) for x in test_qs]
        # Note: the results may come in various orders, and since we're just focused on the content, we can sort
        assert sorted(results) == sorted(expected_results)