From 368f1ace0fc2a2a6076673214f7142fa0e9b4a2a Mon Sep 17 00:00:00 2001 From: Stein Magnus Jodal Date: Sun, 18 Aug 2024 10:25:17 +0200 Subject: [PATCH 1/2] Set __version__ based on package version ...to only have a single point of truth about the package version. --- src/brreg/__init__.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/brreg/__init__.py b/src/brreg/__init__.py index e77f28c..70d6c19 100644 --- a/src/brreg/__init__.py +++ b/src/brreg/__init__.py @@ -1,6 +1,9 @@ """API client for Brønnøysundregistrene's open API.""" -__version__ = "1.0.0a1" +from importlib.metadata import ( # pyright: ignore[reportMissingImports] + PackageNotFoundError, # pyright: ignore[reportUnknownVariableType] + version, # pyright: ignore[reportUnknownVariableType] +) from brreg._exceptions import BrregError, BrregRestError @@ -9,3 +12,8 @@ "BrregError", "BrregRestError", ] + +try: + __version__: str = version(__name__) # pyright: ignore[reportUnknownVariableType] +except PackageNotFoundError: # pragma: no cover + __version__ = "unknown" From 763dffe923e38a2e92ffb7bd9f06341e4e50478a Mon Sep 17 00:00:00 2001 From: Stein Magnus Jodal Date: Sun, 18 Aug 2024 10:29:38 +0200 Subject: [PATCH 2/2] Add python-brreg with version to User-Agent header Fixes #21 --- src/brreg/enhetsregisteret/_client.py | 7 +++++++ tests/enhetsregisteret/test_get_enhet.py | 8 ++++++++ tests/enhetsregisteret/test_get_roller.py | 9 +++++++++ tests/enhetsregisteret/test_get_underenhet.py | 9 +++++++++ tests/enhetsregisteret/test_search_enhet.py | 11 ++++++++++- tests/enhetsregisteret/test_search_underenhet.py | 11 ++++++++++- 6 files changed, 53 insertions(+), 2 deletions(-) diff --git a/src/brreg/enhetsregisteret/_client.py b/src/brreg/enhetsregisteret/_client.py index 0bef300..d27d6bd 100644 --- a/src/brreg/enhetsregisteret/_client.py +++ b/src/brreg/enhetsregisteret/_client.py @@ -4,6 +4,7 @@ import httpx +import brreg from brreg import BrregError, BrregRestError from brreg.enhetsregisteret._pagination import Cursor, EnhetPage, UnderenhetPage from brreg.enhetsregisteret._queries import EnhetQuery, UnderenhetQuery @@ -59,6 +60,12 @@ def open(self) -> None: """ self._client = httpx.Client( base_url="https://data.brreg.no/enhetsregisteret/api", + headers={ + "user-agent": ( + f"python-brreg/{brreg.__version__} " + f"python-httpx/{httpx.__version__}" + ), + }, ) def close(self) -> None: diff --git a/tests/enhetsregisteret/test_get_enhet.py b/tests/enhetsregisteret/test_get_enhet.py index f084b8d..423923c 100644 --- a/tests/enhetsregisteret/test_get_enhet.py +++ b/tests/enhetsregisteret/test_get_enhet.py @@ -5,6 +5,7 @@ import pytest from pytest_httpx import HTTPXMock +import brreg from brreg import BrregError, BrregRestError, enhetsregisteret DATA_DIR = Path(__file__).parent.parent / "data" @@ -21,6 +22,13 @@ def test_get_enhet(httpx_mock: HTTPXMock) -> None: org = enhetsregisteret.Client().get_enhet("112233445") + requests = httpx_mock.get_requests() # pyright: ignore[reportUnknownMemberType] + assert len(requests) == 1 + assert ( + requests[0].headers["user-agent"] + == f"python-brreg/{brreg.__version__} python-httpx/{httpx.__version__}" + ) + assert org is not None assert org.organisasjonsnummer == "112233445" assert org.navn == "SESAM STASJON" diff --git a/tests/enhetsregisteret/test_get_roller.py b/tests/enhetsregisteret/test_get_roller.py index 9b34741..e609379 100644 --- a/tests/enhetsregisteret/test_get_roller.py +++ b/tests/enhetsregisteret/test_get_roller.py @@ -1,9 +1,11 @@ from datetime import date from pathlib import Path +import httpx import pytest from pytest_httpx import HTTPXMock +import brreg from brreg import enhetsregisteret DATA_DIR = Path(__file__).parent.parent / "data" @@ -20,6 +22,13 @@ def test_get_roller_with_person(httpx_mock: HTTPXMock) -> None: rollegrupper = enhetsregisteret.Client().get_roller("810004622") + requests = httpx_mock.get_requests() # pyright: ignore[reportUnknownMemberType] + assert len(requests) == 1 + assert ( + requests[0].headers["user-agent"] + == f"python-brreg/{brreg.__version__} python-httpx/{httpx.__version__}" + ) + assert rollegrupper styret = rollegrupper[0] diff --git a/tests/enhetsregisteret/test_get_underenhet.py b/tests/enhetsregisteret/test_get_underenhet.py index 32f7225..0c03c5a 100644 --- a/tests/enhetsregisteret/test_get_underenhet.py +++ b/tests/enhetsregisteret/test_get_underenhet.py @@ -1,9 +1,11 @@ from datetime import date from pathlib import Path +import httpx import pytest from pytest_httpx import HTTPXMock +import brreg from brreg import enhetsregisteret DATA_DIR = Path(__file__).parent.parent / "data" @@ -20,6 +22,13 @@ def test_get_underenhet(httpx_mock: HTTPXMock) -> None: org = enhetsregisteret.Client().get_underenhet("776655441") + requests = httpx_mock.get_requests() # pyright: ignore[reportUnknownMemberType] + assert len(requests) == 1 + assert ( + requests[0].headers["user-agent"] + == f"python-brreg/{brreg.__version__} python-httpx/{httpx.__version__}" + ) + assert org is not None assert org.organisasjonsnummer == "776655441" assert org.navn == "SESAM STASJON" diff --git a/tests/enhetsregisteret/test_search_enhet.py b/tests/enhetsregisteret/test_search_enhet.py index fc57f9f..2f3bca6 100644 --- a/tests/enhetsregisteret/test_search_enhet.py +++ b/tests/enhetsregisteret/test_search_enhet.py @@ -1,8 +1,10 @@ from datetime import date from pathlib import Path +import httpx from pytest_httpx import HTTPXMock +import brreg from brreg import enhetsregisteret DATA_DIR = Path(__file__).parent.parent / "data" @@ -52,8 +54,15 @@ def test_search_enhet(httpx_mock: HTTPXMock) -> None: konkurs=False, ), ) - page = next(cursor.pages) + requests = httpx_mock.get_requests() # pyright: ignore[reportUnknownMemberType] + assert len(requests) == 1 + assert ( + requests[0].headers["user-agent"] + == f"python-brreg/{brreg.__version__} python-httpx/{httpx.__version__}" + ) + + page = next(cursor.pages) assert page.page_size == 1 assert page.page_number == 0 assert page.total_elements == 1 diff --git a/tests/enhetsregisteret/test_search_underenhet.py b/tests/enhetsregisteret/test_search_underenhet.py index a571367..8368c2a 100644 --- a/tests/enhetsregisteret/test_search_underenhet.py +++ b/tests/enhetsregisteret/test_search_underenhet.py @@ -1,8 +1,10 @@ from datetime import date from pathlib import Path +import httpx from pytest_httpx import HTTPXMock +import brreg from brreg import enhetsregisteret DATA_DIR = Path(__file__).parent.parent / "data" @@ -47,8 +49,15 @@ def test_search_underenhet(httpx_mock: HTTPXMock) -> None: naeringskode=["90.012"], ), ) - page = next(cursor.pages) + requests = httpx_mock.get_requests() # pyright: ignore[reportUnknownMemberType] + assert len(requests) == 1 + assert ( + requests[0].headers["user-agent"] + == f"python-brreg/{brreg.__version__} python-httpx/{httpx.__version__}" + ) + + page = next(cursor.pages) assert page.page_size == 1 assert page.page_number == 0 assert page.total_elements == 1