X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=tests%2Fconftest.py;h=9d7f136ebfdc92d5ff806a58536b762d28b3e2bf;hb=a413c895f34fd2aa0eaa72254243673ae0477d27;hp=211ad3e0c2f84a4a9e194adb7d23f1331b058c71;hpb=f1946a1e90036bb8a758b49f94ac4d3b40bae66e;p=pti%2Fo2.git diff --git a/tests/conftest.py b/tests/conftest.py index 211ad3e..9d7f136 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -7,14 +7,40 @@ from pathlib import Path import pytest import redis import requests +from flask import Flask +from flask_restx import Api from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker, clear_mappers from tenacity import retry, stop_after_delay +from unittest.mock import MagicMock + +from o2common.config import config from o2ims.adapter.orm import metadata, start_o2ims_mappers -from o2ims.adapter.clients.orm_stx import start_o2ims_stx_mappers -from o2ims import config -from o2ims.domain import stx_object as ocloudModel +# from o2ims.adapter.clients.orm_stx import start_o2ims_stx_mappers + +from o2app.adapter import unit_of_work +from o2ims.views.ocloud_route import configure_namespace + +from o2app.bootstrap import bootstrap + + +@pytest.fixture +def mock_uow(): + session = MagicMock() + uow = unit_of_work.SqlAlchemyUnitOfWork(session_factory=session) + return session, uow + + +@pytest.fixture +def mock_flask_uow(mock_uow): + session, uow = mock_uow + app = Flask(__name__) + app.config["TESTING"] = True + api = Api(app) + bus = bootstrap(False, uow) + configure_namespace(api, bus) + return session, app @pytest.fixture @@ -30,10 +56,34 @@ def sqlite_session_factory(in_memory_sqlite_db): yield sessionmaker(bind=in_memory_sqlite_db) +@pytest.fixture +def sqlite_uow(sqlite_session_factory): + uow = unit_of_work.SqlAlchemyUnitOfWork( + session_factory=sqlite_session_factory) + # with uow: + # start_o2ims_mappers(uow.session.get_bind()) + # uow.commit() + yield uow + # clear_mappers() + with uow: + engine = uow.session.get_bind() + metadata.drop_all(engine) + + +@pytest.fixture +def sqlite_flask_uow(sqlite_uow): + app = Flask(__name__) + app.config["TESTING"] = True + api = Api(app) + bus = bootstrap(False, sqlite_uow) + configure_namespace(api, bus) + yield sqlite_uow, app + + @pytest.fixture def mappers(): start_o2ims_mappers() - start_o2ims_stx_mappers() + # start_o2ims_stx_mappers() yield clear_mappers() @@ -56,7 +106,8 @@ def wait_for_redis_to_come_up(): @pytest.fixture(scope="session") def postgres_db(): - engine = create_engine(config.get_postgres_uri(), isolation_level="SERIALIZABLE") + engine = create_engine(config.get_postgres_uri(), + isolation_level="SERIALIZABLE") wait_for_postgres_to_come_up(engine) metadata.create_all(engine) return engine @@ -72,9 +123,27 @@ def postgres_session(postgres_session_factory): return postgres_session_factory() +@pytest.fixture +def postgres_uow(postgres_session_factory): + uow = unit_of_work.SqlAlchemyUnitOfWork( + session_factory=postgres_session_factory) + yield uow + + +@pytest.fixture +def postgres_flask_uow(postgres_uow): + app = Flask(__name__) + app.config["TESTING"] = True + api = Api(app) + bus = bootstrap(False, postgres_uow) + configure_namespace(api, bus) + yield postgres_uow, app + + @pytest.fixture def restart_api(): - (Path(__file__).parent / "../src/o2ims/entrypoints/flask_application.py").touch() + (Path(__file__).parent / "../src/o2ims/entrypoints/flask_application.py")\ + .touch() time.sleep(0.5) wait_for_webapp_to_come_up()