| import os |
| from urllib.error import HTTPError |
|
|
| import pytest |
| from socceraction.data.base import ( |
| _auth_remoteloadjson, |
| _has_auth, |
| _localloadjson, |
| _remoteloadjson, |
| ) |
|
|
|
|
| def test_load_json_from_url() -> None: |
| url = "https://raw.githubusercontent.com/statsbomb/open-data/master/data/events/15946.json" |
| result = _remoteloadjson(url) |
| assert isinstance(result, list) |
| assert isinstance(result[0], dict) |
|
|
|
|
| def test_has_auth() -> None: |
| assert not _has_auth({}) |
| assert not _has_auth({"user": "", "passwd": "test_passwd"}) |
| assert not _has_auth({"user": "test_user"}) |
| assert not _has_auth({"passwd": "test_passwd"}) |
| assert _has_auth({"user": "test_user", "passwd": "test_passwd"}) |
|
|
|
|
| def test_load_json_from_url_with_auth() -> None: |
| |
| user = "test_user" |
| passwd = "test_passwd" |
| url = f"http://httpbin.org/basic-auth/{user}/{passwd}" |
| |
| _auth_remoteloadjson(user, passwd) |
| |
| try: |
| result = _remoteloadjson(url) |
| assert isinstance(result, dict) |
| assert result.get("authenticated") is True |
| except HTTPError as e: |
| if e.code == 504: |
| pytest.skip("httpbin.org is down or too slow") |
|
|
|
|
| def test_load_json_from_file() -> None: |
| data_dir = os.path.join(os.path.dirname(__file__), os.pardir, "datasets", "statsbomb", "raw") |
| result = _localloadjson(os.path.join(data_dir, "events", "15946.json")) |
| assert isinstance(result, list) |
| assert isinstance(result[0], dict) |
|
|