Пример #1
0
 def test_update_user(self):
     ident = self.rax_identity_class()
     resp = fakes.FakeIdentityResponse()
     resp.response_type = "users"
     ident.method_put = Mock(return_value=resp)
     fake_name = utils.random_name()
     fake_email = utils.random_name()
     fake_username = utils.random_name()
     fake_uid = utils.random_name()
     fake_region = utils.random_name()
     fake_enabled = random.choice((True, False))
     ident.update_user(fake_name,
                       email=fake_email,
                       username=fake_username,
                       uid=fake_uid,
                       defaultRegion=fake_region,
                       enabled=fake_enabled)
     cargs = ident.method_put.call_args
     self.assertEqual(len(cargs), 2)
     self.assertEqual(cargs[0], ("users/%s" % fake_name, ))
     data = cargs[1]["data"]["user"]
     self.assertEqual(data["enabled"], fake_enabled)
     self.assertEqual(data["username"], fake_username)
     self.assert_(fake_email in data.values())
     self.assert_(fake_region in data.values())
Пример #2
0
 def test_http_methods(self):
     ident = self.base_identity_class()
     ident._call = Mock()
     uri = utils.random_name()
     dkv = utils.random_name()
     data = {dkv: dkv}
     hkv = utils.random_name()
     headers = {hkv: hkv}
     std_headers = True
     ident.method_get(uri, admin=False, data=data, headers=headers,
             std_headers=std_headers)
     ident._call.assert_called_with(requests.get, uri, False, data, headers,
             std_headers)
     ident.method_head(uri, admin=False, data=data, headers=headers,
             std_headers=std_headers)
     ident._call.assert_called_with(requests.head, uri, False, data, headers,
             std_headers)
     ident.method_post(uri, admin=False, data=data, headers=headers,
             std_headers=std_headers)
     ident._call.assert_called_with(requests.post, uri, False, data, headers,
             std_headers)
     ident.method_put(uri, admin=False, data=data, headers=headers,
             std_headers=std_headers)
     ident._call.assert_called_with(requests.put, uri, False, data, headers,
             std_headers)
     ident.method_delete(uri, admin=False, data=data, headers=headers,
             std_headers=std_headers)
     ident._call.assert_called_with(requests.delete, uri, False, data,
             headers, std_headers)
Пример #3
0
    def test_manager_list_all(self):
        clt = self.client
        mgr = clt._manager
        fake_name = utils.random_name()
        ret_body = {"domains": [{"name": fake_name}]}
        uri_string_next = utils.random_name()
        next_uri = "%s/domains/%s" % (example_uri, uri_string_next)
        mgr.count = 0

        def mock_get(uri):
            if mgr.count:
                return ({}, ret_body)
            mgr.count += 1
            ret = {
                "totalEntries": 2,
                "links": [{
                    "href": next_uri,
                    "rel": "next"
                }]
            }
            ret.update(ret_body)
            return ({}, ret)

        clt.method_get = Mock(wraps=mock_get)
        ret = mgr._list(example_uri, list_all=True)
        self.assertEqual(len(ret), 2)
Пример #4
0
 def test_reset_paging_body(self):
     clt = self.client
     mgr = clt._manager
     mgr._paging["domain"]["total_entries"] = 99
     mgr._paging["domain"]["next_uri"] = "FAKE"
     exp_entries = random.randint(100, 200)
     uri_string_next = utils.random_name()
     next_uri = "%s/domains/%s" % (example_uri, uri_string_next)
     uri_string_prev = utils.random_name()
     prev_uri = "%s/domains/%s" % (example_uri, uri_string_prev)
     body = {
         "totalEntries":
         exp_entries,
         "links": [{
             "href": next_uri,
             "rel": "next"
         }, {
             "href": prev_uri,
             "rel": "previous"
         }]
     }
     mgr._reset_paging("domain", body=body)
     self.assertEqual(mgr._paging["domain"]["total_entries"], exp_entries)
     self.assertEqual(mgr._paging["domain"]["next_uri"],
                      "/domains/%s" % uri_string_next)
     self.assertEqual(mgr._paging["domain"]["prev_uri"],
                      "/domains/%s" % uri_string_prev)
