File: test_non_default_mock.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 (44 lines) | stat: -rw-r--r-- 1,255 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
"""
Test that globus_sdk.testing can accept a non-default requests mock
"""

import pytest
import requests
import responses

from globus_sdk import GlobusHTTPResponse, GroupsClient
from globus_sdk.testing import get_last_request, load_response


@pytest.fixture
def custom_requests_mock():
    responses.stop()

    with responses.RequestsMock() as m:
        yield m


def test_get_last_request_on_empty_custom_mock_returns_none(custom_requests_mock):
    assert get_last_request(requests_mock=custom_requests_mock) is None


def test_get_last_request_on_custom_mock_populated_via_manual_load(
    custom_requests_mock,
):
    custom_requests_mock.add("GET", "https://example.org/", json={"foo": "bar"})
    r = requests.get("https://example.org/")
    assert r.json() == {"foo": "bar"}

    req = get_last_request(requests_mock=custom_requests_mock)
    assert req is not None
    assert req.body is None  # "example" assertion about a request


def test_register_client_method_and_call_on_custom_mock(custom_requests_mock):
    gc = GroupsClient()
    loaded = load_response(gc.get_group, requests_mock=custom_requests_mock)

    group_id = loaded.metadata["group_id"]
    data = gc.get_group(group_id)

    assert isinstance(data, GlobusHTTPResponse)