Skip to content

Commit

Permalink
Refactor common fixtures into 'conftest.py' (#353)
Browse files Browse the repository at this point in the history
* Refactor common fixtures into 'conftest.py'

* run pre-commit

* Fix function sigs
  • Loading branch information
mallport authored Mar 7, 2024
1 parent 1062213 commit da49ee8
Show file tree
Hide file tree
Showing 12 changed files with 208 additions and 267 deletions.
93 changes: 93 additions & 0 deletions tests/conftest.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
from unittest.mock import MagicMock

import pandas as pd
import polars as pl
import pytest


@pytest.fixture
def df_personer() -> pl.DataFrame:
JSON_FILE = "tests/data/personer.json"
return pl.read_json(
JSON_FILE,
schema={
"fnr": pl.String,
"fornavn": pl.String,
"etternavn": pl.String,
"kjonn": pl.String,
"fodselsdato": pl.String,
},
)


@pytest.fixture
def df_personer_pandas() -> pd.DataFrame:
JSON_FILE = "tests/data/personer.json"
return pd.read_json(
JSON_FILE,
dtype={
"fnr": str,
"fornavn": str,
"etternavn": str,
"kjonn": str,
"fodselsdato": str,
},
)


@pytest.fixture()
def personer_hierarch_file_path() -> str:
return "tests/data/personer_hierarchical.json"


@pytest.fixture()
def personer_pseudonymized_hierarch_file_path() -> str:
return "tests/data/personer_hierarchical_pseudonymized.json"


@pytest.fixture
def personer_file_path() -> str:
return "tests/data/personer.json"


@pytest.fixture()
def personer_pseudonymized_file_path() -> str:
return "tests/data/personer_pseudonymized_default_encryption.json"


@pytest.fixture
def df_personer_fnr_daead_encrypted() -> pl.DataFrame:
JSON_FILE = "tests/data/personer_pseudonymized_default_encryption.json"
return pl.read_json(
JSON_FILE,
schema={
"fnr": pl.String,
"fornavn": pl.String,
"etternavn": pl.String,
"kjonn": pl.String,
"fodselsdato": pl.String,
},
)


@pytest.fixture
def df_pandas_personer_fnr_daead_encrypted() -> pd.DataFrame:
JSON_FILE = "tests/data/personer_pseudonymized_default_encryption.json"
return pd.read_json(
JSON_FILE,
dtype={
"fnr": str,
"fornavn": str,
"etternavn": str,
"kjonn": str,
"fodselsdato": str,
},
)


@pytest.fixture()
def single_field_response() -> MagicMock:
mock_response = MagicMock()
mock_response.status_code = 200
mock_response.content = b'{"data": ["Donald","Mikke","Anton"], "datadoc_metadata": {"pseudo_variables": []}, "metrics": [], "logs": []}'
return mock_response
6 changes: 3 additions & 3 deletions tests/data/personer_pseudonymized_default_encryption.csv
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
fnr,fornavn,etternavn,kjonn,fodselsdato
AQ24fCDk0CgMxRkmKt4ok4S/Ora4E06co27zSpHVog==,Donald,Duck,M,020995
AQ24fCDk02LuH0Bob3QmvjG0LG9UXv54mcGjjzrf+g==,Mikke,Mus,M,060970
AQ24fCDZGzjjbKI2B9s0FOsEXSP33OrssHQXonYVcr8=,Anton,Duck,M,180999
AWIRfKLSNfR0ID+wBzogEcUT7JQPayk7Gosij6SXr8s=,Donald,Duck,M,020995
AWIRfKKLagk0LqYCKpiC4xfPkHqIWGVfc3wg5gUwRNE=,Mikke,Mus,M,060970
AWIRfKIzL1T9iZqt+pLjNbHMsLa0aKSszsRrLiLSAAg=,Anton,Duck,M,180999
2 changes: 0 additions & 2 deletions tests/integration/test_integration_deseudonymize.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,6 @@
import polars as pl

from dapla_pseudo import Depseudonymize
from tests.integration.utils import df_personer
from tests.integration.utils import df_personer_fnr_daead_encrypted
from tests.integration.utils import integration_test
from tests.integration.utils import setup

Expand Down
2 changes: 0 additions & 2 deletions tests/integration/test_integration_pseudonymize.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,6 @@
import pytest

from dapla_pseudo import Pseudonymize
from tests.integration.utils import df_personer
from tests.integration.utils import df_personer_fnr_daead_encrypted
from tests.integration.utils import get_calling_function_name
from tests.integration.utils import get_expected_datadoc_metadata_container
from tests.integration.utils import integration_test
Expand Down
5 changes: 0 additions & 5 deletions tests/integration/test_integration_result.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,7 @@
import pytest

from dapla_pseudo import Pseudonymize
from tests.integration.utils import df_pandas_personer_fnr_daead_encrypted
from tests.integration.utils import df_personer
from tests.integration.utils import df_personer_fnr_daead_encrypted
from tests.integration.utils import df_personer_pandas
from tests.integration.utils import integration_test
from tests.integration.utils import personer_file_path
from tests.integration.utils import setup


Expand Down
1 change: 0 additions & 1 deletion tests/integration/test_integration_validate.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
import polars as pl

from dapla_pseudo import Validator
from tests.integration.utils import df_personer
from tests.integration.utils import integration_test
from tests.integration.utils import setup

Expand Down
65 changes: 0 additions & 65 deletions tests/integration/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,71 +11,6 @@
from datadoc_model.model import MetadataContainer


@pytest.fixture
def df_personer() -> pl.DataFrame:
JSON_FILE = "tests/data/personer.json"
return pl.read_json(
JSON_FILE,
schema={
"fnr": pl.String,
"fornavn": pl.String,
"etternavn": pl.String,
"kjonn": pl.String,
"fodselsdato": pl.String,
},
)


@pytest.fixture
def df_personer_pandas() -> pd.DataFrame:
JSON_FILE = "tests/data/personer.json"
return pd.read_json(
JSON_FILE,
dtype={
"fnr": str,
"fornavn": str,
"etternavn": str,
"kjonn": str,
"fodselsdato": str,
},
)


@pytest.fixture
def personer_file_path() -> str:
return "tests/data/personer.json"


@pytest.fixture
def df_personer_fnr_daead_encrypted() -> pl.DataFrame:
JSON_FILE = "tests/data/personer_pseudonymized_default_encryption.json"
return pl.read_json(
JSON_FILE,
schema={
"fnr": pl.String,
"fornavn": pl.String,
"etternavn": pl.String,
"kjonn": pl.String,
"fodselsdato": pl.String,
},
)


@pytest.fixture
def df_pandas_personer_fnr_daead_encrypted() -> pd.DataFrame:
JSON_FILE = "tests/data/personer_pseudonymized_default_encryption.json"
return pd.read_json(
JSON_FILE,
dtype={
"fnr": str,
"fornavn": str,
"etternavn": str,
"kjonn": str,
"fodselsdato": str,
},
)


def integration_test() -> pytest.MarkDecorator:
# Tests annotated with integration_test will run if `INTEGRATION_TESTS` env variable is unset or `TRUE`
# This is used to disable integration tests in the `test.yaml` workflow, since these tests need additional configuration.
Expand Down
Loading

0 comments on commit da49ee8

Please sign in to comment.