Пример #5
0
 def test_clt_resolve_lbs_dict(self):
     clt = fakes.FakeAutoScaleClient()
     key = utils.random_name()
     val = utils.random_name()
     lb_dict = {key: val}
     ret = clt._resolve_lbs(lb_dict)
     self.assertEqual(ret, [lb_dict])
Пример #6
0
 def __init__(self, name=None, info=None, *args, **kwargs):
     name = name or utils.random_name(ascii_only=True)
     info = info or {"fake": "fake"}
     super(FakeLoadBalancer, self).__init__(name, info, *args, **kwargs)
     self.id = utils.random_name(ascii_only=True)
     self.port = random.randint(1, 256)
     self.manager = FakeLoadBalancerManager()
Пример #7
0
 def test_update_user(self):
     for cls in self.id_classes.values():
         ident = cls()
         resp = fakes.FakeIdentityResponse()
         resp.response_type = "users"
         ident.method_put = Mock(return_value=resp)
         fake_name = utils.random_name()
         fake_email = utils.random_name()
         fake_username = utils.random_name()
         fake_uid = utils.random_name()
         fake_region = utils.random_name()
         fake_enabled = random.choice((True, False))
         kwargs = {
             "email": fake_email,
             "username": fake_username,
             "uid": fake_uid,
             "enabled": fake_enabled
         }
         if isinstance(ident, self.rax_identity_class):
             kwargs["defaultRegion"] = fake_region
         ident.update_user(fake_name, **kwargs)
         cargs = ident.method_put.call_args
         self.assertEqual(len(cargs), 2)
         self.assertEqual(cargs[0], ("users/%s" % fake_name, ))
         data = cargs[1]["data"]["user"]
         self.assertEqual(data["enabled"], fake_enabled)
         self.assertEqual(data["username"], fake_username)
         self.assert_(fake_email in data.values())
         if isinstance(ident, self.rax_identity_class):
             self.assert_(fake_region in data.values())
Пример #8
0
 def test_create_body_volume_defaults(self):
     clt = self.client
     size = random.randint(MIN_SIZE, MAX_SIZE)
     name = utils.random_name()
     snapshot_id = utils.random_name()
     display_description = utils.random_name()
     volume_type = utils.random_name()
     metadata = {}
     availability_zone = utils.random_name()
     fake_body = {
         "volume": {
             "size": size,
             "snapshot_id": snapshot_id,
             "display_name": name,
             "display_description": display_description,
             "volume_type": volume_type,
             "metadata": metadata,
             "availability_zone": availability_zone,
         }
     }
     ret = clt._create_body(name=name,
                            size=size,
                            volume_type=volume_type,
                            description=display_description,
                            metadata=metadata,
                            snapshot_id=snapshot_id,
                            availability_zone=availability_zone)
     self.assertEqual(ret, fake_body)
Пример #9
0
 def test_call(self):
     ident = self.base_identity_class()
     sav_post = requests.post
     requests.post = Mock()
     sav_debug = ident.http_log_debug
     ident.http_log_debug = True
     uri = "https://%s/%s" % (utils.random_name(), utils.random_name())
     sav_stdout = sys.stdout
     out = StringIO.StringIO()
     sys.stdout = out
     utils.add_method(ident, lambda self: "", "_get_auth_endpoint")
     dkv = utils.random_name()
     data = {dkv: dkv}
     jdata = json.dumps(data)
     hkv = utils.random_name()
     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)
             requests.post.assert_called_with(uri, data=jdata,
                     headers=expected_headers, verify=True)
             self.assertTrue(out.getvalue())
             out.seek(0)
             out.truncate()
     out.close()
     requests.post = sav_post
     ident.http_log_debug = sav_debug
     sys.stdout = sav_stdout
