|
2 | 2 |
|
3 | 3 | from pytest import fixture |
4 | 4 |
|
5 | | -from simplejustwatchapi.justwatch import details, search |
| 5 | +from simplejustwatchapi.justwatch import details, offers_for_countries, search |
6 | 6 |
|
7 | 7 | JUSTWATCH_GRAPHQL_URL = "https://apis.justwatch.com/graphql" |
| 8 | + |
8 | 9 | SEARCH_INPUT = ("TITLE", "COUNTRY", "LANGUAGE", 5, True) |
9 | 10 | DETAILS_INPUT = ("NODE ID", "COUNTRY", "LANGUAGE", False) |
| 11 | +OFFERS_COUNTRIES_INPUT = {"COUNTRY1", "COUNTRY2", "COUNTRY3"} |
| 12 | +OFFERS_INPUT = ("NODE ID", OFFERS_COUNTRIES_INPUT, "LANGUAGE", True) |
| 13 | + |
10 | 14 | DUMMY_REQUEST = {"dummy": "request"} |
11 | 15 | DUMMY_RESPONSE = {"dummy": "response"} |
12 | 16 | DUMMY_ENTRIES = [MagicMock(), MagicMock(), None] |
@@ -37,3 +41,21 @@ def test_details(requests_mock, parser_mock, httpx_post_mock): |
37 | 41 | requests_mock.assert_called_with(*DETAILS_INPUT) |
38 | 42 | parser_mock.assert_called_with(DUMMY_RESPONSE) |
39 | 43 | assert results == DUMMY_ENTRIES |
| 44 | + |
| 45 | + |
| 46 | +@patch( |
| 47 | + "simplejustwatchapi.justwatch.parse_offers_for_countries_response", return_value=DUMMY_ENTRIES |
| 48 | +) |
| 49 | +@patch( |
| 50 | + "simplejustwatchapi.justwatch.prepare_offers_for_countries_request", return_value=DUMMY_REQUEST |
| 51 | +) |
| 52 | +def test_offers_for_countries(requests_mock, parser_mock, httpx_post_mock): |
| 53 | + results = offers_for_countries(*OFFERS_INPUT) |
| 54 | + requests_mock.assert_called_with(*OFFERS_INPUT) |
| 55 | + parser_mock.assert_called_with(DUMMY_RESPONSE, OFFERS_COUNTRIES_INPUT) |
| 56 | + assert results == DUMMY_ENTRIES |
| 57 | + |
| 58 | + |
| 59 | +def test_offers_for_countries_returns_empty_dict_for_empty_countries_set(): |
| 60 | + results = offers_for_countries("", set(), "", False) |
| 61 | + assert not results |
0 commit comments