File: test_user_credential.py

package info (click to toggle)
python-globus-sdk 4.3.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 5,172 kB
  • sloc: python: 35,227; sh: 44; makefile: 35
file content (87 lines) | stat: -rw-r--r-- 3,038 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
import json

from globus_sdk import ConnectorTable, UserCredentialDocument
from globus_sdk.testing import get_last_request, load_response


def test_get_user_credential_list(client):
    metadata = load_response(client.get_user_credential_list).metadata
    res = client.get_user_credential_list()

    assert len(list(res)) == 2
    # sanity check some fields
    assert res["DATA_TYPE"] == "result#1.0.0"
    for item in res:
        assert item["DATA_TYPE"] == "user_credential#1.0.0"
        assert item["id"] in metadata["ids"]
        assert "identity_id" in item
        assert "username" in item


def test_get_user_credential(client):
    metadata = load_response(client.get_user_credential).metadata
    uc_id = metadata["id"]
    res = client.get_user_credential(uc_id)

    assert res["DATA_TYPE"] == "user_credential#1.0.0"
    assert res.full_data["DATA_TYPE"] == "result#1.0.0"
    assert res["id"] == uc_id
    assert res["display_name"] == "posix_credential"

    connector = ConnectorTable.lookup(res["connector_id"])
    assert connector is not None
    assert connector.name == "POSIX"


def test_create_user_credential(client):
    metadata = load_response(client.create_user_credential).metadata
    uc_id = metadata["id"]

    data = UserCredentialDocument(
        storage_gateway_id="82247cc9-3208-4d71-bd7f-1b8798c95e6b",
        identity_id="948847d4-ffcc-4ae0-ba3a-a4c88d480159",
        username="testuser",
        display_name="s3_credential",
        policies={
            "DATA_TYPE": "s3_user_credential_policies#1.0.0",
            "s3_key_id": "foo",
            "s3_secret_key": "bar",
        },
    )

    res = client.create_user_credential(data)
    assert res["DATA_TYPE"] == "user_credential#1.0.0"
    assert res.full_data["DATA_TYPE"] == "result#1.0.0"
    assert res.full_data["message"] == f"Created User Credential {uc_id}"

    req_body = req_body = json.loads(get_last_request().body)
    assert req_body["DATA_TYPE"] == "user_credential#1.0.0"
    assert req_body["policies"]["DATA_TYPE"] == "s3_user_credential_policies#1.0.0"
    for key, value in req_body.items():
        assert data[key] == value


def test_update_user_credential(client):
    metadata = load_response(client.update_user_credential).metadata
    uc_id = metadata["id"]

    data = UserCredentialDocument(
        display_name="updated_posix_credential",
    )

    res = client.update_user_credential(uc_id, data)
    assert res["DATA_TYPE"] == "user_credential#1.0.0"
    assert res.full_data["DATA_TYPE"] == "result#1.0.0"
    assert res.full_data["message"] == f"Updated User Credential {uc_id}"

    req_body = json.loads(get_last_request().body)
    assert req_body["display_name"] == "updated_posix_credential"


def test_delete_user_credential(client):
    metadata = load_response(client.delete_user_credential).metadata
    uc_id = metadata["id"]

    res = client.delete_user_credential(uc_id)
    assert res["DATA_TYPE"] == "result#1.0.0"
    assert res["message"] == f"Deleted User Credential {uc_id}"