Пример #10
0
 def test_update_user(self):
     for cls in self.id_classes.values():
         ident = cls()
         resp = fakes.FakeIdentityResponse()
         resp.response_type = "users"
         ident.method_put = Mock(return_value=resp)
         fake_name = utils.random_name()
         fake_email = utils.random_name()
         fake_username = utils.random_name()
         fake_uid = utils.random_name()
         fake_region = utils.random_name()
         fake_enabled = random.choice((True, False))
         kwargs = {"email": fake_email, "username": fake_username,
                 "uid": fake_uid, "enabled": fake_enabled}
         if isinstance(ident, self.rax_identity_class):
             kwargs["defaultRegion"] = fake_region
         ident.update_user(fake_name, **kwargs)
         cargs = ident.method_put.call_args
         self.assertEqual(len(cargs), 2)
         self.assertEqual(cargs[0], ("users/%s" % fake_name, ))
         data = cargs[1]["data"]["user"]
         self.assertEqual(data["enabled"], fake_enabled)
         self.assertEqual(data["username"], fake_username)
         self.assert_(fake_email in data.values())
         if isinstance(ident, self.rax_identity_class):
             self.assert_(fake_region in data.values())
Пример #11
0
    def test_auth_with_token_rax(self):
        ident = self.rax_identity_class()
        mid = utils.random_name()
        oid = utils.random_name()
        token = utils.random_name()

        class FakeResp(object):
            info = None

            def json(self):
                return self.info

        resp_main = FakeResp()
        resp_main.info = {"access": {
                "serviceCatalog": [{"a": "a", "name": "a", "type": "a"}],
                "user": {"roles":
                        [{"tenantId": oid, "name": "object-store:default"}],
                }}}
        resp_obj = FakeResp()
        resp_obj.info = {"access": {
                "serviceCatalog": [{"b": "b", "name": "b", "type": "b"}]}}
        ident._call_token_auth = Mock(side_effect=(resp_main, resp_obj))

        def fake_parse(dct):
            svcs = dct.get("access", {}).get("serviceCatalog", {})
            pyrax.services = [svc["name"] for svc in svcs]

        ident._parse_response = fake_parse
        ident.auth_with_token(token, tenant_id=mid)
        ident._call_token_auth.assert_called_with(token, oid, None)
        self.assertTrue("a" in pyrax.services)
        self.assertTrue("b" in pyrax.services)
Пример #12
0
 def test_create_body_user(self):
     clt = self.client
     nm = utils.random_name()
     pw = utils.random_name()
     ret = clt._create_body(nm, password=pw, database_names=[])
     expected = {"users": [{"name": nm, "password": pw, "databases": []}]}
     self.assertEqual(ret, expected)
Пример #13
0
 def test_auth_with_token_id(self):
     for cls in self.id_classes.values():
         ident = cls()
         tok = utils.random_name()
         tenant_id = utils.random_name()
         resp = fakes.FakeIdentityResponse()
         # Need to stuff this into the standard response
         sav = resp.content["access"]["token"]["tenant"]["id"]
         resp.content["access"]["token"]["tenant"]["id"] = tenant_id
         ident.method_post = Mock(return_value=resp)
         ident.auth_with_token(tok, tenant_id=tenant_id)
         ident.method_post.assert_called_once_with(
             "tokens",
             headers={
                 'Content-Type': 'application/json',
                 'Accept': 'application/json'
             },
             std_headers=False,
             data={'auth': {
                 'token': {
                     'id': tok
                 },
                 'tenantId': tenant_id
             }})
         self.assertEqual(ident.tenant_id, tenant_id)
         resp.content["access"]["token"]["tenant"]["id"] = sav
Пример #14
0
 def test_get_temp_url_missing_key(self):
     client = self.client
     cname = utils.random_name(ascii_only=True)
     oname = utils.random_name(ascii_only=True)
     client.connection.head_account = Mock()
     client.connection.head_account.return_value = {"some-other-key": "no"}
     self.assertRaises(exc.MissingTemporaryURLKey, client.get_temp_url, cname, oname, seconds=120, method="GET")
 def test_detach_from_instance_fail(self):
     vol = self.volume
     srv_id = utils.random_name()
     att_id = utils.random_name()
     vol.attachments = [{"server_id": srv_id, "id": att_id}]
     vol._nova_volumes.delete_server_volume = Mock(side_effect=Exception("test"))
     self.assertRaises(exc.VolumeDetachmentFailed, vol.detach)
