def test_queue_mgr_create_invalid(self): clt = self.client mgr = clt._manager name = utils.random_unicode() exp_uri = "/%s/%s" % (mgr.uri_base, name) resp = fakes.FakeResponse() resp.status_code = 400 mgr.api.method_put = Mock(return_value=(resp, None)) self.assertRaises(exc.InvalidQueueName, mgr.create, name)
def test_under_create_return_none(self): mgr = self.manager mgr.run_hooks = Mock() mgr.api.method_post = Mock() resp = fakes.FakeResponse() body = None mgr.api.method_post = Mock(return_value=(resp, body)) ret = mgr._create(fake_url, "", return_none=True, return_raw=False) self.assertIsNone(ret) mgr.api.method_post.assert_called_once_with(fake_url, body="")
def test_queue_mgr_create(self): clt = self.client mgr = clt._manager name = utils.random_unicode() exp_uri = "/%s/%s" % (mgr.uri_base, name) resp = fakes.FakeResponse() resp.status_code = 201 mgr.api.method_put = Mock(return_value=(resp, None)) q = mgr.create(name) self.assertTrue(isinstance(q, Queue)) self.assertEqual(q.name, name)
def test_request_exception(self): mthd = random.choice(self.http.req_methods.keys()) sav_method = self.http.req_methods[mthd] resp = fakes.FakeResponse() resp.status_code = 404 self.http.req_methods[mthd] = Mock(return_value=resp) uri = utils.random_unicode() hk = utils.random_unicode() hv = utils.random_unicode() headers = {hk: hv} self.assertRaises(exc.NotFound, self.http.request, mthd, uri, headers=headers)
def test_change_user_password(self): inst = self.instance fakename = utils.random_ascii() newpass = utils.random_ascii() resp = fakes.FakeResponse() resp.status_code = 202 inst._user_manager.api.method_put = Mock(return_value=(resp, {})) fakeuser = fakes.FakeDatabaseUser(inst._user_manager, {"name": fakename}) inst._user_manager.get = Mock(return_value=fakeuser) inst.change_user_password(fakename, newpass) inst._user_manager.api.method_put.assert_called_once_with( "/None/%s" % fakename, body={"user": {"password": newpass}})
def test_under_update(self): mgr = self.manager mgr.run_hooks = Mock() mgr.api.method_put = Mock() resp = fakes.FakeResponse() body = {"fakes": {"foo": "bar"}} mgr.api.method_put = Mock(return_value=(resp, body)) mgr.resource_class = fakes.FakeEntity mgr.response_key = "fakes" ret = mgr._update(fake_url, "") mgr.api.method_put.assert_called_once_with(fake_url, body="") self.assertEqual(ret, body)
def test_under_list_post(self): mgr = self.manager resp = fakes.FakeResponse() body = {"fakes": {"foo": "bar"}} mgr.api.method_post = Mock(return_value=(resp, body)) mgr.plural_response_key = "fakes" mgr.resource_class = fakes.FakeEntity ret = mgr._list(fake_url, body="test") mgr.api.method_post.assert_called_once_with(fake_url, body="test") self.assertTrue(isinstance(ret, list)) self.assertEqual(len(ret), 1) self.assertTrue(isinstance(ret[0], fakes.FakeEntity))
def test_under_create_return_resource(self): mgr = self.manager mgr.run_hooks = Mock() mgr.api.method_post = Mock() resp = fakes.FakeResponse() body = {"fakes": {"foo": "bar"}} mgr.api.method_post = Mock(return_value=(resp, body)) mgr.resource_class = fakes.FakeEntity mgr.response_key = "fakes" ret = mgr._create(fake_url, "", return_none=False, return_raw=False) self.assertTrue(isinstance(ret, fakes.FakeEntity)) mgr.api.method_post.assert_called_once_with(fake_url, body="")
def test_from_response_with_body(self): fake_resp = fakes.FakeResponse() fake_resp.status = 666 fake_body = {"error": { "message": "fake_message", "details": "fake_details"}} ret = exc.from_response(fake_resp, fake_body) self.assertTrue(isinstance(ret, exc.ClientException)) self.assertEqual(ret.code, fake_resp.status) self.assertEqual(ret.message, "fake_message") self.assertEqual(ret.details, "fake_details") self.assertTrue("HTTP 666" in str(ret))
def test_request(self): mthd = random.choice(self.http.req_methods.keys()) sav_method = self.http.req_methods[mthd] resp = fakes.FakeResponse() self.http.req_methods[mthd] = Mock(return_value=resp) uri = utils.random_unicode() hk = utils.random_unicode() hv = utils.random_unicode() headers = {hk: hv} self.http.request(mthd, uri, headers=headers) self.http.req_methods[mthd].assert_called_once_with(uri, headers=headers) self.http.req_methods[mthd] = sav_method
def test_request_400(self, mock_req, mock_from): clt = self.client clt.http_log_debug = False fakeresp = fakes.FakeResponse() fakeresp.status_code = 400 body_content = {"one": 2, "three": 4} fakebody = json.dumps(body_content) fake_uri = utils.random_unicode() fake_method = utils.random_unicode() mock_req.return_value = (fakeresp, fakebody) mock_from.side_effect = fakes.FakeException self.assertRaises(fakes.FakeException, clt.request, fake_uri, fake_method)
def test_request_ok(self): clt = self.client clt.http_log_debug = False fakeresp = fakes.FakeResponse() fakeresp.status = 200 body_content = {"one": 2, "three": 4} fakebody = json.dumps(body_content) sav = httplib2.Http.request httplib2.Http.request = Mock(return_value=(fakeresp, fakebody)) resp, body = clt.request(body="text") self.assertTrue(isinstance(resp, fakes.FakeResponse)) self.assertEqual(resp.status, 200) self.assertEqual(body, body_content) httplib2.Http.request = sav
def test_request_400(self): clt = self.client clt.http_log_debug = False fakeresp = fakes.FakeResponse() fakeresp.status = 400 body_content = {"one": 2, "three": 4} fakebody = json.dumps(body_content) sav = httplib2.Http.request httplib2.Http.request = Mock(return_value=(fakeresp, fakebody)) savexc = exc.from_response exc.from_response = Mock(side_effect=fakes.FakeException) self.assertRaises(fakes.FakeException, clt.request) exc.from_response = savexc httplib2.Http.request = sav
def test_queue_claim_mgr_claim_no_count(self): q = self.queue mgr = q._claim_manager ttl = utils.random_unicode() grace = utils.random_unicode() claim_id = utils.random_unicode() rbody = [{"href": "http://example.com/foo?claim_id=%s" % claim_id}] mgr.api.method_post = Mock(return_value=(fakes.FakeResponse(), rbody)) mgr.get = Mock() exp_uri = "/%s" % mgr.uri_base exp_body = {"ttl": ttl, "grace": grace} mgr.claim(ttl, grace) mgr.api.method_post.assert_called_once_with(exp_uri, body=exp_body) mgr.get.assert_called_once_with(claim_id)
def test_request_ok(self, mock_req): clt = self.client clt.http_log_debug = False clt.timeout = utils.random_unicode() fakeresp = fakes.FakeResponse() fakeresp.status_code = 200 body_content = {"one": 2, "three": 4} fake_uri = utils.random_unicode() fake_method = utils.random_unicode() mock_req.return_value = (fakeresp, body_content) resp, body = clt.request(fake_uri, fake_method, body="text") self.assertTrue(isinstance(resp, fakes.FakeResponse)) self.assertEqual(resp.status_code, 200) self.assertEqual(body, body_content)
def test_http_log_resp(self): log = logging.getLogger("pyrax") sav_pldbug = log.debug log.debug = Mock() resp = fakes.FakeResponse() body = "body" sav_pdbug = pyrax._http_debug pyrax._http_debug = False self.http.http_log_resp(resp, body) self.assertFalse(log.debug.called) pyrax._http_debug = True self.http.http_log_resp(resp, body) self.assertTrue(log.debug.called) log.debug.assert_any_call("RESP: %s\n%s", resp, resp.headers) log.debug.assert_called_with("RESP BODY: %s", body) log.debug = sav_pldbug pyrax._http_debug = sav_pdbug
def test_request_400(self): clt = self.client clt.http_log_debug = False fakeresp = fakes.FakeResponse() fakeresp.status_code = 400 body_content = {"one": 2, "three": 4} fakebody = json.dumps(body_content) fake_uri = utils.random_unicode() fake_method = utils.random_unicode() sav = pyrax.http.request pyrax.http.request = Mock(return_value=(fakeresp, fakebody)) savexc = exc.from_response exc.from_response = Mock(side_effect=fakes.FakeException) self.assertRaises(fakes.FakeException, clt.request, fake_uri, fake_method) exc.from_response = savexc pyrax.http.request = sav
def test_from_response_no_body(self): fake_resp = fakes.FakeResponse() fake_resp.status = 666 ret = exc.from_response(fake_resp, None) self.assertTrue(isinstance(ret, exc.ClientException)) self.assertEqual(ret.code, fake_resp.status)