def test_bound_ssh_key_init(self, ssh_key_response): bound_ssh_key = BoundSSHKey(client=mock.MagicMock(), data=ssh_key_response['ssh_key']) assert bound_ssh_key.id == 2323 assert bound_ssh_key.name == "My ssh key" assert bound_ssh_key.fingerprint == "b7:2f:30:a0:2f:6c:58:6c:21:04:58:61:ba:06:3b:2f" assert bound_ssh_key.public_key == "ssh-rsa AAAjjk76kgf...Xt"
class TestSSHKeysClient(object): def test_get_by_id(self, hetzner_client): ssh_key = hetzner_client.ssh_keys.get_by_id(1) assert ssh_key.id == 2323 assert ssh_key.name == "My ssh key" assert ssh_key.fingerprint == "b7:2f:30:a0:2f:6c:58:6c:21:04:58:61:ba:06:3b:2f" assert ssh_key.public_key == "ssh-rsa AAAjjk76kgf...Xt" def test_get_by_name(self, hetzner_client): ssh_key = hetzner_client.ssh_keys.get_by_name("My ssh key") assert ssh_key.id == 2323 assert ssh_key.name == "My ssh key" assert ssh_key.fingerprint == "b7:2f:30:a0:2f:6c:58:6c:21:04:58:61:ba:06:3b:2f" assert ssh_key.public_key == "ssh-rsa AAAjjk76kgf...Xt" def test_get_list(self, hetzner_client): ssh_keys = hetzner_client.ssh_keys.get_all() assert ssh_keys[0].id == 2323 assert ssh_keys[0].name == "My ssh key" assert ssh_keys[ 0].fingerprint == "b7:2f:30:a0:2f:6c:58:6c:21:04:58:61:ba:06:3b:2f" assert ssh_keys[0].public_key == "ssh-rsa AAAjjk76kgf...Xt" def test_create(self, hetzner_client): ssh_key = hetzner_client.ssh_keys.create( name="My ssh key", public_key="ssh-rsa AAAjjk76kgf...Xt") assert ssh_key.id == 2323 assert ssh_key.name == "My ssh key" @pytest.mark.parametrize( "ssh_key", [SSHKey(id=1), BoundSSHKey(mock.MagicMock(), dict(id=1))]) def test_update(self, hetzner_client, ssh_key): ssh_key = hetzner_client.ssh_keys.update(ssh_key, name="New name") assert ssh_key.id == 2323 assert ssh_key.name == "New name" @pytest.mark.parametrize( "ssh_key", [SSHKey(id=1), BoundSSHKey(mock.MagicMock(), dict(id=1))]) def test_delete(self, hetzner_client, ssh_key): delete_success = hetzner_client.ssh_keys.delete(ssh_key) assert delete_success is True
def bound_ssh_key(self, hetzner_client): return BoundSSHKey(client=hetzner_client.ssh_keys, data=dict(id=14))
class TestSSHKeysClient(object): @pytest.fixture() def ssh_keys_client(self): return SSHKeysClient(client=mock.MagicMock()) def test_get_by_id(self, ssh_keys_client, ssh_key_response): ssh_keys_client._client.request.return_value = ssh_key_response ssh_key = ssh_keys_client.get_by_id(1) ssh_keys_client._client.request.assert_called_with(url="/ssh_keys/1", method="GET") assert ssh_key._client is ssh_keys_client assert ssh_key.id == 2323 assert ssh_key.name == "My ssh key" @pytest.mark.parametrize("params", [{ 'name': "My ssh key", "fingerprint": "b7:2f:30:a0:2f:6c:58:6c:21:04:58:61:ba:06:3b:2f", "label_selector": "k==v", 'page': 1, 'per_page': 10 }, { 'name': "" }, {}]) def test_get_list(self, ssh_keys_client, two_ssh_keys_response, params): ssh_keys_client._client.request.return_value = two_ssh_keys_response result = ssh_keys_client.get_list(**params) ssh_keys_client._client.request.assert_called_with(url="/ssh_keys", method="GET", params=params) ssh_keys = result.ssh_keys assert len(ssh_keys) == 2 ssh_keys1 = ssh_keys[0] ssh_keys2 = ssh_keys[1] assert ssh_keys1._client is ssh_keys_client assert ssh_keys1.id == 2323 assert ssh_keys1.name == "SSH-Key" assert ssh_keys2._client is ssh_keys_client assert ssh_keys2.id == 2324 assert ssh_keys2.name == "SSH-Key" @pytest.mark.parametrize("params", [{ 'name': "My ssh key", 'label_selector': "label1" }, {}]) def test_get_all(self, ssh_keys_client, two_ssh_keys_response, params): ssh_keys_client._client.request.return_value = two_ssh_keys_response ssh_keys = ssh_keys_client.get_all(**params) params.update({'page': 1, 'per_page': 50}) ssh_keys_client._client.request.assert_called_with(url="/ssh_keys", method="GET", params=params) assert len(ssh_keys) == 2 ssh_keys1 = ssh_keys[0] ssh_keys2 = ssh_keys[1] assert ssh_keys1._client is ssh_keys_client assert ssh_keys1.id == 2323 assert ssh_keys1.name == "SSH-Key" assert ssh_keys2._client is ssh_keys_client assert ssh_keys2.id == 2324 assert ssh_keys2.name == "SSH-Key" def test_get_by_name(self, ssh_keys_client, one_ssh_keys_response): ssh_keys_client._client.request.return_value = one_ssh_keys_response ssh_keys = ssh_keys_client.get_by_name("SSH-Key") params = {'name': "SSH-Key"} ssh_keys_client._client.request.assert_called_with(url="/ssh_keys", method="GET", params=params) assert ssh_keys._client is ssh_keys_client assert ssh_keys.id == 2323 assert ssh_keys.name == "SSH-Key" def test_get_by_fingerprint(self, ssh_keys_client, one_ssh_keys_response): ssh_keys_client._client.request.return_value = one_ssh_keys_response ssh_keys = ssh_keys_client.get_by_fingerprint( "b7:2f:30:a0:2f:6c:58:6c:21:04:58:61:ba:06:3b:2f") params = { 'fingerprint': "b7:2f:30:a0:2f:6c:58:6c:21:04:58:61:ba:06:3b:2f" } ssh_keys_client._client.request.assert_called_with(url="/ssh_keys", method="GET", params=params) assert ssh_keys._client is ssh_keys_client assert ssh_keys.id == 2323 assert ssh_keys.name == "SSH-Key" def test_create(self, ssh_keys_client, ssh_key_response): ssh_keys_client._client.request.return_value = ssh_key_response ssh_key = ssh_keys_client.create(name="My ssh key", public_key="ssh-rsa AAAjjk76kgf...Xt") ssh_keys_client._client.request.assert_called_with( url="/ssh_keys", method="POST", json={ "name": "My ssh key", "public_key": "ssh-rsa AAAjjk76kgf...Xt" }) assert ssh_key.id == 2323 assert ssh_key.name == "My ssh key" @pytest.mark.parametrize( "ssh_key", [SSHKey(id=1), BoundSSHKey(mock.MagicMock(), dict(id=1))]) def test_update(self, ssh_keys_client, ssh_key, response_update_ssh_key): ssh_keys_client._client.request.return_value = response_update_ssh_key ssh_key = ssh_keys_client.update(ssh_key, name="New name") ssh_keys_client._client.request.assert_called_with( url="/ssh_keys/1", method="PUT", json={"name": "New name"}) assert ssh_key.id == 2323 assert ssh_key.name == "New name" @pytest.mark.parametrize( "ssh_key", [SSHKey(id=1), BoundSSHKey(mock.MagicMock(), dict(id=1))]) def test_delete(self, ssh_keys_client, ssh_key, generic_action): ssh_keys_client._client.request.return_value = generic_action delete_success = ssh_keys_client.delete(ssh_key) ssh_keys_client._client.request.assert_called_with(url="/ssh_keys/1", method="DELETE") assert delete_success is True