diff --git a/cerc_persistence/version.py b/cerc_persistence/version.py index 21f3b91..cb185c1 100644 --- a/cerc_persistence/version.py +++ b/cerc_persistence/version.py @@ -1,4 +1,4 @@ """ CERC Persistence version number """ -__version__ = '0.1.0.2' +__version__ = '0.1.0.3' diff --git a/tests/test_db_factory.py b/tests/test_db_factory.py index 6335d21..ccf3577 100644 --- a/tests/test_db_factory.py +++ b/tests/test_db_factory.py @@ -7,21 +7,15 @@ Project Coder Peter Yefi peteryefi@gmail.com import distutils.spawn import glob import json -import logging import os import subprocess import unittest from pathlib import Path from unittest import TestCase -import psycopg2 -import sqlalchemy.exc -from sqlalchemy import create_engine -from sqlalchemy.exc import ProgrammingError -from sqlalchemy_utils import database_exists, create_database, drop_database - - import hub.helpers.constants as cte +import sqlalchemy.exc +from sqlalchemy_utils import database_exists, create_database, drop_database from hub.exports.energy_building_exports_factory import EnergyBuildingsExportsFactory from hub.exports.exports_factory import ExportsFactory from hub.helpers.data.montreal_function_to_hub_function import MontrealFunctionToHubFunction @@ -31,6 +25,8 @@ from hub.imports.geometry_factory import GeometryFactory from hub.imports.results_factory import ResultFactory from hub.imports.usage_factory import UsageFactory from hub.imports.weather_factory import WeatherFactory +from sqlalchemy import create_engine + from cerc_persistence.db_control import DBControl from cerc_persistence.models import City, Application, CityObject, SimulationResults from cerc_persistence.models import User, UserRoles @@ -55,7 +51,7 @@ class Control: self._skip_reason = f'.env file missing at {dotenv_path}' return dotenv_path = str(dotenv_path) - repository = Repository(db_name='test_db', app_env='TEST', dotenv_path=dotenv_path) + repository = Repository(db_name='persistence_test_db', app_env='TEST', dotenv_path=dotenv_path) engine = create_engine(repository.configuration.connection_string) if database_exists(engine.url): drop_database(engine.url) diff --git a/tests/test_db_retrieve.py b/tests/test_db_retrieve.py index 161d766..b07afb1 100644 --- a/tests/test_db_retrieve.py +++ b/tests/test_db_retrieve.py @@ -6,17 +6,17 @@ Project Coder Ruben Sanchez ruben.sanchez@mail.concordia.ca """ import datetime import distutils.spawn -import logging import os import unittest from pathlib import Path from unittest import TestCase -import sqlalchemy.exc from sqlalchemy import create_engine -from sqlalchemy.exc import ProgrammingError +from sqlalchemy_utils import database_exists, create_database, drop_database + from cerc_persistence.db_control import DBControl from cerc_persistence.repository import Repository +from cerc_persistence.models import City, Application, CityObject, SimulationResults, User class Control: @@ -37,18 +37,16 @@ class Control: self._skip_reason = f'.env file missing at {dotenv_path}' return dotenv_path = str(dotenv_path) - repository = Repository(db_name='montreal_retrofit_test', app_env='TEST', dotenv_path=dotenv_path) + repository = Repository(db_name='persistence_test_db', app_env='TEST', dotenv_path=dotenv_path) engine = create_engine(repository.configuration.connection_string) - try: - # delete test database if it exists - connection = engine.connect() - connection.close() - except ProgrammingError: - logging.info('Database does not exist. Nothing to delete') - except sqlalchemy.exc.OperationalError as operational_error: - self._skip_test = True - self._skip_reason = f'{operational_error}' - return + if database_exists(engine.url): + drop_database(engine.url) + create_database(engine.url) + Application.__table__.create(bind=engine, checkfirst=True) + User.__table__.create(bind=engine, checkfirst=True) + City.__table__.create(bind=engine, checkfirst=True) + CityObject.__table__.create(bind=engine, checkfirst=True) + SimulationResults.__table__.create(bind=engine, checkfirst=True) self._database = DBControl( db_name=repository.configuration.db_name, @@ -125,4 +123,7 @@ class TestDBFactory(TestCase): ] } results = control.database.results(control.user_id, control.application_id, request_values) - print(results) + scenarios = ['current status', 'skin retrofit', 'system retrofit and pv', 'skin and system retrofit with pv'] + for key, value in results.items(): + self.assertTrue(key in scenarios, 'Wrong key value') + self.assertEqual(len(value), 0, 'wrong number of results') \ No newline at end of file