Example #1
0
    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)
Example #2
0
 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)
Example #3
0
 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)
Example #4
0
    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