From 69b956e20f6e76fb14d1025f1ff2bed8bd121f6a Mon Sep 17 00:00:00 2001 From: Paule <44635962+V3lop5@users.noreply.github.com> Date: Thu, 16 Dec 2021 12:01:07 +0100 Subject: [PATCH 1/3] Fixed db query filter each filter must be provided in a seperated filter() function call. Otherwise the second part doesn't get evaluated. --- ensysmod/crud/base_depends_dataset.py | 4 +++- ensysmod/crud/base_depends_timeseries.py | 3 ++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/ensysmod/crud/base_depends_dataset.py b/ensysmod/crud/base_depends_dataset.py index 6a906b3..298c0c3 100644 --- a/ensysmod/crud/base_depends_dataset.py +++ b/ensysmod/crud/base_depends_dataset.py @@ -1,5 +1,6 @@ from typing import List, Optional, Generic +from sqlalchemy import and_ from sqlalchemy.orm import Session from ensysmod.crud.base import CRUDBase, ModelType, CreateSchemaType, UpdateSchemaType @@ -19,5 +20,6 @@ def get_multi_by_dataset( def get_by_dataset_and_name(self, db: Session, *, dataset_id: int, name: str) -> Optional[ModelType]: return db.query(self.model) \ - .filter(self.model.name == name and self.model.ref_dataset == dataset_id) \ + .filter(self.model.name == name) \ + .filter(self.model.ref_dataset == dataset_id) \ .first() diff --git a/ensysmod/crud/base_depends_timeseries.py b/ensysmod/crud/base_depends_timeseries.py index 3794757..cb77aa7 100644 --- a/ensysmod/crud/base_depends_timeseries.py +++ b/ensysmod/crud/base_depends_timeseries.py @@ -19,7 +19,8 @@ def get_by_component(self, db: Session, *, component_id: int) -> Optional[List[M def get_by_component_and_region(self, db: Session, *, component_id: int, region_id: int) -> Optional[ModelType]: return db.query(self.model) \ - .filter(self.model.ref_component == component_id and self.model.ref_region == region_id) \ + .filter(self.model.ref_component == component_id) \ + .filter(self.model.ref_region == region_id) \ .first() def create(self, db: Session, *, obj_in: CreateSchemaType) -> ModelType: From dc03d2fccb490f48e6e2201073fba2cefee48382 Mon Sep 17 00:00:00 2001 From: Paule <44635962+V3lop5@users.noreply.github.com> Date: Thu, 16 Dec 2021 12:45:49 +0100 Subject: [PATCH 2/3] Changed tests - always use the same dataset --- tests/utils/data_generator/energy_conversions.py | 9 ++++----- tests/utils/data_generator/energy_sinks.py | 9 ++++----- tests/utils/data_generator/energy_sources.py | 6 ++---- tests/utils/data_generator/energy_storages.py | 6 ++---- tests/utils/data_generator/energy_transmissions.py | 6 ++---- 5 files changed, 14 insertions(+), 22 deletions(-) diff --git a/tests/utils/data_generator/energy_conversions.py b/tests/utils/data_generator/energy_conversions.py index f2ba772..57315d1 100644 --- a/tests/utils/data_generator/energy_conversions.py +++ b/tests/utils/data_generator/energy_conversions.py @@ -3,9 +3,8 @@ from ensysmod import crud from ensysmod.model import EnergyConversion from ensysmod.schemas import EnergyConversionCreate -from tests.utils.data_generator.datasets import random_existing_dataset, fixed_existing_dataset -from tests.utils.data_generator.energy_commodities import random_existing_energy_commodity, \ - fixed_existing_energy_commodity +from tests.utils.data_generator.datasets import fixed_existing_dataset +from tests.utils.data_generator.energy_commodities import fixed_existing_energy_commodity from tests.utils.utils import random_lower_string @@ -13,8 +12,8 @@ def random_energy_conversion_create(db: Session) -> EnergyConversionCreate: """ Generate a random EnergyConversionCreate object. """ - dataset = random_existing_dataset(db) - commodity = random_existing_energy_commodity(db) + dataset = fixed_existing_dataset(db) + commodity = fixed_existing_energy_commodity(db) return EnergyConversionCreate( ref_dataset=dataset.id, name=f"EnergyConversion-{dataset.id}-{random_lower_string()}", diff --git a/tests/utils/data_generator/energy_sinks.py b/tests/utils/data_generator/energy_sinks.py index f2440f9..8101441 100644 --- a/tests/utils/data_generator/energy_sinks.py +++ b/tests/utils/data_generator/energy_sinks.py @@ -3,15 +3,14 @@ from ensysmod import crud from ensysmod.model import EnergySink from ensysmod.schemas import EnergySinkCreate -from tests.utils.data_generator.datasets import random_existing_dataset, fixed_existing_dataset -from tests.utils.data_generator.energy_commodities import random_existing_energy_commodity, \ - fixed_existing_energy_commodity +from tests.utils.data_generator.datasets import fixed_existing_dataset +from tests.utils.data_generator.energy_commodities import fixed_existing_energy_commodity from tests.utils.utils import random_lower_string def random_energy_sink_create(db: Session) -> EnergySinkCreate: - dataset = random_existing_dataset(db) - commodity = random_existing_energy_commodity(db) + dataset = fixed_existing_dataset(db) + commodity = fixed_existing_energy_commodity(db) return EnergySinkCreate( ref_dataset=dataset.id, name=f"EnergySink-{dataset.id}-{random_lower_string()}", diff --git a/tests/utils/data_generator/energy_sources.py b/tests/utils/data_generator/energy_sources.py index 84f870e..8c0b760 100644 --- a/tests/utils/data_generator/energy_sources.py +++ b/tests/utils/data_generator/energy_sources.py @@ -4,14 +4,12 @@ from ensysmod.model import EnergySource from ensysmod.schemas import EnergySourceCreate from tests.utils.data_generator import fixed_existing_dataset, fixed_existing_energy_commodity -from tests.utils.data_generator.datasets import random_existing_dataset -from tests.utils.data_generator.energy_commodities import random_existing_energy_commodity from tests.utils.utils import random_lower_string def random_energy_source_create(db: Session) -> EnergySourceCreate: - dataset = random_existing_dataset(db) - commodity = random_existing_energy_commodity(db) + dataset = fixed_existing_dataset(db) + commodity = fixed_existing_energy_commodity(db) return EnergySourceCreate( ref_dataset=dataset.id, name=f"EnergySource-{dataset.id}-{random_lower_string()}", diff --git a/tests/utils/data_generator/energy_storages.py b/tests/utils/data_generator/energy_storages.py index 42213c9..ad110b9 100644 --- a/tests/utils/data_generator/energy_storages.py +++ b/tests/utils/data_generator/energy_storages.py @@ -4,14 +4,12 @@ from ensysmod.model import EnergyStorage from ensysmod.schemas import EnergyStorageCreate from tests.utils.data_generator import fixed_existing_dataset, fixed_existing_energy_commodity -from tests.utils.data_generator.datasets import random_existing_dataset -from tests.utils.data_generator.energy_commodities import random_existing_energy_commodity from tests.utils.utils import random_lower_string def random_energy_storage_create(db: Session) -> EnergyStorageCreate: - dataset = random_existing_dataset(db) - commodity = random_existing_energy_commodity(db) + dataset = fixed_existing_dataset(db) + commodity = fixed_existing_energy_commodity(db) return EnergyStorageCreate( ref_dataset=dataset.id, name=f"EnergyStorage-{dataset.id}-{random_lower_string()}", diff --git a/tests/utils/data_generator/energy_transmissions.py b/tests/utils/data_generator/energy_transmissions.py index 37c073c..d5f9a2f 100644 --- a/tests/utils/data_generator/energy_transmissions.py +++ b/tests/utils/data_generator/energy_transmissions.py @@ -4,14 +4,12 @@ from ensysmod.model import EnergyTransmission from ensysmod.schemas import EnergyTransmissionCreate from tests.utils.data_generator import fixed_existing_dataset, fixed_existing_energy_commodity -from tests.utils.data_generator.datasets import random_existing_dataset -from tests.utils.data_generator.energy_commodities import random_existing_energy_commodity from tests.utils.utils import random_lower_string def random_energy_transmission_create(db: Session) -> EnergyTransmissionCreate: - dataset = random_existing_dataset(db) - commodity = random_existing_energy_commodity(db) + dataset = fixed_existing_dataset(db) + commodity = fixed_existing_energy_commodity(db) return EnergyTransmissionCreate( ref_dataset=dataset.id, name=f"EnergyTransmission-{dataset.id}-{random_lower_string()}", From eff3816ef07aca848b5d9a8e0d0b1f376d5830f1 Mon Sep 17 00:00:00 2001 From: Paule <44635962+V3lop5@users.noreply.github.com> Date: Thu, 16 Dec 2021 12:49:19 +0100 Subject: [PATCH 3/3] Fixed flake8 linting --- ensysmod/crud/base_depends_dataset.py | 1 - 1 file changed, 1 deletion(-) diff --git a/ensysmod/crud/base_depends_dataset.py b/ensysmod/crud/base_depends_dataset.py index 298c0c3..48e760e 100644 --- a/ensysmod/crud/base_depends_dataset.py +++ b/ensysmod/crud/base_depends_dataset.py @@ -1,6 +1,5 @@ from typing import List, Optional, Generic -from sqlalchemy import and_ from sqlalchemy.orm import Session from ensysmod.crud.base import CRUDBase, ModelType, CreateSchemaType, UpdateSchemaType