forked from pulp/pulpcore
/
test_labels.py
63 lines (55 loc) · 2.34 KB
/
test_labels.py
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
import pytest
@pytest.fixture
def label_access_policy(access_policies_api_client):
orig_access_policy = access_policies_api_client.list(
viewset_name="repositories/file/file"
).results[0]
new_statements = orig_access_policy.statements.copy()
new_statements.append(
{
"action": ["set_label", "delete_label"],
"effect": "allow",
"condition": [
"has_model_or_domain_or_obj_perms:file.modify_filerepository",
"has_model_or_domain_or_obj_perms:file.view_filerepository",
],
"principal": "authenticated",
}
)
access_policies_api_client.partial_update(
orig_access_policy.pulp_href, {"statements": new_statements}
)
yield
if orig_access_policy.customized:
access_policies_api_client.partial_update(
orig_access_policy.pulp_href, {"statements": orig_access_policy.statements}
)
else:
access_policies_api_client.reset(orig_access_policy.pulp_href)
@pytest.mark.parallel
def test_set_label(label_access_policy, file_repository_api_client, file_repository_factory):
repository = file_repository_factory()
assert repository.pulp_labels == {}
file_repository_api_client.set_label(repository.pulp_href, {"label": "a", "value": None})
file_repository_api_client.set_label(repository.pulp_href, {"label": "b", "value": ""})
file_repository_api_client.set_label(repository.pulp_href, {"label": "c", "value": "val1"})
file_repository_api_client.set_label(repository.pulp_href, {"label": "d", "value": "val2"})
file_repository_api_client.set_label(repository.pulp_href, {"label": "e", "value": "val3"})
file_repository_api_client.set_label(repository.pulp_href, {"label": "c", "value": "val4"})
file_repository_api_client.set_label(repository.pulp_href, {"label": "d", "value": None})
repository = file_repository_api_client.read(repository.pulp_href)
assert repository.pulp_labels == {
"a": None,
"b": "",
"c": "val4",
"d": None,
"e": "val3",
}
file_repository_api_client.delete_label(repository.pulp_href, {"label": "e"})
repository = file_repository_api_client.read(repository.pulp_href)
assert repository.pulp_labels == {
"a": None,
"b": "",
"c": "val4",
"d": None,
}