Пример #1
0
 def test_response_headers(self):
     key = 'test'
     headers = {key: 'this'}
     self._simulate('GET', '/headers', headers=headers)
     response_headers = types.Headers(dict(self.srmock.headers))
     self.assertIn(key, response_headers)
     self.assertEqual(headers[key], response_headers[key])
Пример #2
0
 def _simulate(self,
               method,
               url,
               query_string=None,
               body=None,
               headers=None,
               binary_response=False):
     kwargs = {}
     headers = headers or {}
     if query_string:
         kwargs["query_string"] = query_string
     if body is not None:
         content_type = headers.get(common.CONTENT_TYPE, common.TYPE_JSON)
         kwargs["body"] = json.dumps(
             body) if common.TYPE_JSON in content_type else body
         headers.update({common.CONTENT_TYPE: content_type})
     kwargs["headers"] = headers
     response = self.simulate_request(url, method=method, **kwargs)
     if isinstance(response, collections.Iterable):
         result = six.b('').join(response)
     else:
         result = response
     if not binary_response:
         result = result.decode(common.ENCODING)
     headers = types.Headers(dict(self.srmock.headers))
     if not binary_response and common.TYPE_JSON in headers.get(
             common.CONTENT_TYPE, ''):
         result = json.loads(result)
     return result
Пример #3
0
    def test_keywords(self):
        url = "/keywords"
        expected = {"arg": 1, "default": 2, "c": 3, "d": 4}
        expected_no_default = expected.copy()
        expected_no_default["default"] = keywords.Keywords.DEFAULT

        logging.info("Testing keywords with GET")
        get = self._simulate(
            "GET",
            url,
            query_string="arg=1&default=2&c=3&d=4",
        )
        self.assertDictEqual({k: int(v)
                              for k, v in six.iteritems(get)}, expected)

        logging.info("Testing keywords with GET and no default")
        get = self._simulate(
            "GET",
            url,
            query_string="arg=1&c=3&d=4",
        )
        self.assertDictEqual({k: int(v)
                              for k, v in six.iteritems(get)},
                             expected_no_default)

        for method in ("POST", "PUT"):
            logging.info("Testing keywords with %s", method)
            ret = self._simulate(
                method,
                url,
                body=expected,
            )
            self.assertDictEqual(ret, expected)
            no_default = expected.copy()
            del no_default["default"]
            ret = self._simulate(
                method,
                url,
                body=no_default,
            )
            self.assertDictEqual(ret, expected_no_default)
        logging.info("Testing keywords with GET and headers")
        response = self._simulate(
            "GET",
            "{}/headers".format(url),
            query_string="arg=1&default=2&c=3",
            headers={"d": str(expected["d"])},
        )
        self.assertEqual(int(response["arg"]), expected["arg"])
        self.assertEqual(int(response["default"]), expected["default"])
        self.assertEqual(int(response["c"]), expected["c"])
        headers = types.Headers(response["headers"])
        self.assertEqual(int(headers["d"]), expected["d"])