예제 #1
0
    def test_url_found_successful(self):
        source_path = '/forth-transition-url'
        source_url = '{}{}'.format(self.HOST, source_path)

        response = resolve_url(source_url)

        self.assertEqual(response.url,
                         '{}{}'.format(self.HOST, URL_PATHS_MAP[source_path]))
        self.assertEqual(response.status_code, HTTPStatus.OK)
예제 #2
0
    def test_manage_to_infinite_response_content(self):
        source_url = '{}/first-infinite-content-url'.format(self.HOST)
        response = resolve_url(source_url)
        self.assertEqual(response.status_code, HTTPStatus.OK)

        self.assertFalse(response._content_consumed)
        # Вот так в тестах конечно делать нельзя наверное. У requests content -- это проперти.
        # Так вот мы сначала проверили, что респонс получили с нужным статус кодом,
        # затем проверили, что контент не весь употребили, затем с помощью вызова проперти
        # употребли и догрузили недотающие чанки, затем проверили, что все употребили
        response.content
        self.assertTrue(response._content_consumed)
예제 #3
0
 def test_url_not_respond(self):
     with self.assertRaises(ReadTimeout):
         resolve_url('{}/timeout-url'.format(self.HOST))
예제 #4
0
 def test_url_not_found(self):
     source_url = '{}/nonexistent-url'.format(self.HOST)
     response = resolve_url(source_url)
     self.assertEqual(response.url, source_url)
     self.assertEqual(response.status_code, HTTPStatus.NOT_FOUND)
예제 #5
0
 def test_max_depth_exceeded(self):
     with self.assertRaises(MaxDepthExceeded):
         resolve_url('{}/first-transition-url'.format(self.HOST))
예제 #6
0
 def test_cycle_will_broken(self):
     with self.assertRaises(CircularDependencyFound):
         resolve_url('{}/first-cycled-transition-url'.format(self.HOST))