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
|
import requests
from uuid import uuid4
import pytest
@pytest.fixture
def args():
return {
"project_id": uuid4().hex,
"subject_id": uuid4().hex,
"object_id": uuid4().hex,
"action_id": uuid4().hex
}
def test_false(args):
url = "http://127.0.0.1:31002/interface/authz/deny/{project_id}" \
"/{subject_id}/{object_id}/{action_id}".format(**args)
data = {'rule': 'start',
'target': '{"target": {"name": "vm0"}, "user_id": "user0"}',
'credentials': 'null'}
req = requests.get(
url, json=data,
headers={'content-type': "application/x-www-form-urlencode"}
)
assert req.status_code == 200
assert "result" in req.json()
assert req.json()["result"] == False
def test_true(args):
url = "http://127.0.0.1:31002/interface/authz/grant/{project_id}" \
"/{subject_id}/{object_id}/{action_id}".format(**args)
data = {'rule': 'start',
'target': '{"target": {"name": "vm0"}, "user_id": "user0"}',
'credentials': 'null'}
req = requests.get(
url, json=data,
headers={'content-type': "application/x-www-form-urlencode"}
)
assert req.status_code == 200
assert "result" in req.json()
assert req.json()["result"] == True
def test_random(args):
url = "http://127.0.0.1:31002/interface/authz/{project_id}" \
"/{subject_id}/{object_id}/{action_id}".format(**args)
data = {'rule': 'start',
'target': '{"target": {"name": "vm0"}, "user_id": "user0"}',
'credentials': 'null'}
req = requests.get(
url, json=data,
headers={'content-type': "application/x-www-form-urlencode"}
)
assert req.status_code == 200
assert "result" in req.json()
assert req.json()["result"] in (False, True)
|