def test_mocked_code_verbs(self): """Different mocked response codes for different verbs""" # Arrange url = "duckduckgo.com/html" mock_post = MockResponse() mock_post.http_code = 1 self.backend.responses.add(mock_post, url, "POST") mock_get = MockResponse() mock_get.http_code = 2 self.backend.responses.add(mock_get, url, "GET") mock_put = MockResponse() mock_put.http_code = 3 self.backend.responses.add(mock_put, url, "PUT") mock_delete = MockResponse() mock_delete.http_code = 4 self.backend.responses.add(mock_delete, url, "DELETE") # Act, Assert self.assertEqual(self.browser.go(url, "POST"), 1) self.assertEqual(self.browser.go(url, "GET"), 2) self.assertEqual(self.browser.go(url, "PUT"), 3) self.assertEqual(self.browser.go(url, "DELETE"), 4)
def test_mocked_response_duckduckgo(self): """Let's pretend that duckduckgo.com's frontpage 404s""" # Arrange url = "duckduckgo.com/html" mock = MockResponse() mock.http_code = 404 self.backend.responses.add(mock, url) # Act, Assert self.assertEqual(self.browser.go(url), 404)
def test_string_data(self): """Data passed as a string should be compared one-to-one""" mock = MockResponse() mock.http_code = 200 url = "mock" method = "POST" data = "abc123" self.backend.responses.add(mock=mock, url=url, method=method, data=data) self.assertEqual(self.browser.go(url=url, method=method, data=data), 200)
def test_mocked_code_data(self): """Different mocked response codes for different data passed""" # Arrange url = "duckduckgo.com/html" method = "POST" mock_one = MockResponse() mock_one.http_code = 1 data_one = dict(foo="bar") self.backend.responses.add(mock_one, url, method, data_one) mock_two = MockResponse() mock_two.http_code = 2 data_two = dict(bar="foo") self.backend.responses.add(mock_two, url, method, data_two) # Act, Assert self.assertEqual(self.browser.go(url, method, data_one), 1) self.assertEqual(self.browser.go(url, method, data_two), 2)
def test_delete(self): """Positive test for DELETE""" # Arrange mock = MockResponse() mock.http_code = 200 mock.src = 'success' uid = 1 url = '%s/object/%s' % (self.client.base, uid) method = 'DELETE' self.backend.responses.add(mock, url, method) # Act, Assert self.assertEqual(self.client.delete('object', uid), mock.src)
def test_head(self): """Positive test for HEAD""" # Arrange mock = MockResponse() mock.http_code = 200 mock.src = 'failure' uid = 1 url = '%s/object/%s' % (self.client.base, uid) method = 'HEAD' self.backend.responses.add(mock, url, method) # Act, Assert self.assertEqual(self.client.head('object', uid), None)
def test_post(self): """Positive test for POST""" # Arrange mock = MockResponse() mock.http_code = 200 mock.src = 'success' url = '%s/object' % self.client.base method = 'POST' data = urlencode(dict(a=1, b=2, c=3)) self.backend.responses.add(mock, url, method, data) # Act, Assert self.assertEqual(self.client.post('object', data), mock.src)
def test_get(self): """Positive test for JSON GET""" # Arrange mock = MockResponse() mock.http_code = 200 mock.src = '"success"' expected = "success" uid = 1 url = '%s/object/%s' % (self.client.base, uid) method = 'GET' self.backend.responses.add(mock, url, method) # Act, Assert self.assertEqual(self.client.get('object', uid), expected)
def test_post(self): """Positive test for JSON POST""" # Arrange mock = MockResponse() mock.http_code = 200 mock.src = '"success"' expected = "success" url = '%s/object' % self.client.base method = 'POST' data = dict(a=1, b=2, c=3) expected_data = '{"a": 1, "c": 3, "b": 2}' headers = { 'Content-Type': 'text/json' } self.backend.responses.add(mock, url, method, expected_data, headers) # Act, Assert self.assertEqual(self.client.post('object', data), expected, {'Content-Type': 'text/json'})
def mocked_visit(self): mock = MockResponse() mock.src = "test data" mock.http_code = 123 mock.headers = {} url = "" method = 'GET' data = None headers = None follow = None agent = None retries = None debug = None self.backend.responses.add(mock, url, method, data, headers) self.browser.go(url, method, data, headers, follow, agent, retries, debug) return url, mock