aboutsummaryrefslogtreecommitdiffstats
path: root/moon_manager/tests/unit_python/mock_keystone.py
blob: 73e5681d9cfb22bc0006c15893bb68767ad63c21 (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
# Software Name: MOON

# Version: 5.4

# SPDX-FileCopyrightText: Copyright (c) 2018-2020 Orange and its contributors
# SPDX-License-Identifier: Apache-2.0

# This software is distributed under the 'Apache License 2.0',
# the text of which is available at 'http://www.apache.org/licenses/LICENSE-2.0.txt'
# or see the "LICENSE" file for more details.

import requests_mock


def register_keystone(m):
    m.register_uri(
        'POST', 'http://keystone:5000/v3/auth/tokens',
        headers={'X-Subject-Token': "b34e5a29-5494-4cc5-9356-daa244b8c254"}
    )
    m.register_uri(
        'DELETE', 'http://keystone:5000/v3/auth/tokens',
        headers={'X-Subject-Token': "b34e5a29-5494-4cc5-9356-daa244b8c254"}
    )
    m.register_uri(
        'POST', 'http://keystone:5000/v3/users?name=testuser&domain_id=default',
        json={"users": {}}
    )
    m.register_uri(
        'GET', 'http://keystone:5000/v3/users?name=testuser&domain_id=default',
        json={"users": {}}
    )
    m.register_uri(
        'POST', 'http://keystone:5000/v3/users/',
        json={"users": [{
            "id": "b34e5a29-5494-4cc5-9356-daa244b8c254"
        }]}
    )

    def match_request_text(request):
        # request.url may be None, or '' prevents a TypeError.
        return 'http://keystone:5000/v3/users?name=' in request.url

    m.register_uri(
        requests_mock.ANY, '/v3/users',
        additional_matcher=match_request_text,
        json={"users": [{
            "id": "b34e5a29-5494-4cc5-9356-daa244b8c254"
        }]}
    )
    m.register_uri(
        'POST', 'http://keystone:5000/v3/projects/',
        json={
            "description": "test_project",
            "domain_id": ['domain_id_1'],
            "enabled": True,
            "is_domain": False,
            "name": 'project_1'
        }
    )