예제 #1
0
    def test_filtered_query(self, mock_request):
        """
        Arguments passed to .filter() are stored on new (copied) Query instance
        and are not supposed to be cleared when that query is evaluated.
        """
        # Create a basic filter query for PPP...
        query = Query(self.client, Tour).filter(tour_dossier_code='PPP')
        self.assertEqual(len(query._filters), 1)

        # ... then chain on another filter argument...
        query = query.filter(order_by__asc='departures_start_date')
        self.assertEqual(len(query._filters), 2)

        # ... and force query evaluation, before checking...
        list(query)

        # ... our request was made with the appropriate query args, and...
        mock_request.assert_called_once_with('/tours',
                                             'GET',
                                             params={
                                                 'tour_dossier_code':
                                                 'PPP',
                                                 'order_by__asc':
                                                 'departures_start_date',
                                             })
        mock_request.reset_mock()

        # ... our stored filter args remain for the current instance.
        self.assertEqual(len(query._filters), 2)

        # .count() should remain the query filters and
        # respond from a new instance with the count value:
        query.count()
        self.assertEqual(len(query._filters), 2)
예제 #2
0
 def test_count(self, mock_request):
     query = Query(self.client, TourDossier)
     count = query.count()
     self.assertIsInstance(count, int)
     self.assertEqual(count, 3)
예제 #3
0
 def test_count(self, mock_request):
     query = Query(self.client, TourDossier)
     count = query.count()
     self.assertIsInstance(count, int)
     self.assertEqual(count, 3)