Пример #16
0
 def test_update_user(self):
     ident = self.rax_identity_class()
     resp = fakes.FakeIdentityResponse()
     resp.response_type = "users"
     ident.method_put = Mock(return_value=resp)
     fake_name = utils.random_name()
     fake_email = utils.random_name()
     fake_username = utils.random_name()
     fake_uid = utils.random_name()
     fake_region = utils.random_name()
     fake_enabled = random.choice((True, False))
     ident.update_user(
         fake_name,
         email=fake_email,
         username=fake_username,
         uid=fake_uid,
         defaultRegion=fake_region,
         enabled=fake_enabled,
     )
     cargs = ident.method_put.call_args
     self.assertEqual(len(cargs), 2)
     self.assertEqual(cargs[0], ("users/%s" % fake_name,))
     data = cargs[1]["data"]["user"]
     self.assertEqual(data["enabled"], fake_enabled)
     self.assertEqual(data["username"], fake_username)
     self.assert_(fake_email in data.values())
     self.assert_(fake_region in data.values())
Пример #17
0
 def test_revoke_user_access(self):
     inst = self.instance
     fakeuser = utils.random_name(ascii_only=True)
     dbname1 = utils.random_name(ascii_only=True)
     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))
Пример #18
0
 def test_create_snapshot(self):
     vol = self.volume
     vol._snapshot_manager.create = Mock()
     name = utils.random_name()
     desc = utils.random_name()
     vol.create_snapshot(name=name, description=desc, force=False)
     vol._snapshot_manager.create.assert_called_once_with(volume=vol,
             name=name, description=desc, force=False)
Пример #19
0
 def test_metadata(self):
     sg = self.scaling_group
     metadata = utils.random_name()
     newmetadata = utils.random_name()
     sg.groupConfiguration = {"metadata": metadata}
     self.assertEqual(sg.metadata, metadata)
     sg.metadata = newmetadata
     self.assertEqual(sg.metadata, newmetadata)
Пример #20
0
 def test_auth_with_token(self):
     pyrax.authenticated = False
     tok = utils.random_name()
     tname = utils.random_name()
     pyrax.auth_with_token(tok, tenant_name=tname)
     self.assertTrue(pyrax.identity.authenticated)
     self.assertEqual(pyrax.identity.token, tok)
     self.assertEqual(pyrax.identity.tenant_name, tname)
Пример #21
0
 def test_create_snapshot_bad_request_other(self):
     vol = self.volume
     vol._snapshot_manager.create = Mock(side_effect=exc.BadRequest(
             "Some other message"))
     name = utils.random_name()
     desc = utils.random_name()
     self.assertRaises(exc.BadRequest, vol.create_snapshot, name=name,
             description=desc, force=False)
Пример #22
0
 def test_create_snapshot_bad_request(self):
     vol = self.volume
     vol._snapshot_manager.create = Mock(side_effect=exc.BadRequest(
             "Invalid volume: must be available"))
     name = utils.random_name()
     desc = utils.random_name()
     self.assertRaises(exc.VolumeNotAvailable, vol.create_snapshot,
             name=name, description=desc, force=False)
 def test_create_snapshot_bad_request(self):
     vol = self.volume
     vol._snapshot_manager.create = Mock(side_effect=exc.BadRequest(
             "Invalid volume: must be available"))
     name = utils.random_name()
     desc = utils.random_name()
     self.assertRaises(exc.VolumeNotAvailable, vol.create_snapshot,
             name=name, description=desc, force=False)
 def test_create_snapshot_bad_request_other(self):
     vol = self.volume
     vol._snapshot_manager.create = Mock(side_effect=exc.BadRequest(
             "Some other message"))
     name = utils.random_name()
     desc = utils.random_name()
     self.assertRaises(exc.BadRequest, vol.create_snapshot, name=name,
             description=desc, force=False)
Пример #25
0
 def test_auth_with_token(self):
     pyrax.authenticated = False
     tok = utils.random_name()
     tname = utils.random_name()
     pyrax.auth_with_token(tok, tenant_name=tname)
     self.assertTrue(pyrax.identity.authenticated)
     self.assertEqual(pyrax.identity.token, tok)
     self.assertEqual(pyrax.identity.tenant_name, tname)
Пример #26
0
 def test_delete_webhook(self):
     sg = self.scaling_group
     mgr = sg.manager
     pol = utils.random_name()
     hook = utils.random_name()
     mgr.delete_webhook = Mock()
     sg.delete_webhook(pol, hook)
     mgr.delete_webhook.assert_called_once_with(sg, pol, hook)
