Skip to content

Commit

Permalink
Add value of additional information to validation test
Browse files Browse the repository at this point in the history
  • Loading branch information
Rikuoja committed Jan 30, 2025
1 parent 8110cef commit 02643ef
Show file tree
Hide file tree
Showing 4 changed files with 75 additions and 11 deletions.
49 changes: 48 additions & 1 deletion database/test/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
from zoneinfo import ZoneInfo

import codes
import enums
import models
import psycopg2
import pytest
Expand Down Expand Up @@ -654,6 +655,18 @@ def type_of_main_use_additional_information_instance(session):
session.commit()


@pytest.fixture()
def type_of_proportion_of_intended_use_additional_information_instance(session):
instance = codes.TypeOfAdditionalInformation(
value="kayttotarkoituksenOsuusKerrosalastaK-m2", status="LOCAL"
)
session.add(instance)
session.commit()
yield instance
session.delete(instance)
session.commit()


@pytest.fixture()
def type_of_source_data_instance(session):
instance = codes.TypeOfSourceData(value="test", status="LOCAL")
Expand Down Expand Up @@ -1498,6 +1511,26 @@ def main_use_additional_information_instance(
session.commit()


@pytest.fixture()
def proportion_of_intended_use_additional_information_instance(
session,
type_of_proportion_of_intended_use_additional_information_instance,
empty_value_plan_regulation_instance,
):
instance = models.AdditionalInformation(
plan_regulation=empty_value_plan_regulation_instance,
type_of_additional_information=type_of_proportion_of_intended_use_additional_information_instance,
value_data_type=enums.AttributeValueDataType.POSITIVE_NUMERIC,
numeric_value=2500,
unit="k-m2",
)
session.add(instance)
session.commit()
yield instance
session.delete(instance)
session.commit()


@pytest.fixture
def make_additional_information_instance_for_plan_regulation(session: Session):
created_instances = []
Expand Down Expand Up @@ -1543,8 +1576,10 @@ def complete_test_plan(
verbal_plan_regulation_instance: models.PlanRegulation,
general_plan_regulation_instance: models.PlanRegulation,
plan_proposition_instance: models.PlanProposition,
proportion_of_intended_use_additional_information_instance: models.AdditionalInformation,
plan_theme_instance: codes.PlanTheme,
type_of_main_use_additional_information_instance: codes.TypeOfAdditionalInformation,
type_of_proportion_of_intended_use_additional_information_instance: codes.TypeOfAdditionalInformation,
make_additional_information_instance_for_plan_regulation: Callable[
[models.PlanRegulation, codes.TypeOfAdditionalInformation],
models.AdditionalInformation,
Expand Down Expand Up @@ -1584,6 +1619,10 @@ def complete_test_plan(
type_of_main_use_additional_information_instance,
)
)
# empty value plan regulation may have proportion of intended use
empty_value_plan_regulation_instance.additional_information.append(
proportion_of_intended_use_additional_information_instance
)

numeric_plan_regulation_instance.plan_theme = plan_theme_instance
# allowed area numeric value cannot be used with intended use regulation type
Expand Down Expand Up @@ -2038,7 +2077,15 @@ def desired_plan_dict(
"additionalInformations": [
{
"type": "http://uri.suomi.fi/codelist/rytj/RY_Kaavamaarayksen_Lisatiedonlaji/code/paakayttotarkoitus"
}
},
{
"type": "http://uri.suomi.fi/codelist/rytj/RY_Kaavamaarayksen_Lisatiedonlaji/code/kayttotarkoituksenOsuusKerrosalastaK-m2",
"value": {
"dataType": "PositiveNumeric",
"number": 2500,
"unitOfMeasure": "k-m2",
},
},
],
"planThemes": [
"http://uri.suomi.fi/codelist/rytj/kaavoitusteema/code/01",
Expand Down
10 changes: 8 additions & 2 deletions database/test/test_ryhti_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -417,7 +417,10 @@ def test_get_plan_dictionaries(
deepcompare(
result_plan_dict,
desired_plan_dict,
ignore_order_for_keys=["planRegulationGroupRelations"],
ignore_order_for_keys=[
"planRegulationGroupRelations",
"additionalInformations",
],
)


Expand Down Expand Up @@ -820,7 +823,10 @@ def test_get_plan_matters(
"planMapKey",
"fileKey",
],
ignore_order_for_keys=["planRegulationGroupRelations"],
ignore_order_for_keys=[
"planRegulationGroupRelations",
"additionalInformations",
],
)


Expand Down
15 changes: 12 additions & 3 deletions database/test/test_services.py
Original file line number Diff line number Diff line change
Expand Up @@ -224,12 +224,18 @@ def get_all_plans(
deepcompare(
body["details"][complete_test_plan.id],
desired_plan_dict,
ignore_order_for_keys=["planRegulationGroupRelations"],
ignore_order_for_keys=[
"planRegulationGroupRelations",
"additionalInformations",
],
)
deepcompare(
body["details"][another_test_plan.id],
another_plan_dict,
ignore_order_for_keys=["planRegulationGroupRelations"],
ignore_order_for_keys=[
"planRegulationGroupRelations",
"additionalInformations",
],
)
assert not body["ryhti_responses"]

Expand Down Expand Up @@ -282,7 +288,10 @@ def get_single_plan(
deepcompare(
body["details"][complete_test_plan.id],
desired_plan_dict,
ignore_order_for_keys=["planRegulationGroupRelations"],
ignore_order_for_keys=[
"planRegulationGroupRelations",
"additionalInformations",
],
)
assert not body["ryhti_responses"]

Expand Down
12 changes: 7 additions & 5 deletions database/test/test_triggers.py
Original file line number Diff line number Diff line change
Expand Up @@ -441,11 +441,13 @@ def test_update_lifecycle_status_triggers(
assert plan_instance.general_plan_regulation_groups == [
general_regulation_group_instance
]
assert land_use_area_instance.plan_regulation_groups == [
numeric_plan_regulation_group_instance,
decimal_plan_regulation_group_instance,
plan_regulation_group_instance,
]
assert set(land_use_area_instance.plan_regulation_groups) == set(
[
numeric_plan_regulation_group_instance,
decimal_plan_regulation_group_instance,
plan_regulation_group_instance,
]
)
assert other_area_instance.plan_regulation_groups == [
plan_regulation_group_instance
]
Expand Down

0 comments on commit 02643ef

Please sign in to comment.