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_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_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_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_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(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_get_role(self): ident = self.identity role = utils.random_unicode() nm = utils.random_unicode() id_ = utils.random_unicode() resp = fakes.FakeResponse() resp_body = {"role": {"name": nm, "id": id_}} ident.method_get = Mock(return_value=(resp, resp_body)) exp_uri = "OS-KSADM/roles/%s" % role ret = ident.get_role(role) ident.method_get.assert_called_once_with(exp_uri) self.assertTrue(isinstance(ret, base_identity.Role)) self.assertEqual(ret.name, nm) self.assertEqual(ret.id, 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_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_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_from_response_with_body(self): fake_resp = fakes.FakeResponse() fake_resp.status_code = 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_code) self.assertEqual(ret.message, "fake_message") self.assertEqual(ret.details, "fake_details") self.assertTrue("HTTP 666" in str(ret))
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_http_log_resp(self): log = logging.getLogger("pyos") sav_pldbug = log.debug log.debug = Mock() resp = fakes.FakeResponse() body = "body" sav_pdbug = pyos._http_debug pyos._http_debug = False self.http.http_log_resp(resp, body) self.assertFalse(log.debug.called) pyos._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 pyos._http_debug = sav_pdbug
def test_list_roles(self): ident = self.identity nm = utils.random_unicode() id_ = utils.random_unicode() svcid = utils.random_unicode() limit = utils.random_unicode() marker = utils.random_unicode() resp = fakes.FakeResponse() resp_body = {"roles": [{"name": nm, "id": id_}]} ident.method_get = Mock(return_value=(resp, resp_body)) exp_uri = "OS-KSADM/roles?serviceId=%s&limit=%s&marker=%s" % (svcid, limit, marker) ret = ident.list_roles(service_id=svcid, limit=limit, marker=marker) ident.method_get.assert_called_once_with(exp_uri) self.assertEqual(len(ret), 1) role = ret[0] self.assertTrue(isinstance(role, base_identity.Role))
def test_from_response_no_body(self): fake_resp = fakes.FakeResponse() fake_resp.status_code = 666 ret = exc.from_response(fake_resp, None) self.assertTrue(isinstance(ret, exc.ClientException)) self.assertEqual(ret.code, fake_resp.status_code)