aboutsummaryrefslogtreecommitdiffstats
path: root/moon_bouchon/tests/test_interface.py
blob: 425ba2e5e45b14e23c353d13f9e60baf7547a3d3 (plain)
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)