Пример #27
0
 def __init__(self, name=None, info=None, *args, **kwargs):
     name = name or utils.random_name(ascii_only=True)
     info = info or {"fake": "fake", "scalingPolicies": []}
     self.groupConfiguration = {}
     super(FakeScalingGroup, self).__init__(name, info, *args, **kwargs)
     self.id = utils.random_name(ascii_only=True)
     self.name = name
     self.manager = FakeScalingGroupManager()
Пример #28
0
 def test_cooldown(self):
     sg = self.scaling_group
     cooldown = utils.random_name()
     newcooldown = utils.random_name()
     sg.groupConfiguration = {"cooldown": cooldown}
     self.assertEqual(sg.cooldown, cooldown)
     sg.cooldown = newcooldown
     self.assertEqual(sg.cooldown, newcooldown)
Пример #29
0
 def test_mgr_resolve_lbs_dict(self):
     sg = self.scaling_group
     mgr = sg.manager
     key = utils.random_name()
     val = utils.random_name()
     lb_dict = {key: val}
     ret = mgr._resolve_lbs(lb_dict)
     self.assertEqual(ret, [lb_dict])
Пример #30
0
 def test_name(self):
     sg = self.scaling_group
     name = utils.random_name()
     newname = utils.random_name()
     sg.groupConfiguration = {"name": name}
     self.assertEqual(sg.name, name)
     sg.name = newname
     self.assertEqual(sg.name, newname)
Пример #31
0
 def test_get_temp_url_missing_key(self):
     client = self.client
     cname = utils.random_name(ascii_only=True)
     oname = utils.random_name(ascii_only=True)
     client.connection.head_account = Mock()
     client.connection.head_account.return_value = {"some-other-key": "no"}
     self.assertRaises(exc.MissingTemporaryURLKey, client.get_temp_url,
             cname, oname, seconds=120, method="GET")
Пример #32
0
 def test_max_entities(self):
     sg = self.scaling_group
     max_entities = utils.random_name()
     newmax_entities = utils.random_name()
     sg.groupConfiguration = {"maxEntities": max_entities}
     self.assertEqual(sg.max_entities, max_entities)
     sg.max_entities = newmax_entities
     self.assertEqual(sg.max_entities, newmax_entities)
 def test_client_create_snapshot(self):
     clt = self.client
     vol = self.volume
     name = utils.random_name()
     description = utils.random_name()
     vol.create_snapshot = Mock()
     clt.create_snapshot(vol, name=name, description=description, force=True)
     vol.create_snapshot.assert_called_once_with(name=name, description=description, force=True)
 def test_snapshot_name_property(self):
     snap = self.snapshot
     nm = utils.random_name()
     snap.display_name = nm
     self.assertEqual(snap.name, snap.display_name)
     nm = utils.random_name()
     snap.name = nm
     self.assertEqual(snap.name, snap.display_name)
 def test_create_snapshot(self):
     vol = self.volume
     vol._snapshot_manager.create = Mock()
     name = utils.random_name()
     desc = utils.random_name()
     vol.create_snapshot(name=name, description=desc, force=False)
     vol._snapshot_manager.create.assert_called_once_with(volume=vol, name=name,
             description=desc, force=False)
Пример #36
0
 def test_detach_from_instance_fail(self):
     vol = self.volume
     srv_id = utils.random_name()
     att_id = utils.random_name()
     vol.attachments = [{"server_id": srv_id, "id": att_id}]
     vol._nova_volumes.delete_server_volume = Mock(
         side_effect=Exception("test"))
     self.assertRaises(exc.VolumeDetachmentFailed, vol.detach)
 def test_detach_from_instance(self):
     vol = self.volume
     srv_id = utils.random_name()
     att_id = utils.random_name()
     vol.attachments = [{"server_id": srv_id, "id": att_id}]
     vol._nova_volumes.delete_server_volume = Mock()
     vol.detach()
     vol._nova_volumes.delete_server_volume.assert_called_once_with(srv_id, att_id)
 def test_volume_description_property(self):
     vol = self.volume
     nm = utils.random_name()
     vol.display_description = nm
     self.assertEqual(vol.description, vol.display_description)
     nm = utils.random_name()
     vol.description = nm
     self.assertEqual(vol.description, vol.display_description)
