def test_call(self): ident = self.base_identity_class() sav_req = pyos.http.request pyos.http.request = Mock() sav_debug = ident.http_log_debug ident.http_log_debug = True uri = "https://%s/%s" % (utils.random_ascii(), utils.random_ascii()) sav_stdout = sys.stdout out = StringIO() sys.stdout = out utils.add_method(ident, lambda self: "", "_get_auth_endpoint") dkv = utils.random_ascii() data = {dkv: dkv} hkv = utils.random_ascii() headers = {hkv: hkv} for std_headers in (True, False): expected_headers = ident._standard_headers() if std_headers else {} expected_headers.update(headers) for admin in (True, False): ident.method_post(uri, data=data, headers=headers, std_headers=std_headers, admin=admin) pyos.http.request.assert_called_with("POST", uri, body=data, headers=expected_headers) self.assertEqual(out.getvalue(), "") out.seek(0) out.truncate() out.close() pyos.http.request = sav_req ident.http_log_debug = sav_debug sys.stdout = sav_stdout
def __init__(self, name=None, info=None, *args, **kwargs): name = name or utils.random_ascii() info = info or {"fake": "fake"} super(FakeLoadBalancer, self).__init__(name, info, *args, **kwargs) self.id = utils.random_ascii() self.port = random.randint(1, 256) self.manager = FakeLoadBalancerManager()
def test_get_db_names_fail(self): inst = self.instance mgr = inst._user_manager mgr.instance = inst dbname1 = utils.random_ascii() dbname2 = utils.random_ascii() inst.list_databases = Mock(return_value=((dbname1, dbname2))) self.assertRaises(exc.NoSuchDatabase, mgr._get_db_names, "BAD")
def test_revoke_user_access(self): inst = self.instance fakeuser = utils.random_ascii() dbname1 = utils.random_ascii() inst._user_manager.api.method_delete = Mock(return_value=(None, None)) inst.revoke_user_access(fakeuser, dbname1, strict=False) inst._user_manager.api.method_delete.assert_called_once_with( "/None/%s/databases/%s" % (fakeuser, dbname1))
def __init__(self, name=None, info=None, *args, **kwargs): name = name or utils.random_ascii() info = info or {"fake": "fake", "scalingPolicies": []} self.groupConfiguration = {} super(FakeScalingGroup, self).__init__(name, info, *args, **kwargs) self.id = utils.random_ascii() self.name = name self.manager = FakeScalingGroupManager()
def test_grant_user_access(self): inst = self.instance fakeuser = utils.random_ascii() dbname1 = utils.random_ascii() inst._user_manager.api.method_put = Mock(return_value=(None, None)) inst.grant_user_access(fakeuser, dbname1, strict=False) inst._user_manager.api.method_put.assert_called_once_with( "/None/%s/databases" % fakeuser, body={"databases": [{"name": dbname1}]})
def test_list_user_access(self): inst = self.instance dbname1 = utils.random_ascii() dbname2 = utils.random_ascii() acc = {"databases": [{"name": dbname1}, {"name": dbname2}]} inst._user_manager.api.method_get = Mock(return_value=(None, acc)) db_list = inst.list_user_access("fakeuser") self.assertEqual(len(db_list), 2) self.assertTrue(db_list[0].name in (dbname1, dbname2))
def test_get_db_names(self): inst = self.instance mgr = inst._user_manager mgr.instance = inst dbname1 = utils.random_ascii() dbname2 = utils.random_ascii() inst.list_databases = Mock(return_value=((dbname1, dbname2))) resp = mgr._get_db_names(dbname1) self.assertEqual(resp, [dbname1])
def test_get_db_names_not_strict(self): inst = self.instance mgr = inst._user_manager mgr.instance = inst dbname1 = utils.random_ascii() dbname2 = utils.random_ascii() inst.list_databases = Mock(return_value=((dbname1, dbname2))) resp = mgr._get_db_names("BAD", strict=False) self.assertEqual(resp, ["BAD"])
def test_case_insensitive_update(self): k1 = utils.random_ascii() k2 = utils.random_ascii() k2up = k2.upper() k3 = utils.random_ascii() d1 = {k1: "fake", k2up: "fake"} d2 = {k2: "NEW", k3: "NEW"} expected = {k1: "fake", k2up: "NEW", k3: "NEW"} utils.case_insensitive_update(d1, d2) self.assertEqual(d1, expected)
def test_client_snap_mgr_create_snapshot(self): clt = self.client vol = self.volume name = utils.random_ascii() description = utils.random_ascii() mgr = clt._snapshot_manager snap = fakes.FakeBlockStorageSnapshot() mgr._create = Mock(return_value=snap) ret = mgr.create(name, vol, description=description, force=True) self.assertTrue(isinstance(ret, CloudBlockStorageSnapshot))
def test_grant_user_access(self): inst = self.instance fakeuser = utils.random_ascii() dbname1 = utils.random_ascii() inst._user_manager.api.method_put = Mock(return_value=(None, None)) inst.grant_user_access(fakeuser, dbname1, strict=False) inst._user_manager.api.method_put.assert_called_once_with( "/None/%s/databases" % fakeuser, body={"databases": [{ "name": dbname1 }]})
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_api_request_other_error(self): clt = self.client uri = utils.random_ascii() method = utils.random_ascii() kwargs = {"fake": utils.random_ascii()} err = exc.BadRequest("400", "Some other message") clt._time_request = Mock(side_effect=err) clt.management_url = utils.random_unicode() id_svc = clt.identity sav = id_svc.authenticate id_svc.authenticate = Mock() self.assertRaises(exc.BadRequest, clt._api_request, uri, method, **kwargs) id_svc.authenticate = sav
def test_api_request_missing_clt_id(self): clt = self.client uri = utils.random_ascii() method = utils.random_ascii() kwargs = {"fake": utils.random_ascii()} err = exc.BadRequest("400", 'The "Client-ID" header is required.') clt._time_request = Mock(side_effect=err) clt.management_url = utils.random_unicode() id_svc = clt.identity sav = id_svc.authenticate id_svc.authenticate = Mock() self.assertRaises(exc.QueueClientIDNotDefined, clt._api_request, uri, method, **kwargs) id_svc.authenticate = sav
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_api_request(self): clt = self.client uri = utils.random_ascii() method = utils.random_ascii() kwargs = {"fake": utils.random_ascii()} fake_resp = utils.random_ascii() fake_body = utils.random_ascii() clt._time_request = Mock(return_value=(fake_resp, fake_body)) clt.management_url = utils.random_unicode() id_svc = clt.identity sav = id_svc.authenticate id_svc.authenticate = Mock() ret = clt._api_request(uri, method, **kwargs) self.assertEqual(ret, (fake_resp, fake_body)) id_svc.authenticate = sav
def test_get_checksum_from_string(self): test = utils.random_ascii() md = hashlib.md5() md.update(test) expected = md.hexdigest() received = utils.get_checksum(test) self.assertEqual(expected, received)
def __init__(self, api=None, *args, **kwargs): if api is None: api = FakeImageClient() super(FakeImageManager, self).__init__(api, *args, **kwargs) self.plural_response_key = "images" self.resource_class = FakeImage self.id = utils.random_ascii()
def _safe_id(): """ Remove characters that shouldn't be in IDs, etc., that are being parsed from HREFs. This is a consequence of the random_unicode() function, which sometimes causes the urlparse function to return the wrong values when these characters are present. """ val = utils.random_ascii() for bad in "#;/?": val = val.replace(bad, "") return val
def test_get(self): rsc = self.resource sav_ga = rsc.__getattr__ rsc.__getattr__ = Mock() sav_mgr = rsc.manager.get ent = fakes.FakeEntity new_att = utils.random_ascii() ent._info = {new_att: None} rsc.manager.get = Mock(return_value=ent) rsc.get() self.assertTrue(hasattr(rsc, new_att)) rsc.manager.get = sav_mgr rsc.__getattr__ = sav_ga
def cf_upload_file(self): self.logit("Uploading a Cloud Files object...") cont = self.smoke_cont text = utils.random_ascii(1024) obj = cont.store_object("SMOKETEST_OBJECT", text) # Make sure it is deleted before the container self.cleanup_items.insert(0, obj) all_objs = cont.get_object_names() if obj.name in all_objs: self.logit("Success!") else: self.logit("FAIL!") self.failures.append("UPLOAD FILE")
def __init__(self, *args, **kwargs): super(FakeAutoScaleWebhook, self).__init__(*args, **kwargs) self.id = utils.random_ascii()
def __init__(self, *args, **kwargs): self.id = utils.random_ascii() self.name = utils.random_unicode() self.manager = FakeDNSManager()
def __init__(self, api=None, *args, **kwargs): if api is None: api = FakeImageClient() super(FakeImageTagManager, self).__init__(api, *args, **kwargs) self.id = utils.random_ascii()
def __init__(self, api=None, *args, **kwargs): if api is None: api = FakeAutoScaleClient() super(FakeScalingGroupManager, self).__init__(api, *args, **kwargs) self.id = utils.random_ascii()
def __init__(self, api=None, *args, **kwargs): if api is None: api = FakeStorageClient() if "uri_base" not in kwargs: kwargs["uri_base"] = utils.random_ascii() super(FakeStorageObjectManager, self).__init__(api, *args, **kwargs)