Beispiel #1
0
    def test_no_json_method(self, mock_logger, external_api_mock):
        external_api_mock.return_value = MockNoJsonMethodError()
        request = self.factory.get('/flights/search')
        response = SearchFlights().get(request)
        self.assertEqual(response.status_code, 200)

        json_response = json.loads(response.content)
        self.assertEqual(json_response.get("count"), 0)
        self.assertEqual(json_response.get("results"), [])
Beispiel #2
0
    def test_unexpected_data_type_returned(self, mock_logger, external_api_mock):
        external_api_mock.return_value = MockJsonDecodeError()
        request = self.factory.get('/flights/search')
        response = SearchFlights().get(request)
        self.assertEqual(response.status_code, 200)

        json_response = json.loads(response.content)
        self.assertEqual(json_response.get("count"), 0)
        self.assertEqual(json_response.get("results"), [])
Beispiel #3
0
    def test_valid_data_returned(self, external_api_mock):
        external_api_mock.return_value = MockValidData()
        request = self.factory.get('/flights/search')
        response = SearchFlights().get(request)
        self.assertEqual(response.status_code, 200)

        json_response = json.loads(response.content)
        self.assertEqual(json_response.get("count"),
                         len(SEARCHRUNNER_SCRAPER_API_ENDPOINTS) * len(MockValidData().json().get("results")))

        items = json_response.get("results")
        previous_agony = None

        for item in items:
            current_agony = item.get("agony")
            if previous_agony:
                self.assertLessEqual(previous_agony, current_agony)
            previous_agony = current_agony
Beispiel #4
0
"""search_flights URL Configuration"""

from django.urls import path

from app.views import SearchFlights

urlpatterns = [
    path(r'flights/search', SearchFlights.as_view(), name='SearchFlights')
]
Beispiel #5
0
 def test_too_many_redirects_error(self, mock_logger, _):
     request = self.factory.get('/flights/search')
     response = SearchFlights().get(request)
     self.assertJSONEqual(str(response.content, encoding='utf8'), {'count': 0, 'results': []})