Пример #39
0
 def test_revoke_user_access(self):
     inst = self.instance
     fakeuser = utils.random_name(ascii_only=True)
     dbname1 = utils.random_name(ascii_only=True)
     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 test_snapshot_description_property(self):
     snap = self.snapshot
     nm = utils.random_name()
     snap.display_description = nm
     self.assertEqual(snap.description, snap.display_description)
     nm = utils.random_name()
     snap.description = nm
     self.assertEqual(snap.description, snap.display_description)
Пример #41
0
 def test_snapshot_name_property(self):
     snap = self.snapshot
     nm = utils.random_name()
     snap.display_name = nm
     self.assertEqual(snap.name, snap.display_name)
     nm = utils.random_name()
     snap.name = nm
     self.assertEqual(snap.name, snap.display_name)
Пример #42
0
 def test_snapshot_description_property(self):
     snap = self.snapshot
     nm = utils.random_name()
     snap.display_description = nm
     self.assertEqual(snap.description, snap.display_description)
     nm = utils.random_name()
     snap.description = nm
     self.assertEqual(snap.description, snap.display_description)
Пример #43
0
 def test_volume_description_property(self):
     vol = self.volume
     nm = utils.random_name()
     vol.display_description = nm
     self.assertEqual(vol.description, vol.display_description)
     nm = utils.random_name()
     vol.description = nm
     self.assertEqual(vol.description, vol.display_description)
Пример #44
0
 def test_volume_name_property(self):
     vol = self.volume
     nm = utils.random_name()
     vol.display_name = nm
     self.assertEqual(vol.name, vol.display_name)
     nm = utils.random_name()
     vol.name = nm
     self.assertEqual(vol.name, vol.display_name)
 def test_volume_name_property(self):
     vol = self.volume
     nm = utils.random_name()
     vol.display_name = nm
     self.assertEqual(vol.name, vol.display_name)
     nm = utils.random_name()
     vol.name = nm
     self.assertEqual(vol.name, vol.display_name)
Пример #46
0
 def test_client_create_snapshot_not_available(self):
     clt = self.client
     vol = self.volume
     name = utils.random_name()
     description = utils.random_name()
     cli_exc = exc.ClientException(409, "Request conflicts with in-progress")
     vol._snapshot_manager.create = Mock(side_effect=cli_exc)
     self.assertRaises(exc.VolumeNotAvailable, clt.create_snapshot, vol,
             name=name, description=description)
Пример #47
0
 def test_list_user_access(self):
     inst = self.instance
     dbname1 = utils.random_name(ascii_only=True)
     dbname2 = utils.random_name(ascii_only=True)
     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_client_create_snapshot_not_available(self):
     clt = self.client
     vol = self.volume
     name = utils.random_name()
     description = utils.random_name()
     cli_exc = exc.ClientException(409, "Request conflicts with in-progress")
     vol._snapshot_manager.create = Mock(side_effect=cli_exc)
     self.assertRaises(exc.VolumeNotAvailable, clt.create_snapshot, vol,
             name=name, description=description)
Пример #49
0
 def test_get_user(self):
     inst = self.instance
     good_name = utils.random_name()
     bad_name = utils.random_name()
     user = fakes.FakeDatabaseUser(manager=None, info={"name": good_name})
     inst.list_users = Mock(return_value=[user])
     returned = inst.get_user(good_name)
     self.assertEqual(returned, user)
     self.assertRaises(exc.NoSuchDatabaseUser, inst.get_user, bad_name)
 def test_get_user(self):
     inst = self.instance
     good_name = utils.random_name()
     bad_name = utils.random_name()
     user = fakes.FakeDatabaseUser(manager=None, info={"name": good_name})
     inst.list_users = Mock(return_value=[user])
     returned = inst.get_user(good_name)
     self.assertEqual(returned, user)
     self.assertRaises(exc.NoSuchDatabaseUser, inst.get_user, bad_name)
Пример #51
0
 def test_download_object(self):
     cont = self.container
     cont.client.download_object = Mock()
     oname = utils.random_name(ascii_only=True)
     dname = utils.random_name(ascii_only=True)
     stru = random.choice((True, False))
     cont.download_object(oname, dname, structure=stru)
     cont.client.download_object.assert_called_once_with(cont, oname,
             dname, structure=stru)
Пример #52
0
 def test_detach_from_instance(self):
     vol = self.volume
     srv_id = utils.random_name()
     att_id = utils.random_name()
     vol.attachments = [{"server_id": srv_id, "id": att_id}]
     vol._nova_volumes.delete_server_volume = Mock()
     vol.detach()
     vol._nova_volumes.delete_server_volume.assert_called_once_with(
         srv_id, att_id)
Пример #53
0
 def test_get_db_names_fail(self):
     inst = self.instance
     mgr = inst._user_manager
     mgr.instance = inst
     dbname1 = utils.random_name(ascii_only=True)
     dbname2 = utils.random_name(ascii_only=True)
     sav = inst.list_databases
     inst.list_databases = Mock(return_value=((dbname1, dbname2)))
     self.assertRaises(exc.NoSuchDatabase, mgr._get_db_names, "BAD")
     inst.list_databases = sav
Пример #54
0
 def test_client_create_snapshot(self):
     clt = self.client
     vol = self.volume
     name = utils.random_name()
     description = utils.random_name()
     vol.create_snapshot = Mock()
     clt.create_snapshot(vol, name=name, description=description,
             force=True)
     vol.create_snapshot.assert_called_once_with(name=name,
             description=description, force=True)
Пример #55
0
 def test_get_temp_url_windows(self):
     client = self.client
     nm = "%s\\" % utils.random_name(ascii_only=True)
     cname = "\\%s\\" % utils.random_name(ascii_only=True)
     oname = utils.random_name(ascii_only=True)
     client.connection.head_account = Mock()
     client.connection.head_account.return_value = {
             "x-account-meta-temp-url-key": nm, "some-other-key": "no"}
     ret = client.get_temp_url(cname, oname, seconds=120, method="GET")
     self.assertFalse("\\" in ret)
Пример #56
0
 def test_download_object(self):
     cont = self.container
     cont.client.download_object = Mock()
     oname = utils.random_name(ascii_only=True)
     dname = utils.random_name(ascii_only=True)
     stru = random.choice((True, False))
     cont.download_object(oname, dname, structure=stru)
     cont.client.download_object.assert_called_once_with(cont,
                                                         oname,
                                                         dname,
                                                         structure=stru)
Пример #57
0
 def test_get_db_names_not_strict(self):
     inst = self.instance
     mgr = inst._user_manager
     mgr.instance = inst
     dbname1 = utils.random_name(ascii_only=True)
     dbname2 = utils.random_name(ascii_only=True)
     sav = inst.list_databases
     inst.list_databases = Mock(return_value=((dbname1, dbname2)))
     resp = mgr._get_db_names("BAD", strict=False)
     self.assertEqual(resp, ["BAD"])
     inst.list_databases = sav
Пример #58
0
 def test_get_temp_url_unicode(self):
     client = self.client
     nm = utils.random_name(ascii_only=False)
     cname = utils.random_name(ascii_only=True)
     oname = utils.random_name(ascii_only=True)
     client.connection.head_account = Mock()
     client.connection.head_account.return_value = {
             "x-account-meta-temp-url-key": nm, "some-other-key": "no"}
     client.post_account = Mock()
     self.assertRaises(exc.UnicodePathError, client.get_temp_url, cname,
             oname, seconds=120, method="GET")
Пример #59
0
 def test_grant_user_access(self):
     inst = self.instance
     fakeuser = utils.random_name(ascii_only=True)
     dbname1 = utils.random_name(ascii_only=True)
     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
         }]})
Пример #60
0
 def test_create_user_for_instance(self):
     clt = self.client
     inst = self.instance
     sav = inst.create_user
     inst.create_user = Mock()
     nm = utils.random_name()
     pw = utils.random_name()
     ret = clt.create_user(inst, nm, pw, ["db"])
     inst.create_user.assert_called_once_with(name=nm,
                                              password=pw,
                                              database_names=["db"])
     inst.create_user = sav