From 9ddb35b8d39c525731668ffd7856e9f2f4efd00e Mon Sep 17 00:00:00 2001 From: mprahl Date: Fri, 3 Jan 2020 21:16:17 -0500 Subject: [PATCH] Move models.py to common/models.py and views.py to web/views.py --- README.rst | 2 +- .../builder/KojiContentGenerator.py | 2 +- .../builder/KojiModuleBuilder.py | 5 +- .../builder/MockModuleBuilder.py | 2 +- module_build_service/builder/base.py | 9 ++-- module_build_service/builder/utils.py | 3 +- module_build_service/{ => common}/models.py | 4 +- module_build_service/common/resolve.py | 6 +-- module_build_service/common/utils.py | 2 +- module_build_service/manage.py | 3 +- .../526fb7d445f7_module_buildrequires.py | 2 +- .../migrations/versions/a87264eeb49f_.py | 2 +- module_build_service/resolver/DBResolver.py | 6 +-- module_build_service/resolver/KojiResolver.py | 3 +- module_build_service/resolver/MBSResolver.py | 2 +- module_build_service/route.py | 3 +- module_build_service/scheduler/batches.py | 3 +- module_build_service/scheduler/consumer.py | 5 +- module_build_service/scheduler/db_session.py | 2 +- .../scheduler/default_modules.py | 3 +- module_build_service/scheduler/greenwave.py | 4 +- .../scheduler/handlers/components.py | 3 +- .../scheduler/handlers/greenwave.py | 2 +- .../scheduler/handlers/modules.py | 3 +- .../scheduler/handlers/repos.py | 3 +- .../scheduler/handlers/tags.py | 3 +- module_build_service/scheduler/local.py | 2 +- module_build_service/scheduler/producer.py | 7 +-- module_build_service/scheduler/reuse.py | 3 +- module_build_service/scheduler/submit.py | 3 +- module_build_service/web/mmd_resolver.py | 2 +- module_build_service/web/mse.py | 3 +- module_build_service/web/submit.py | 3 +- module_build_service/web/utils.py | 3 +- module_build_service/web/views.py | 3 +- tests/__init__.py | 20 +++---- tests/conftest.py | 46 ++++++++-------- tests/test_build/test_build.py | 3 +- tests/test_builder/test_base.py | 4 +- tests/test_builder/test_builder_utils.py | 3 +- tests/test_builder/test_koji.py | 52 +++++++++---------- tests/test_builder/test_mock.py | 5 +- .../{ => test_common}/test_models/__init__.py | 0 .../test_models/data/base-runtime.yaml | 0 .../test_models/data/testmodule.yaml | 0 .../test_models/test_models.py | 2 +- tests/test_common/test_monitor.py | 3 +- tests/test_common/test_resolve.py | 3 +- tests/test_common/test_utils.py | 2 +- tests/test_content_generator.py | 3 +- tests/test_logger.py | 3 +- tests/test_manage.py | 5 +- tests/test_resolver/test_db.py | 7 +-- tests/test_resolver/test_koji.py | 2 +- tests/test_resolver/test_local.py | 2 +- tests/test_resolver/test_mbs.py | 10 ++-- tests/test_scheduler/test_batches.py | 8 +-- tests/test_scheduler/test_default_modules.py | 2 +- .../test_scheduler/test_greenwave_handler.py | 2 +- tests/test_scheduler/test_module_init.py | 6 +-- tests/test_scheduler/test_module_wait.py | 2 +- tests/test_scheduler/test_poller.py | 15 +++--- tests/test_scheduler/test_repo_done.py | 20 +++---- tests/test_scheduler/test_reuse.py | 3 +- tests/test_scheduler/test_submit.py | 9 ++-- tests/test_scheduler/test_tag_tagged.py | 28 +++++----- tests/test_views/__init__.py | 0 tests/test_views/client_secrets.json | 13 ----- tests/{ => test_web}/client_secrets.json | 0 tests/test_web/test_submit.py | 2 +- tests/{test_views => test_web}/test_views.py | 2 +- 71 files changed, 216 insertions(+), 187 deletions(-) rename module_build_service/{ => common}/models.py (99%) rename tests/{ => test_common}/test_models/__init__.py (100%) rename tests/{ => test_common}/test_models/data/base-runtime.yaml (100%) rename tests/{ => test_common}/test_models/data/testmodule.yaml (100%) rename tests/{ => test_common}/test_models/test_models.py (98%) delete mode 100644 tests/test_views/__init__.py delete mode 100644 tests/test_views/client_secrets.json rename tests/{ => test_web}/client_secrets.json (100%) rename tests/{test_views => test_web}/test_views.py (99%) diff --git a/README.rst b/README.rst index 9bcab86b..6e3b5983 100644 --- a/README.rst +++ b/README.rst @@ -775,7 +775,7 @@ _`Module Build States` You can see the list of possible states with:: - from module_build_service.models import BUILD_STATES + from module_build_service.common.models import BUILD_STATES print(BUILD_STATES) Here's a description of what each of them means: diff --git a/module_build_service/builder/KojiContentGenerator.py b/module_build_service/builder/KojiContentGenerator.py index 613f9963..ee5aff46 100644 --- a/module_build_service/builder/KojiContentGenerator.py +++ b/module_build_service/builder/KojiContentGenerator.py @@ -54,7 +54,7 @@ class KojiContentGenerator(object): def __init__(self, module, config): """ - :param module: module_build_service.models.ModuleBuild instance. + :param module: module_build_service.common.models.ModuleBuild instance. :param config: module_build_service.common.config.Config instance """ self.owner = module.owner diff --git a/module_build_service/builder/KojiModuleBuilder.py b/module_build_service/builder/KojiModuleBuilder.py index a5911f9a..6b6282a9 100644 --- a/module_build_service/builder/KojiModuleBuilder.py +++ b/module_build_service/builder/KojiModuleBuilder.py @@ -21,8 +21,9 @@ from itertools import chain from OpenSSL.SSL import SysCallError import textwrap -from module_build_service import log, conf, models +from module_build_service import log, conf from module_build_service.builder.utils import execute_cmd, get_rpm_release, validate_koji_tag +from module_build_service.common import models from module_build_service.common.retry import retry from module_build_service.scheduler.db_session import db_session from module_build_service.builder import GenericBuilder @@ -55,7 +56,7 @@ class KojiModuleBuilder(GenericBuilder): """ :param db_session: SQLAlchemy session object. :param owner: a string representing who kicked off the builds - :param module: module_build_service.models.ModuleBuild instance. + :param module: module_build_service.common.models.ModuleBuild instance. :param config: module_build_service.common.config.Config instance :param tag_name: name of tag for given module """ diff --git a/module_build_service/builder/MockModuleBuilder.py b/module_build_service/builder/MockModuleBuilder.py index 1ae943b2..0ad870de 100644 --- a/module_build_service/builder/MockModuleBuilder.py +++ b/module_build_service/builder/MockModuleBuilder.py @@ -13,6 +13,7 @@ import kobo.rpmlib import platform from module_build_service import conf, log, Modulemd +from module_build_service.common import models from module_build_service.common.koji import get_session from module_build_service.common.utils import import_mmd, load_mmd_file, mmd_to_str from module_build_service.builder import GenericBuilder @@ -26,7 +27,6 @@ from module_build_service.builder.utils import ( from module_build_service.scheduler.db_session import db_session from module_build_service.builder.KojiModuleBuilder import KojiModuleBuilder from module_build_service.scheduler import events -from module_build_service import models logging.basicConfig(level=logging.DEBUG) diff --git a/module_build_service/builder/base.py b/module_build_service/builder/base.py index b39c931b..2f9bdce4 100644 --- a/module_build_service/builder/base.py +++ b/module_build_service/builder/base.py @@ -7,9 +7,10 @@ import dogpile.cache from abc import ABCMeta, abstractmethod from requests.exceptions import ConnectionError -from module_build_service import conf, log, models +from module_build_service import conf, log +from module_build_service.common import models +from module_build_service.common.models import BUILD_STATES from module_build_service.common.retry import retry -from module_build_service.models import BUILD_STATES from module_build_service.resolver import GenericResolver @@ -108,7 +109,7 @@ class GenericBuilder(six.with_metaclass(ABCMeta)): """ :param db_session: SQLAlchemy session object. :param owner: a string representing who kicked off the builds - :param module: module_build_service.models.ModuleBuild instance. + :param module: module_build_service.common.models.ModuleBuild instance. :param backend: a string representing backend e.g. 'koji' :param config: instance of module_build_service.common.config.Config @@ -136,7 +137,7 @@ class GenericBuilder(six.with_metaclass(ABCMeta)): and config and connects it to buildroot. :param db_session: SQLAlchemy database session. - :param module: module_build_service.models.ModuleBuild instance. + :param module: module_build_service.common.models.ModuleBuild instance. :param config: module_build_service.common.config.Config instance. :kwarg buildroot_connect: a boolean that determines if the builder should run buildroot_connect on instantiation. diff --git a/module_build_service/builder/utils.py b/module_build_service/builder/utils.py index 7fc18dd6..3583a78c 100644 --- a/module_build_service/builder/utils.py +++ b/module_build_service/builder/utils.py @@ -12,7 +12,8 @@ from multiprocessing.dummy import Pool as ThreadPool import requests -from module_build_service import conf, log, models +from module_build_service import conf, log +from module_build_service.common import models from module_build_service.common.errors import ValidationError, ProgrammingError diff --git a/module_build_service/models.py b/module_build_service/common/models.py similarity index 99% rename from module_build_service/models.py rename to module_build_service/common/models.py index 7024bfae..31759724 100644 --- a/module_build_service/models.py +++ b/module_build_service/common/models.py @@ -675,7 +675,9 @@ class ModuleBuild(MBSBase): self.state = state self.time_modified = now - from module_build_service.monitor import builder_success_counter, builder_failed_counter + from module_build_service.common.monitor import ( + builder_success_counter, builder_failed_counter + ) new_state_name = INVERSE_BUILD_STATES[self.state] if new_state_name in ["done", "failed"]: diff --git a/module_build_service/common/resolve.py b/module_build_service/common/resolve.py index 81fff205..891ed8af 100644 --- a/module_build_service/common/resolve.py +++ b/module_build_service/common/resolve.py @@ -22,7 +22,7 @@ def expand_single_mse_streams( there are multiple streams for some dependency of module and the module name is not defined in `default_streams`, so it is not clear which stream should be used. """ - from module_build_service import models + from module_build_service.common import models default_streams = default_streams or {} # Stream can be prefixed with '-' sign to define that this stream should @@ -79,7 +79,7 @@ def get_compatible_base_module_mmds(resolver, base_mmd, ignore_ns=None): } The input `base_mmd` is always included in the result in "ready" state. """ - from module_build_service import models + from module_build_service.common import models # Add the module to `seen` and `ret`. ret = {"ready": [], "garbage": []} @@ -136,7 +136,7 @@ def get_base_module_mmds(db_session, mmd): :return: Dict with "ready" or "garbage" state name as a key and list of MMDs of base modules buildrequired by `mmd` as a value. """ - from module_build_service import models + from module_build_service.common import models seen = set() ret = {"ready": [], "garbage": []} diff --git a/module_build_service/common/utils.py b/module_build_service/common/utils.py index da053f40..13523646 100644 --- a/module_build_service/common/utils.py +++ b/module_build_service/common/utils.py @@ -93,7 +93,7 @@ def import_mmd(db_session, mmd, check_buildrequires=True): log messages collected during import (list) :rtype: tuple """ - from module_build_service import models + from module_build_service.common import models xmd = mmd.get_xmd() # Set some defaults in xmd["mbs"] if they're not provided by the user diff --git a/module_build_service/manage.py b/module_build_service/manage.py index 15d928c1..542f8249 100755 --- a/module_build_service/manage.py +++ b/module_build_service/manage.py @@ -10,10 +10,11 @@ import getpass import textwrap from werkzeug.datastructures import FileStorage -from module_build_service import app, conf, create_app, db, models +from module_build_service import app, conf, create_app, db from module_build_service.builder.MockModuleBuilder import ( import_builds_from_local_dnf_repos, load_local_builds ) +from module_build_service.common import models from module_build_service.common.utils import load_mmd_file, import_mmd from module_build_service.scheduler.db_session import db_session from module_build_service.common.errors import StreamAmbigous diff --git a/module_build_service/migrations/versions/526fb7d445f7_module_buildrequires.py b/module_build_service/migrations/versions/526fb7d445f7_module_buildrequires.py index 3045777d..2d24dc3c 100644 --- a/module_build_service/migrations/versions/526fb7d445f7_module_buildrequires.py +++ b/module_build_service/migrations/versions/526fb7d445f7_module_buildrequires.py @@ -15,7 +15,7 @@ import sqlalchemy as sa # Data migration imports from module_build_service import Modulemd, conf -from module_build_service.models import ModuleBuild +from module_build_service.common.models import ModuleBuild # Data migration tables mb = sa.Table( diff --git a/module_build_service/migrations/versions/a87264eeb49f_.py b/module_build_service/migrations/versions/a87264eeb49f_.py index 66b67e3a..aae8a9bc 100644 --- a/module_build_service/migrations/versions/a87264eeb49f_.py +++ b/module_build_service/migrations/versions/a87264eeb49f_.py @@ -13,7 +13,7 @@ down_revision = "1817e62719f9" from alembic import op import sqlalchemy as sa from module_build_service import Modulemd -from module_build_service.models import ModuleBuild +from module_build_service.common.models import ModuleBuild modulebuild = sa.Table( diff --git a/module_build_service/resolver/DBResolver.py b/module_build_service/resolver/DBResolver.py index 2372afe8..a84bebce 100644 --- a/module_build_service/resolver/DBResolver.py +++ b/module_build_service/resolver/DBResolver.py @@ -1,13 +1,13 @@ # -*- coding: utf-8 -*- # SPDX-License-Identifier: MIT +import sqlalchemy from sqlalchemy.orm import aliased from module_build_service import log, db -from module_build_service.resolver.base import GenericResolver -from module_build_service import models +from module_build_service.common import models from module_build_service.common.errors import UnprocessableEntity from module_build_service.common.utils import load_mmd -import sqlalchemy +from module_build_service.resolver.base import GenericResolver class DBResolver(GenericResolver): diff --git a/module_build_service/resolver/KojiResolver.py b/module_build_service/resolver/KojiResolver.py index b54a09f5..c58d854b 100644 --- a/module_build_service/resolver/KojiResolver.py +++ b/module_build_service/resolver/KojiResolver.py @@ -2,9 +2,10 @@ # SPDX-License-Identifier: MIT from itertools import groupby +from module_build_service.common import models from module_build_service.common.koji import get_session, koji_multicall_map from module_build_service.resolver.DBResolver import DBResolver -from module_build_service import conf, models, log +from module_build_service import conf, log class KojiResolver(DBResolver): diff --git a/module_build_service/resolver/MBSResolver.py b/module_build_service/resolver/MBSResolver.py index 2aa90363..ad1cc1d9 100644 --- a/module_build_service/resolver/MBSResolver.py +++ b/module_build_service/resolver/MBSResolver.py @@ -6,7 +6,7 @@ import logging import kobo.rpmlib from module_build_service import conf -from module_build_service import models +from module_build_service.common import models from module_build_service.common.utils import load_mmd, import_mmd from module_build_service.common.errors import UnprocessableEntity from module_build_service.resolver.KojiResolver import KojiResolver diff --git a/module_build_service/route.py b/module_build_service/route.py index 5d540770..b0b3e14a 100644 --- a/module_build_service/route.py +++ b/module_build_service/route.py @@ -3,7 +3,8 @@ """ Define the router used to route Celery tasks to queues.""" import inspect -from module_build_service import conf, log, models +from module_build_service import conf, log +from module_build_service.common import models from module_build_service.scheduler.db_session import db_session from module_build_service.scheduler.handlers.greenwave import get_corresponding_module_build diff --git a/module_build_service/scheduler/batches.py b/module_build_service/scheduler/batches.py index 389f3364..72768627 100644 --- a/module_build_service/scheduler/batches.py +++ b/module_build_service/scheduler/batches.py @@ -3,7 +3,8 @@ import threading import concurrent.futures -from module_build_service import conf, log, models +from module_build_service import conf, log +from module_build_service.common import models from module_build_service.scheduler.db_session import db_session from module_build_service.scheduler import events from module_build_service.scheduler.reuse import get_reusable_components, reuse_component diff --git a/module_build_service/scheduler/consumer.py b/module_build_service/scheduler/consumer.py index 9a6b9a59..9732904a 100644 --- a/module_build_service/scheduler/consumer.py +++ b/module_build_service/scheduler/consumer.py @@ -21,11 +21,12 @@ import sqlalchemy.exc import module_build_service.common.messaging import module_build_service.common.monitor as monitor -from module_build_service import models, log, conf -from module_build_service.scheduler.db_session import db_session +from module_build_service import log, conf +from module_build_service.common import models from module_build_service.common.errors import IgnoreMessage from module_build_service.common.messaging import default_messaging_backend from module_build_service.scheduler import events +from module_build_service.scheduler.db_session import db_session from module_build_service.scheduler.handlers import components from module_build_service.scheduler.handlers import repos from module_build_service.scheduler.handlers import modules diff --git a/module_build_service/scheduler/db_session.py b/module_build_service/scheduler/db_session.py index 127a82e9..d6593367 100644 --- a/module_build_service/scheduler/db_session.py +++ b/module_build_service/scheduler/db_session.py @@ -6,7 +6,7 @@ from sqlalchemy.orm import scoped_session, sessionmaker from sqlalchemy.pool import NullPool from module_build_service import conf -from module_build_service.models import session_before_commit_handlers +from module_build_service.common.models import session_before_commit_handlers __all__ = ("db_session",) diff --git a/module_build_service/scheduler/default_modules.py b/module_build_service/scheduler/default_modules.py index 7faa4d30..c5324c46 100644 --- a/module_build_service/scheduler/default_modules.py +++ b/module_build_service/scheduler/default_modules.py @@ -10,7 +10,8 @@ import kobo.rpmlib import koji import six.moves.xmlrpc_client as xmlrpclib -from module_build_service import conf, log, models, Modulemd, scm +from module_build_service import conf, log, Modulemd, scm +from module_build_service.common import models from module_build_service.common.koji import get_session, koji_retrying_multicall_map from module_build_service.common.resolve import ( expand_single_mse_streams, get_compatible_base_module_mmds diff --git a/module_build_service/scheduler/greenwave.py b/module_build_service/scheduler/greenwave.py index d43c85d8..d4b04e0b 100644 --- a/module_build_service/scheduler/greenwave.py +++ b/module_build_service/scheduler/greenwave.py @@ -77,7 +77,7 @@ class Greenwave(object): """ Query decision to greenwave :param build: build object - :type build: module_build_service.models.ModuleBuild + :type build: module_build_service.common.models.ModuleBuild :param prod_version: The product version string used for querying WaiverDB :type prod_version: str :return: response @@ -133,7 +133,7 @@ class Greenwave(object): """ Query decision to greenwave :param build: build object - :type build: module_build_service.models.ModuleBuild + :type build: module_build_service.common.models.ModuleBuild :return: True if at least one GW response contains policies_satisfied set to true :rtype: bool """ diff --git a/module_build_service/scheduler/handlers/components.py b/module_build_service/scheduler/handlers/components.py index 76619722..2f041145 100644 --- a/module_build_service/scheduler/handlers/components.py +++ b/module_build_service/scheduler/handlers/components.py @@ -5,8 +5,9 @@ import logging import koji -from module_build_service import celery_app, conf, models, log +from module_build_service import celery_app, conf, log from module_build_service.builder import GenericBuilder +from module_build_service.common import models from module_build_service.common.koji import get_session from module_build_service.common.utils import mmd_to_str from module_build_service.scheduler.db_session import db_session diff --git a/module_build_service/scheduler/handlers/greenwave.py b/module_build_service/scheduler/handlers/greenwave.py index e06f110b..d52ec8b4 100644 --- a/module_build_service/scheduler/handlers/greenwave.py +++ b/module_build_service/scheduler/handlers/greenwave.py @@ -2,8 +2,8 @@ # SPDX-License-Identifier: MIT from module_build_service import celery_app, conf, log from module_build_service.common.koji import get_session +from module_build_service.common.models import ModuleBuild, BUILD_STATES from module_build_service.scheduler.db_session import db_session -from module_build_service.models import ModuleBuild, BUILD_STATES from module_build_service.scheduler import events diff --git a/module_build_service/scheduler/handlers/modules.py b/module_build_service/scheduler/handlers/modules.py index 81e849fe..a6e235bf 100644 --- a/module_build_service/scheduler/handlers/modules.py +++ b/module_build_service/scheduler/handlers/modules.py @@ -2,9 +2,10 @@ # SPDX-License-Identifier: MIT """ Handlers for module change events on the message bus. """ -from module_build_service import celery_app, conf, models, log, build_logs +from module_build_service import celery_app, conf, log, build_logs from module_build_service.builder.KojiModuleBuilder import KojiModuleBuilder from module_build_service.builder.utils import get_rpm_release +from module_build_service.common import models from module_build_service.common.utils import mmd_to_str from module_build_service.common.retry import retry import module_build_service.resolver diff --git a/module_build_service/scheduler/handlers/repos.py b/module_build_service/scheduler/handlers/repos.py index bf064c0a..685e936c 100644 --- a/module_build_service/scheduler/handlers/repos.py +++ b/module_build_service/scheduler/handlers/repos.py @@ -4,8 +4,9 @@ import logging from datetime import datetime -from module_build_service import celery_app, conf, models, log +from module_build_service import celery_app, conf, log from module_build_service.builder import GenericBuilder +from module_build_service.common import models from module_build_service.scheduler.batches import start_next_batch_build from module_build_service.scheduler.db_session import db_session from module_build_service.scheduler import events diff --git a/module_build_service/scheduler/handlers/tags.py b/module_build_service/scheduler/handlers/tags.py index aa9b9ca0..05e4ffed 100644 --- a/module_build_service/scheduler/handlers/tags.py +++ b/module_build_service/scheduler/handlers/tags.py @@ -4,7 +4,8 @@ import logging import koji -from module_build_service import celery_app, conf, models, log +from module_build_service import celery_app, conf, log +from module_build_service.common import models from module_build_service.scheduler.db_session import db_session from module_build_service.builder import GenericBuilder from module_build_service.scheduler import events diff --git a/module_build_service/scheduler/local.py b/module_build_service/scheduler/local.py index 3ce32245..677f2e3e 100644 --- a/module_build_service/scheduler/local.py +++ b/module_build_service/scheduler/local.py @@ -2,8 +2,8 @@ # SPDX-License-Identifier: MIT import logging -from module_build_service import models +from module_build_service.common import models from module_build_service.scheduler.db_session import db_session from module_build_service.scheduler.handlers.modules import init as modules_init_handler from module_build_service.scheduler.handlers.modules import wait as modules_wait_handler diff --git a/module_build_service/scheduler/producer.py b/module_build_service/scheduler/producer.py index 8530e8c2..79894bdf 100644 --- a/module_build_service/scheduler/producer.py +++ b/module_build_service/scheduler/producer.py @@ -8,8 +8,9 @@ from sqlalchemy.orm import lazyload, load_only import module_build_service.scheduler import module_build_service.scheduler.consumer -from module_build_service import celery_app, conf, models, log +from module_build_service import celery_app, conf, log from module_build_service.builder import GenericBuilder +from module_build_service.common import models from module_build_service.common.koji import get_session from module_build_service.scheduler.db_session import db_session from module_build_service.scheduler.batches import ( @@ -85,7 +86,7 @@ def nudge_module_builds_in_state(state_name, older_than_minutes): db_session.commit() # Fake a message to kickstart the build anew in the consumer - state = module_build_service.models.BUILD_STATES[state_name] + state = module_build_service.common.models.BUILD_STATES[state_name] handler = ON_MODULE_CHANGE_HANDLERS[state] handler.delay("internal:mbs.module.state.change", build.id, state) @@ -349,7 +350,7 @@ def cancel_stuck_module_builds(): threshold = datetime.utcnow() - timedelta(days=conf.cleanup_stuck_builds_time) states = [ - module_build_service.models.BUILD_STATES[state] + module_build_service.common.models.BUILD_STATES[state] for state in conf.cleanup_stuck_builds_states ] diff --git a/module_build_service/scheduler/reuse.py b/module_build_service/scheduler/reuse.py index a93d14c4..03c3cc4b 100644 --- a/module_build_service/scheduler/reuse.py +++ b/module_build_service/scheduler/reuse.py @@ -2,7 +2,8 @@ # SPDX-License-Identifier: MIT import kobo.rpmlib -from module_build_service import log, models, conf +from module_build_service import log, conf +from module_build_service.common import models from module_build_service.scheduler.db_session import db_session from module_build_service.resolver import GenericResolver from module_build_service.scheduler import events diff --git a/module_build_service/scheduler/submit.py b/module_build_service/scheduler/submit.py index efb72885..d730aa9f 100644 --- a/module_build_service/scheduler/submit.py +++ b/module_build_service/scheduler/submit.py @@ -7,7 +7,8 @@ import os import kobo.rpmlib -from module_build_service import conf, log, models, Modulemd +from module_build_service import conf, log, Modulemd +from module_build_service.common import models from module_build_service.common.submit import fetch_mmd from module_build_service.common.utils import to_text_type from module_build_service.scheduler.db_session import db_session diff --git a/module_build_service/web/mmd_resolver.py b/module_build_service/web/mmd_resolver.py index c425b9f4..4f12134c 100644 --- a/module_build_service/web/mmd_resolver.py +++ b/module_build_service/web/mmd_resolver.py @@ -4,7 +4,7 @@ import collections import itertools import solv from module_build_service import log, conf -from module_build_service.models import ModuleBuild +from module_build_service.common.models import ModuleBuild class MMDResolver(object): diff --git a/module_build_service/web/mse.py b/module_build_service/web/mse.py index edb22de1..89bb9ee9 100644 --- a/module_build_service/web/mse.py +++ b/module_build_service/web/mse.py @@ -1,6 +1,7 @@ # -*- coding: utf-8 -*- # SPDX-License-Identifier: MIT -from module_build_service import log, models, Modulemd, conf +from module_build_service import log, Modulemd, conf +from module_build_service.common import models from module_build_service.common.resolve import expand_single_mse_streams, get_base_module_mmds from module_build_service.common.utils import mmd_to_str from module_build_service.common.errors import StreamAmbigous diff --git a/module_build_service/web/submit.py b/module_build_service/web/submit.py index d61665c3..48c8e744 100644 --- a/module_build_service/web/submit.py +++ b/module_build_service/web/submit.py @@ -10,7 +10,8 @@ import time from gi.repository import GLib import requests -from module_build_service import conf, log, models, Modulemd +from module_build_service import conf, log, Modulemd +from module_build_service.common import models from module_build_service.common.submit import fetch_mmd from module_build_service.common.utils import load_mmd, mmd_to_str, to_text_type from module_build_service.common.errors import Conflict, Forbidden, ValidationError diff --git a/module_build_service/web/utils.py b/module_build_service/web/utils.py index d2a48d93..bca8db6a 100644 --- a/module_build_service/web/utils.py +++ b/module_build_service/web/utils.py @@ -10,7 +10,8 @@ from sqlalchemy.sql.sqltypes import Boolean as sqlalchemy_boolean from sqlalchemy.orm import aliased import sqlalchemy -from module_build_service import models, api_version, conf, db +from module_build_service import api_version, conf, db +from module_build_service.common import models from module_build_service.common.errors import ValidationError, NotFound from module_build_service.scm import scm_url_schemes diff --git a/module_build_service/web/views.py b/module_build_service/web/views.py index c68e58d7..32062970 100644 --- a/module_build_service/web/views.py +++ b/module_build_service/web/views.py @@ -11,7 +11,8 @@ from six import string_types from io import BytesIO from prometheus_client import generate_latest, CONTENT_TYPE_LATEST -from module_build_service import app, conf, log, models, db, version, api_version as max_api_version +from module_build_service import app, conf, log, db, version, api_version as max_api_version +from module_build_service.common import models from module_build_service.common.utils import import_mmd from module_build_service.common.errors import ( ValidationError, Forbidden, NotFound, ProgrammingError diff --git a/tests/__init__.py b/tests/__init__.py index 3a527a75..1207d0a0 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -15,7 +15,7 @@ import module_build_service from module_build_service import db from module_build_service.builder.utils import get_rpm_release from module_build_service.common.utils import mmd_to_str, to_text_type -from module_build_service.models import ( +from module_build_service.common.models import ( ModuleBuild, ModuleArch, ComponentBuild, VirtualStream, BUILD_STATES, ) @@ -113,7 +113,7 @@ def clean_database(add_platform_module=True, add_default_arches=True): db.create_all() if add_default_arches: - arch_obj = module_build_service.models.ModuleArch(name="x86_64") + arch_obj = module_build_service.common.models.ModuleArch(name="x86_64") db.session.add(arch_obj) db.session.commit() @@ -161,7 +161,7 @@ def _populate_data(data_size=10, contexts=False, scratch=False): # like "Object '' is already attached to # session '275' (this is '276')" when add new module build object to passed # session. - arch = db_session.query(module_build_service.models.ModuleArch).get(1) + arch = db_session.query(module_build_service.common.models.ModuleArch).get(1) num_contexts = 2 if contexts else 1 for index in range(data_size): for context in range(num_contexts): @@ -339,7 +339,7 @@ def scheduler_init_data(tangerine_state=None, scratch=False): mmd = load_mmd(read_staged_data("formatted_testmodule")) mmd.get_rpm_component("tangerine").set_buildorder(0) - module_build = module_build_service.models.ModuleBuild( + module_build = module_build_service.common.models.ModuleBuild( name="testmodule", stream="master", version='20170109091357', @@ -364,16 +364,16 @@ def scheduler_init_data(tangerine_state=None, scratch=False): db_session.add(module_build) db_session.commit() - platform_br = module_build_service.models.ModuleBuild.get_by_id(db_session, 1) + platform_br = module_build_service.common.models.ModuleBuild.get_by_id(db_session, 1) module_build.buildrequires.append(platform_br) - arch = db_session.query(module_build_service.models.ModuleArch).get(1) + arch = db_session.query(module_build_service.common.models.ModuleArch).get(1) module_build.arches.append(arch) build_one_component_release = get_rpm_release(db_session, module_build) db_session.add_all([ - module_build_service.models.ComponentBuild( + module_build_service.common.models.ComponentBuild( module_id=module_build.id, package="perl-Tangerine", scmurl="https://src.fedoraproject.org/rpms/perl-Tangerine" @@ -387,7 +387,7 @@ def scheduler_init_data(tangerine_state=None, scratch=False): tagged=True, tagged_in_final=True, ), - module_build_service.models.ComponentBuild( + module_build_service.common.models.ComponentBuild( module_id=module_build.id, package="perl-List-Compare", scmurl="https://src.fedoraproject.org/rpms/perl-List-Compare" @@ -401,7 +401,7 @@ def scheduler_init_data(tangerine_state=None, scratch=False): tagged=True, tagged_in_final=True, ), - module_build_service.models.ComponentBuild( + module_build_service.common.models.ComponentBuild( module_id=module_build.id, package="tangerine", scmurl="https://src.fedoraproject.org/rpms/tangerine" @@ -417,7 +417,7 @@ def scheduler_init_data(tangerine_state=None, scratch=False): tagged=tangerine_state == koji.BUILD_STATES["COMPLETE"], tagged_in_final=tangerine_state == koji.BUILD_STATES["COMPLETE"], ), - module_build_service.models.ComponentBuild( + module_build_service.common.models.ComponentBuild( module_id=module_build.id, package="module-build-macros", scmurl="/tmp/module_build_service-build-macrosqr4AWH/SRPMS/module-build-" diff --git a/tests/conftest.py b/tests/conftest.py index 6bc565a4..f5b9b2e5 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -9,7 +9,7 @@ from datetime import datetime import module_build_service from module_build_service.builder.utils import get_rpm_release from module_build_service.common.utils import load_mmd, mmd_to_str -from module_build_service.models import BUILD_STATES +from module_build_service.common.models import BUILD_STATES from module_build_service.scheduler.db_session import db_session from tests import clean_database, read_staged_data, module_build_from_modulemd @@ -60,7 +60,9 @@ def model_tests_init_data(): """ clean_database() - model_test_data_dir = os.path.join(os.path.dirname(__file__), "test_models", "data") + model_test_data_dir = os.path.join( + os.path.dirname(__file__), "test_common", "test_models", "data" + ) for filename in os.listdir(model_test_data_dir): with open(os.path.join(model_test_data_dir, filename), "r") as f: @@ -77,7 +79,7 @@ def reuse_component_init_data(): mmd = load_mmd(read_staged_data("formatted_testmodule")) - build_one = module_build_service.models.ModuleBuild( + build_one = module_build_service.common.models.ModuleBuild( name="testmodule", stream="master", version='20170109091357', @@ -103,7 +105,7 @@ def reuse_component_init_data(): xmd["mbs"]["commit"] = "ff1ea79fc952143efeed1851aa0aa006559239ba" mmd.set_xmd(xmd) build_one.modulemd = mmd_to_str(mmd) - contexts = module_build_service.models.ModuleBuild.contexts_from_mmd(build_one.modulemd) + contexts = module_build_service.common.models.ModuleBuild.contexts_from_mmd(build_one.modulemd) build_one.build_context = contexts.build_context build_one.build_context_no_bms = contexts.build_context_no_bms @@ -111,14 +113,14 @@ def reuse_component_init_data(): db_session.commit() db_session.refresh(build_one) - platform_br = module_build_service.models.ModuleBuild.get_by_id(db_session, 1) + platform_br = module_build_service.common.models.ModuleBuild.get_by_id(db_session, 1) build_one.buildrequires.append(platform_br) - arch = db_session.query(module_build_service.models.ModuleArch).get(1) + arch = db_session.query(module_build_service.common.models.ModuleArch).get(1) build_one.arches.append(arch) db_session.add_all([ - module_build_service.models.ComponentBuild( + module_build_service.common.models.ComponentBuild( module_id=build_one.id, package="perl-Tangerine", scmurl="https://src.fedoraproject.org/rpms/perl-Tangerine" @@ -132,7 +134,7 @@ def reuse_component_init_data(): tagged=True, tagged_in_final=True, ), - module_build_service.models.ComponentBuild( + module_build_service.common.models.ComponentBuild( module_id=build_one.id, package="perl-List-Compare", scmurl="https://src.fedoraproject.org/rpms/perl-List-Compare" @@ -146,7 +148,7 @@ def reuse_component_init_data(): tagged=True, tagged_in_final=True, ), - module_build_service.models.ComponentBuild( + module_build_service.common.models.ComponentBuild( module_id=build_one.id, package="tangerine", scmurl="https://src.fedoraproject.org/rpms/tangerine" @@ -160,7 +162,7 @@ def reuse_component_init_data(): tagged=True, tagged_in_final=True, ), - module_build_service.models.ComponentBuild( + module_build_service.common.models.ComponentBuild( module_id=build_one.id, package="module-build-macros", scmurl="/tmp/module_build_service-build-macrosqr4AWH/SRPMS/module-build-" @@ -177,7 +179,7 @@ def reuse_component_init_data(): # Commit component builds added to build_one db_session.commit() - build_two = module_build_service.models.ModuleBuild( + build_two = module_build_service.common.models.ModuleBuild( name="testmodule", stream="master", version='20170219191323', @@ -202,7 +204,7 @@ def reuse_component_init_data(): xmd["mbs"]["commit"] = "55f4a0a2e6cc255c88712a905157ab39315b8fd8" mmd.set_xmd(xmd) build_two.modulemd = mmd_to_str(mmd) - contexts = module_build_service.models.ModuleBuild.contexts_from_mmd(build_two.modulemd) + contexts = module_build_service.common.models.ModuleBuild.contexts_from_mmd(build_two.modulemd) build_two.build_context = contexts.build_context build_two.build_context_no_bms = contexts.build_context_no_bms @@ -214,7 +216,7 @@ def reuse_component_init_data(): build_two.buildrequires.append(platform_br) db_session.add_all([ - module_build_service.models.ComponentBuild( + module_build_service.common.models.ComponentBuild( module_id=build_two.id, package="perl-Tangerine", scmurl="https://src.fedoraproject.org/rpms/perl-Tangerine" @@ -223,7 +225,7 @@ def reuse_component_init_data(): batch=2, ref="4ceea43add2366d8b8c5a622a2fb563b625b9abf", ), - module_build_service.models.ComponentBuild( + module_build_service.common.models.ComponentBuild( module_id=build_two.id, package="perl-List-Compare", scmurl="https://src.fedoraproject.org/rpms/perl-List-Compare" @@ -232,7 +234,7 @@ def reuse_component_init_data(): batch=2, ref="76f9d8c8e87eed0aab91034b01d3d5ff6bd5b4cb", ), - module_build_service.models.ComponentBuild( + module_build_service.common.models.ComponentBuild( module_id=build_two.id, package="tangerine", scmurl="https://src.fedoraproject.org/rpms/tangerine" @@ -241,7 +243,7 @@ def reuse_component_init_data(): batch=3, ref="fbed359411a1baa08d4a88e0d12d426fbf8f602c", ), - module_build_service.models.ComponentBuild( + module_build_service.common.models.ComponentBuild( module_id=build_two.id, package="module-build-macros", scmurl="/tmp/module_build_service-build-macrosqr4AWH/SRPMS/module-build-" @@ -269,11 +271,11 @@ def reuse_shared_userspace_init_data(): xmd["mbs"]["commit"] = "55f4a0a2e6cc255c88712a905157ab39315b8fd8" mmd.set_xmd(xmd) - module_build = module_build_service.models.ModuleBuild( + module_build = module_build_service.common.models.ModuleBuild( name=mmd.get_module_name(), stream=mmd.get_stream_name(), version=mmd.get_version(), - build_context=module_build_service.models.ModuleBuild.calculate_build_context( + build_context=module_build_service.common.models.ModuleBuild.calculate_build_context( xmd["mbs"]["buildrequires"] ), runtime_context="50dd3eb5dde600d072e45d4120e1548ce66bc94a", @@ -307,7 +309,7 @@ def reuse_shared_userspace_init_data(): full_url = pkg.get_repository() + "?#" + pkgref module_build.component_builds.append( - module_build_service.models.ComponentBuild( + module_build_service.common.models.ComponentBuild( package=pkg.get_name(), format="rpms", scmurl=full_url, @@ -330,11 +332,11 @@ def reuse_shared_userspace_init_data(): xmd["mbs"]["commit"] = "55f4a0a2e6cc255c88712a905157ab39315b8fd8" mmd2.set_xmd(xmd) - module_build = module_build_service.models.ModuleBuild( + module_build = module_build_service.common.models.ModuleBuild( name=mmd2.get_module_name(), stream=mmd2.get_stream_name(), version=mmd2.get_version(), - build_context=module_build_service.models.ModuleBuild.calculate_build_context( + build_context=module_build_service.common.models.ModuleBuild.calculate_build_context( xmd["mbs"]["buildrequires"] ), runtime_context="50dd3eb5dde600d072e45d4120e1548ce66bc94a", @@ -371,7 +373,7 @@ def reuse_shared_userspace_init_data(): full_url = pkg.get_repository() + "?#" + pkgref module_build.component_builds.append( - module_build_service.models.ComponentBuild( + module_build_service.common.models.ComponentBuild( package=pkg.get_name(), format="rpms", scmurl=full_url, batch=batch, ref=pkgref) ) diff --git a/tests/test_build/test_build.py b/tests/test_build/test_build.py index a065bf89..34763a09 100644 --- a/tests/test_build/test_build.py +++ b/tests/test_build/test_build.py @@ -14,11 +14,12 @@ import moksha.hub import fedmsg from module_build_service.builder.utils import get_rpm_release +from module_build_service.common import models from module_build_service.common.utils import load_mmd, import_mmd import module_build_service.scheduler.consumer import module_build_service.scheduler.handlers.repos from module_build_service.common.errors import Forbidden -from module_build_service import app, models, conf, build_logs, log +from module_build_service import app, conf, build_logs, log from module_build_service.scheduler.db_session import db_session from module_build_service.scheduler import events from module_build_service.scheduler.handlers.tags import tagged as tagged_handler diff --git a/tests/test_builder/test_base.py b/tests/test_builder/test_base.py index f9c06db9..19b4e336 100644 --- a/tests/test_builder/test_base.py +++ b/tests/test_builder/test_base.py @@ -2,7 +2,7 @@ # SPDX-License-Identifier: MIT import mock -import module_build_service.models +import module_build_service.common.models import module_build_service.builder import module_build_service.resolver @@ -28,7 +28,7 @@ class TestGenericBuilder: expected_groups = {"build": [], "srpm-build": []} - module = module_build_service.models.ModuleBuild.get_by_id(db_session, 1) + module = module_build_service.common.models.ModuleBuild.get_by_id(db_session, 1) generic_resolver.create.return_value = resolver # Call default_buildroot_groups, the result should be cached. diff --git a/tests/test_builder/test_builder_utils.py b/tests/test_builder/test_builder_utils.py index f8ab62c7..63883ae0 100644 --- a/tests/test_builder/test_builder_utils.py +++ b/tests/test_builder/test_builder_utils.py @@ -6,8 +6,9 @@ import shutil from mock import call, MagicMock, Mock, patch, PropertyMock import pytest -from module_build_service import conf, models +from module_build_service import conf from module_build_service.builder import utils +from module_build_service.common import models from module_build_service.scheduler.db_session import db_session from module_build_service.common.errors import ProgrammingError, ValidationError from module_build_service.common.utils import load_mmd, import_mmd, mmd_to_str diff --git a/tests/test_builder/test_koji.py b/tests/test_builder/test_koji.py index 4e0d5326..2ae5fe66 100644 --- a/tests/test_builder/test_koji.py +++ b/tests/test_builder/test_koji.py @@ -11,7 +11,7 @@ from mock import patch, MagicMock import pytest import module_build_service.scheduler.handlers.repos -import module_build_service.models +import module_build_service.common.models from module_build_service import conf, Modulemd from module_build_service.common.utils import mmd_to_str from module_build_service.scheduler.db_session import db_session @@ -120,7 +120,7 @@ class TestKojiBuilder: def test_recover_orphaned_artifact_when_tagged(self, mock_get_session): """ Test recover_orphaned_artifact when the artifact is found and tagged in both tags """ - module_build = module_build_service.models.ModuleBuild.get_by_id(db_session, 2) + module_build = module_build_service.common.models.ModuleBuild.get_by_id(db_session, 2) builder = FakeKojiModuleBuilder( db_session=db_session, @@ -138,7 +138,7 @@ class TestKojiBuilder: build_tagged = [{"nvr": "foo-1.0-1.module+e0095747", "task_id": 12345, "build_id": 91}] dest_tagged = [{"nvr": "foo-1.0-1.module+e0095747", "task_id": 12345, "build_id": 91}] builder.koji_session.listTagged.side_effect = [build_tagged, dest_tagged] - module_build = module_build_service.models.ModuleBuild.get_by_id(db_session, 4) + module_build = module_build_service.common.models.ModuleBuild.get_by_id(db_session, 4) component_build = module_build.component_builds[0] component_build.task_id = None component_build.state = None @@ -171,7 +171,7 @@ class TestKojiBuilder: def test_recover_orphaned_artifact_when_untagged(self, mock_get_session): """ Tests recover_orphaned_artifact when the build is found but untagged """ - module_build = module_build_service.models.ModuleBuild.get_by_id(db_session, 2) + module_build = module_build_service.common.models.ModuleBuild.get_by_id(db_session, 2) builder = FakeKojiModuleBuilder( db_session=db_session, @@ -193,7 +193,7 @@ class TestKojiBuilder: builder.koji_session.untaggedBuilds.return_value = untagged build_info = {"nvr": "foo-1.0-1.{0}".format(dist_tag), "task_id": 12345, "build_id": 91} builder.koji_session.getBuild.return_value = build_info - module_build = module_build_service.models.ModuleBuild.get_by_id(db_session, 4) + module_build = module_build_service.common.models.ModuleBuild.get_by_id(db_session, 4) component_build = module_build.component_builds[0] component_build.task_id = None component_build.nvr = None @@ -216,7 +216,7 @@ class TestKojiBuilder: def test_recover_orphaned_artifact_when_module_build_macros_untagged(self, mock_get_session): """ Tests recover_orphaned_artifact when module-build-macros is found but untagged """ - module_build = module_build_service.models.ModuleBuild.get_by_id(db_session, 2) + module_build = module_build_service.common.models.ModuleBuild.get_by_id(db_session, 2) builder = FakeKojiModuleBuilder( db_session=db_session, @@ -243,7 +243,7 @@ class TestKojiBuilder: "task_id": 12345, "build_id": 91} builder.koji_session.getBuild.return_value = build_info - module_build = module_build_service.models.ModuleBuild.get_by_id(db_session, 4) + module_build = module_build_service.common.models.ModuleBuild.get_by_id(db_session, 4) component_build = module_build.component_builds[1] component_build.task_id = None component_build.nvr = None @@ -272,7 +272,7 @@ class TestKojiBuilder: def test_recover_orphaned_artifact_when_nothing_exists(self, mock_get_session): """ Test recover_orphaned_artifact when the build is not found """ - module_build = module_build_service.models.ModuleBuild.get_by_id(db_session, 2) + module_build = module_build_service.common.models.ModuleBuild.get_by_id(db_session, 2) builder = FakeKojiModuleBuilder( db_session=db_session, @@ -291,7 +291,7 @@ class TestKojiBuilder: builder.koji_session.listTagged.return_value = tagged untagged = [{"nvr": "foo-1.0-1.nope", "release": "nope"}] builder.koji_session.untaggedBuilds.return_value = untagged - module_build = module_build_service.models.ModuleBuild.get_by_id(db_session, 4) + module_build = module_build_service.common.models.ModuleBuild.get_by_id(db_session, 4) component_build = module_build.component_builds[0] component_build.task_id = None component_build.nvr = None @@ -307,7 +307,7 @@ class TestKojiBuilder: @patch("koji.util") def test_buildroot_ready(self, mocked_kojiutil, mock_get_session): - module_build = module_build_service.models.ModuleBuild.get_by_id(db_session, 2) + module_build = module_build_service.common.models.ModuleBuild.get_by_id(db_session, 2) attrs = {"checkForBuilds.return_value": None, "checkForBuilds.side_effect": IOError} mocked_kojiutil.configure_mock(**attrs) @@ -331,7 +331,7 @@ class TestKojiBuilder: Tests that buildroot_add_artifacts and tag_artifacts do not try to tag already tagged artifacts """ - module_build = module_build_service.models.ModuleBuild.get_by_id(db_session, 2) + module_build = module_build_service.common.models.ModuleBuild.get_by_id(db_session, 2) if blocklist: mmd = module_build.mmd() @@ -388,7 +388,7 @@ class TestKojiBuilder: """ Tests that only tagged artifacts will be untagged """ - module_build = module_build_service.models.ModuleBuild.get_by_id(db_session, 2) + module_build = module_build_service.common.models.ModuleBuild.get_by_id(db_session, 2) mock_session = mock.Mock() mock_session.getTag.side_effect = [ @@ -534,7 +534,7 @@ class TestKojiBuilder: def test_buildroot_connect( self, custom_whitelist, blocklist, repo_include_all, mock_get_session ): - module_build = module_build_service.models.ModuleBuild.get_by_id(db_session, 2) + module_build = module_build_service.common.models.ModuleBuild.get_by_id(db_session, 2) db_session.refresh(module_build) if blocklist: @@ -572,7 +572,7 @@ class TestKojiBuilder: module_build.modulemd = mmd_to_str(mmd) db_session.commit() - module_build.arches.append(module_build_service.models.ModuleArch(name="i686")) + module_build.arches.append(module_build_service.common.models.ModuleArch(name="i686")) db_session.commit() builder = FakeKojiModuleBuilder( @@ -649,7 +649,7 @@ class TestKojiBuilder: @pytest.mark.parametrize("blocklist", [False, True]) def test_buildroot_connect_create_tag(self, blocklist, mock_get_session): - module_build = module_build_service.models.ModuleBuild.get_by_id(db_session, 2) + module_build = module_build_service.common.models.ModuleBuild.get_by_id(db_session, 2) db_session.refresh(module_build) if blocklist: @@ -687,7 +687,7 @@ class TestKojiBuilder: @pytest.mark.parametrize("scratch", [False, True]) def test_buildroot_connect_create_target(self, scratch, mock_get_session): - module_build = module_build_service.models.ModuleBuild.get_by_id(db_session, 2) + module_build = module_build_service.common.models.ModuleBuild.get_by_id(db_session, 2) if scratch: module_build.scratch = scratch @@ -759,7 +759,7 @@ class TestKojiBuilder: [], ) - module_build = module_build_service.models.ModuleBuild.get_by_id(db_session, 2) + module_build = module_build_service.common.models.ModuleBuild.get_by_id(db_session, 2) # Module builds generated by init_data uses generic modulemd file and # the module's name/stream/version/context does not have to match it. @@ -858,8 +858,8 @@ class TestKojiBuilder: }, ], ) - current_module = module_build_service.models.ModuleBuild.get_by_id(db_session, 3) - with patch.object(module_build_service.models.ModuleBuild, 'log_message'): + current_module = module_build_service.common.models.ModuleBuild.get_by_id(db_session, 3) + with patch.object(module_build_service.common.models.ModuleBuild, 'log_message'): rv = KojiModuleBuilder._get_filtered_rpms_on_self_dep(current_module, br_filtered_rpms) assert set(rv) == set(expected) session.assert_not_called() @@ -869,7 +869,7 @@ class TestKojiBuilder: ) @mock.patch("module_build_service.builder.KojiModuleBuilder.KojiContentGenerator") def test_finalize(self, mock_koji_cg_cls, cg_enabled, cg_devel_enabled, mock_get_session): - module_build = module_build_service.models.ModuleBuild.get_by_id(db_session, 2) + module_build = module_build_service.common.models.ModuleBuild.get_by_id(db_session, 2) db_session.refresh(module_build) module_build.state = 2 db_session.commit() @@ -907,14 +907,14 @@ class TestKojiBuilder: @patch.dict("sys.modules", krbV=MagicMock()) @patch("koji.ClientSession") def test_ensure_builder_use_a_logged_in_koji_session(self, ClientSession): - module_build = module_build_service.models.ModuleBuild.get_by_id(db_session, 2) + module_build = module_build_service.common.models.ModuleBuild.get_by_id(db_session, 2) builder = KojiModuleBuilder(db_session, "owner", module_build, conf, "module-tag", []) builder.koji_session.krb_login.assert_called_once() @patch.dict("sys.modules", krbV=MagicMock()) @patch("koji.ClientSession") def test_get_module_build_arches(self, ClientSession): - module_build = module_build_service.models.ModuleBuild.get_by_id(db_session, 2) + module_build = module_build_service.common.models.ModuleBuild.get_by_id(db_session, 2) arches = "x86_64 i686 ppc64le aarch64 s390x" session = ClientSession.return_value session.getTag.return_value = {"arches": arches} @@ -924,7 +924,7 @@ class TestKojiBuilder: @patch.dict("sys.modules", krbV=MagicMock()) @patch("koji.ClientSession") def test_get_module_build_arches_with_archless_tag(self, ClientSession): - module_build = module_build_service.models.ModuleBuild.get_by_id(db_session, 2) + module_build = module_build_service.common.models.ModuleBuild.get_by_id(db_session, 2) session = ClientSession.return_value session.getTag.return_value = {"arches": ""} ret = KojiModuleBuilder.get_module_build_arches(module_build) @@ -933,7 +933,7 @@ class TestKojiBuilder: @patch.dict("sys.modules", krbV=MagicMock()) @patch("koji.ClientSession") def test_get_module_build_arches_without_tag(self, ClientSession): - module_build = module_build_service.models.ModuleBuild.get_by_id(db_session, 2) + module_build = module_build_service.common.models.ModuleBuild.get_by_id(db_session, 2) module_build.koji_tag = None session = ClientSession.return_value ret = KojiModuleBuilder.get_module_build_arches(module_build) @@ -944,7 +944,7 @@ class TestKojiBuilder: @patch.dict("sys.modules", krbV=MagicMock()) @patch("koji.ClientSession") def test_get_module_build_arches_with_unknown_tag(self, ClientSession): - module_build = module_build_service.models.ModuleBuild.get_by_id(db_session, 2) + module_build = module_build_service.common.models.ModuleBuild.get_by_id(db_session, 2) session = ClientSession.return_value session.getTag.return_value = None with pytest.raises(ValueError, match="Unknown Koji tag .*"): @@ -971,7 +971,7 @@ class TestGetDistTagSRPM: name="testmodule", stream="master", version="1", - context=module_build_service.models.DEFAULT_MODULE_CONTEXT, + context=module_build_service.common.models.DEFAULT_MODULE_CONTEXT, ) self.xmd = { diff --git a/tests/test_builder/test_mock.py b/tests/test_builder/test_mock.py index 0f676fdf..47b999db 100644 --- a/tests/test_builder/test_mock.py +++ b/tests/test_builder/test_mock.py @@ -10,10 +10,11 @@ import koji import mock import pytest -from module_build_service import conf, models +from module_build_service import conf +from module_build_service.common import models from module_build_service.common.utils import load_mmd, mmd_to_str from module_build_service.scheduler.db_session import db_session -from module_build_service.models import ModuleBuild, ComponentBuild +from module_build_service.common.models import ModuleBuild, ComponentBuild from module_build_service.builder.MockModuleBuilder import ( import_fake_base_module, import_builds_from_local_dnf_repos, diff --git a/tests/test_models/__init__.py b/tests/test_common/test_models/__init__.py similarity index 100% rename from tests/test_models/__init__.py rename to tests/test_common/test_models/__init__.py diff --git a/tests/test_models/data/base-runtime.yaml b/tests/test_common/test_models/data/base-runtime.yaml similarity index 100% rename from tests/test_models/data/base-runtime.yaml rename to tests/test_common/test_models/data/base-runtime.yaml diff --git a/tests/test_models/data/testmodule.yaml b/tests/test_common/test_models/data/testmodule.yaml similarity index 100% rename from tests/test_models/data/testmodule.yaml rename to tests/test_common/test_models/data/testmodule.yaml diff --git a/tests/test_models/test_models.py b/tests/test_common/test_models/test_models.py similarity index 98% rename from tests/test_models/test_models.py rename to tests/test_common/test_models/test_models.py index 78e3f3ab..12b3a124 100644 --- a/tests/test_models/test_models.py +++ b/tests/test_common/test_models/test_models.py @@ -4,9 +4,9 @@ import pytest from mock import patch from module_build_service import conf +from module_build_service.common.models import ComponentBuild, ComponentBuildTrace, ModuleBuild from module_build_service.common.utils import load_mmd, mmd_to_str from module_build_service.scheduler.db_session import db_session -from module_build_service.models import ComponentBuild, ComponentBuildTrace, ModuleBuild from tests import init_data as init_data_contexts, clean_database, read_staged_data from tests import make_module_in_db, module_build_from_modulemd diff --git a/tests/test_common/test_monitor.py b/tests/test_common/test_monitor.py index f56a326a..65854862 100644 --- a/tests/test_common/test_monitor.py +++ b/tests/test_common/test_monitor.py @@ -8,7 +8,8 @@ import mock from six.moves import reload_module import module_build_service.common.monitor -from module_build_service import app, conf, models +from module_build_service import app, conf +from module_build_service.common import models from module_build_service.scheduler.db_session import db_session from tests import init_data, make_module_in_db diff --git a/tests/test_common/test_resolve.py b/tests/test_common/test_resolve.py index 35a0d546..81504f82 100644 --- a/tests/test_common/test_resolve.py +++ b/tests/test_common/test_resolve.py @@ -3,9 +3,10 @@ from mock import patch, PropertyMock import pytest +from module_build_service.common import models from module_build_service.common.utils import load_mmd from module_build_service.common.resolve import get_base_module_mmds -from module_build_service import Modulemd, models +from module_build_service import Modulemd from module_build_service.scheduler.db_session import db_session from tests import clean_database, make_module_in_db, init_data, read_staged_data diff --git a/tests/test_common/test_utils.py b/tests/test_common/test_utils.py index 1dcf3660..ed0cb0d5 100644 --- a/tests/test_common/test_utils.py +++ b/tests/test_common/test_utils.py @@ -2,7 +2,7 @@ # SPDX-License-Identifier: MIT import pytest -from module_build_service import models +from module_build_service.common import models from module_build_service.common.utils import import_mmd, load_mmd from module_build_service.scheduler.db_session import db_session from module_build_service.common.errors import UnprocessableEntity diff --git a/tests/test_content_generator.py b/tests/test_content_generator.py index fe29ad6d..6ccf6e7b 100644 --- a/tests/test_content_generator.py +++ b/tests/test_content_generator.py @@ -7,7 +7,8 @@ import json import os from os import path -from module_build_service import models, conf, build_logs, Modulemd +from module_build_service import conf, build_logs, Modulemd +from module_build_service.common import models from module_build_service.common.utils import load_mmd, load_mmd_file, mmd_to_str from module_build_service.scheduler.db_session import db_session diff --git a/tests/test_logger.py b/tests/test_logger.py index 30457a26..1a584b39 100644 --- a/tests/test_logger.py +++ b/tests/test_logger.py @@ -5,7 +5,8 @@ from os import path import shutil import tempfile -from module_build_service import log, models +from module_build_service import log +from module_build_service.common import models from module_build_service.scheduler.db_session import db_session from module_build_service.logger import ModuleBuildLogs from module_build_service.scheduler.consumer import MBSConsumer diff --git a/tests/test_manage.py b/tests/test_manage.py index 26a79ffb..ee00918c 100644 --- a/tests/test_manage.py +++ b/tests/test_manage.py @@ -3,10 +3,11 @@ import pytest from mock import patch -from module_build_service import app, models +from module_build_service import app +from module_build_service.common import models +from module_build_service.common.models import BUILD_STATES, ModuleBuild from module_build_service.scheduler.db_session import db_session from module_build_service.manage import manager_wrapper, retire -from module_build_service.models import BUILD_STATES, ModuleBuild from module_build_service.web.utils import deps_to_dict from tests import clean_database, staged_data_filename diff --git a/tests/test_resolver/test_db.py b/tests/test_resolver/test_db.py index f3ce952f..e93bc9be 100644 --- a/tests/test_resolver/test_db.py +++ b/tests/test_resolver/test_db.py @@ -7,10 +7,11 @@ from mock import patch, PropertyMock import pytest import module_build_service.resolver as mbs_resolver -from module_build_service import conf, models, Modulemd -from module_build_service.common.utils import import_mmd, load_mmd, mmd_to_str -from module_build_service.models import ModuleBuild +from module_build_service import conf, Modulemd +from module_build_service.common import models from module_build_service.common.errors import UnprocessableEntity +from module_build_service.common.models import ModuleBuild +from module_build_service.common.utils import import_mmd, load_mmd, mmd_to_str from module_build_service.scheduler.db_session import db_session from module_build_service.builder.MockModuleBuilder import load_local_builds import tests diff --git a/tests/test_resolver/test_koji.py b/tests/test_resolver/test_koji.py index 14eefe89..7bae5be7 100644 --- a/tests/test_resolver/test_koji.py +++ b/tests/test_resolver/test_koji.py @@ -5,11 +5,11 @@ from mock import patch, MagicMock from datetime import datetime from module_build_service import conf +from module_build_service.common.models import ModuleBuild, BUILD_STATES from module_build_service.common.utils import import_mmd, load_mmd, mmd_to_str import module_build_service.resolver as mbs_resolver import tests from module_build_service.scheduler.db_session import db_session -from module_build_service.models import ModuleBuild, BUILD_STATES @pytest.mark.usefixtures("reuse_component_init_data") diff --git a/tests/test_resolver/test_local.py b/tests/test_resolver/test_local.py index 62e45c1c..784820db 100644 --- a/tests/test_resolver/test_local.py +++ b/tests/test_resolver/test_local.py @@ -7,7 +7,7 @@ from module_build_service import conf from module_build_service.common.utils import import_mmd, load_mmd, mmd_to_str import module_build_service.resolver as mbs_resolver from module_build_service.scheduler.db_session import db_session -from module_build_service.models import ModuleBuild +from module_build_service.common.models import ModuleBuild import tests diff --git a/tests/test_resolver/test_mbs.py b/tests/test_resolver/test_mbs.py index d2f922a5..95e6eac4 100644 --- a/tests/test_resolver/test_mbs.py +++ b/tests/test_resolver/test_mbs.py @@ -7,7 +7,7 @@ from module_build_service.builder.MockModuleBuilder import load_local_builds from module_build_service.common.utils import load_mmd, mmd_to_str import module_build_service.resolver as mbs_resolver from module_build_service.scheduler.db_session import db_session -import module_build_service.models +import module_build_service.common.models import tests @@ -344,7 +344,8 @@ class TestMBSModule: request_session.get.return_value = Mock(ok=True) request_session.get.return_value.json.return_value = {"items": [], "meta": {"next": None}} - platform = db_session.query(module_build_service.models.ModuleBuild).filter_by(id=1).one() + platform = db_session.query( + module_build_service.common.models.ModuleBuild).filter_by(id=1).one() result = resolver.get_buildrequired_modulemds("nodejs", "10", platform.mmd()) assert [] == result @@ -376,7 +377,8 @@ class TestMBSModule: "meta": {"next": None}, } - platform = db_session.query(module_build_service.models.ModuleBuild).filter_by(id=1).one() + platform = db_session.query( + module_build_service.common.models.ModuleBuild).filter_by(id=1).one() result = resolver.get_buildrequired_modulemds("nodejs", "10", platform.mmd()) assert 1 == len(result) @@ -491,7 +493,7 @@ class TestMBSModule: resolver = mbs_resolver.GenericResolver.create(db_session, conf, backend="mbs") platform = db_session.query( - module_build_service.models.ModuleBuild).filter_by(id=1).one() + module_build_service.common.models.ModuleBuild).filter_by(id=1).one() platform_mmd = platform.mmd() platform_xmd = platform_mmd.get_xmd() platform_xmd["mbs"]["koji_tag_with_modules"] = "module-f29-build" diff --git a/tests/test_scheduler/test_batches.py b/tests/test_scheduler/test_batches.py index 4d8dc5cb..d7130e9c 100644 --- a/tests/test_scheduler/test_batches.py +++ b/tests/test_scheduler/test_batches.py @@ -1,10 +1,12 @@ # -*- coding: utf-8 -*- # SPDX-License-Identifier: MIT -from mock import patch -from module_build_service import models, conf -import mock import koji +from mock import patch +import mock import pytest + +from module_build_service import conf +from module_build_service.common import models from module_build_service.scheduler.db_session import db_session from module_build_service.builder import GenericBuilder from module_build_service.builder.KojiModuleBuilder import KojiModuleBuilder diff --git a/tests/test_scheduler/test_default_modules.py b/tests/test_scheduler/test_default_modules.py index 76f05505..6937fc1e 100644 --- a/tests/test_scheduler/test_default_modules.py +++ b/tests/test_scheduler/test_default_modules.py @@ -11,7 +11,7 @@ from module_build_service import conf from module_build_service.common.utils import import_mmd, load_mmd, mmd_to_str from module_build_service.scheduler.db_session import db_session from module_build_service.common.errors import UnprocessableEntity -from module_build_service.models import ModuleBuild +from module_build_service.common.models import ModuleBuild from module_build_service.scheduler import default_modules from tests import clean_database, make_module_in_db, read_staged_data diff --git a/tests/test_scheduler/test_greenwave_handler.py b/tests/test_scheduler/test_greenwave_handler.py index 76a83e12..ad35a415 100644 --- a/tests/test_scheduler/test_greenwave_handler.py +++ b/tests/test_scheduler/test_greenwave_handler.py @@ -8,7 +8,7 @@ from sqlalchemy import func import module_build_service.common.config from module_build_service import conf from module_build_service.scheduler.db_session import db_session -from module_build_service.models import BUILD_STATES, ModuleBuild +from module_build_service.common.models import BUILD_STATES, ModuleBuild from module_build_service.scheduler.consumer import MBSConsumer from module_build_service.scheduler.handlers.greenwave import get_corresponding_module_build from module_build_service.scheduler.handlers.greenwave import decision_update diff --git a/tests/test_scheduler/test_module_init.py b/tests/test_scheduler/test_module_init.py index 33ede206..f53ad90e 100644 --- a/tests/test_scheduler/test_module_init.py +++ b/tests/test_scheduler/test_module_init.py @@ -6,11 +6,11 @@ from mock import patch, PropertyMock from module_build_service.common.utils import load_mmd, mmd_to_str from tests import clean_database, read_staged_data -from tests.test_views.test_views import FakeSCM +from tests.test_web.test_views import FakeSCM import module_build_service.scheduler.handlers.modules from module_build_service import build_logs, conf from module_build_service.scheduler.db_session import db_session -from module_build_service.models import ModuleBuild +from module_build_service.common.models import ModuleBuild class TestModuleInit: @@ -156,7 +156,7 @@ class TestModuleInit: } assert build.mmd().get_xmd()["mbs"]["rpms"] == xmd_rpms - @patch("module_build_service.models.ModuleBuild.from_module_event") + @patch("module_build_service.common.models.ModuleBuild.from_module_event") @patch("module_build_service.scm.SCM") @patch("module_build_service.scheduler.submit.get_build_arches", return_value=["x86_64"]) def test_init_when_get_latest_raises( diff --git a/tests/test_scheduler/test_module_wait.py b/tests/test_scheduler/test_module_wait.py index 6ae8a6a7..bf594634 100644 --- a/tests/test_scheduler/test_module_wait.py +++ b/tests/test_scheduler/test_module_wait.py @@ -10,7 +10,7 @@ from tests import scheduler_init_data import module_build_service.resolver from module_build_service import build_logs, conf, Modulemd from module_build_service.scheduler.db_session import db_session -from module_build_service.models import ComponentBuild, ModuleBuild +from module_build_service.common.models import ComponentBuild, ModuleBuild base_dir = os.path.dirname(os.path.dirname(__file__)) diff --git a/tests/test_scheduler/test_poller.py b/tests/test_scheduler/test_poller.py index e5609f15..c70d3607 100644 --- a/tests/test_scheduler/test_poller.py +++ b/tests/test_scheduler/test_poller.py @@ -1,15 +1,18 @@ # -*- coding: utf-8 -*- # SPDX-License-Identifier: MIT +from datetime import datetime, timedelta import re -import pytest -from mock import call, patch -from module_build_service import models, conf -from tests import clean_database, make_module_in_db -import mock + import koji +import mock +from mock import call, patch +import pytest + +from module_build_service import conf +from module_build_service.common import models from module_build_service.scheduler.db_session import db_session from module_build_service.scheduler import producer -from datetime import datetime, timedelta +from tests import clean_database, make_module_in_db @pytest.mark.usefixtures("reuse_component_init_data") diff --git a/tests/test_scheduler/test_repo_done.py b/tests/test_scheduler/test_repo_done.py index 92bd2892..4f980e9c 100644 --- a/tests/test_scheduler/test_repo_done.py +++ b/tests/test_scheduler/test_repo_done.py @@ -3,15 +3,15 @@ import mock import module_build_service.scheduler.handlers.repos -import module_build_service.models +import module_build_service.common.models from module_build_service.scheduler.db_session import db_session -from module_build_service.models import ComponentBuild +from module_build_service.common.models import ComponentBuild from tests import scheduler_init_data class TestRepoDone: - @mock.patch("module_build_service.models.ModuleBuild.get_by_tag") + @mock.patch("module_build_service.common.models.ModuleBuild.get_by_tag") def test_no_match(self, get_by_tag): """ Test that when a repo msg hits us and we have no match, that we do nothing gracefully. @@ -102,7 +102,7 @@ class TestRepoDone: # Ensure the time_completed is None, so we can test it is set to # some date once the build is finalized. - module_build = module_build_service.models.ModuleBuild.get_by_id(db_session, 2) + module_build = module_build_service.common.models.ModuleBuild.get_by_id(db_session, 2) module_build.time_completed = None db_session.commit() @@ -110,7 +110,7 @@ class TestRepoDone: # Check that the time_completed is set in the time when # finalizer is called. assert succeeded is True - module_build = module_build_service.models.ModuleBuild.get_by_id(db_session, 2) + module_build = module_build_service.common.models.ModuleBuild.get_by_id(db_session, 2) assert module_build.time_completed is not None finalizer.side_effect = mocked_finalizer @@ -167,7 +167,7 @@ class TestRepoDone: ), ) component_build = db_session.query( - module_build_service.models.ComponentBuild + module_build_service.common.models.ComponentBuild ).filter_by(package="tangerine").one() assert component_build.state_reason == "Failed to submit artifact tangerine to Koji" @@ -189,9 +189,9 @@ class TestRepoDone: mock_log_info.assert_called_with( "Ignoring repo regen, because not all components are tagged." ) - module_build = module_build_service.models.ModuleBuild.get_by_id(db_session, 2) + module_build = module_build_service.common.models.ModuleBuild.get_by_id(db_session, 2) # Make sure the module build didn't transition since all the components weren't tagged - assert module_build.state == module_build_service.models.BUILD_STATES["build"] + assert module_build.state == module_build_service.common.models.BUILD_STATES["build"] @mock.patch( "module_build_service.builder.KojiModuleBuilder." @@ -225,5 +225,5 @@ class TestRepoDone: msg_id="some_msg_id", tag_name="module-testmodule-master-20170109091357-7c29193d-build") - module_build = module_build_service.models.ModuleBuild.get_by_id(db_session, 2) - assert module_build.state == module_build_service.models.BUILD_STATES["failed"] + module_build = module_build_service.common.models.ModuleBuild.get_by_id(db_session, 2) + assert module_build.state == module_build_service.common.models.BUILD_STATES["failed"] diff --git a/tests/test_scheduler/test_reuse.py b/tests/test_scheduler/test_reuse.py index 4556d075..0a5776e3 100644 --- a/tests/test_scheduler/test_reuse.py +++ b/tests/test_scheduler/test_reuse.py @@ -4,7 +4,8 @@ import mock import pytest from sqlalchemy.orm.session import make_transient -from module_build_service import models, Modulemd +from module_build_service import Modulemd +from module_build_service.common import models from module_build_service.common.utils import import_mmd, load_mmd, mmd_to_str from module_build_service.scheduler.db_session import db_session from module_build_service.scheduler.reuse import get_reusable_component, get_reusable_module diff --git a/tests/test_scheduler/test_submit.py b/tests/test_scheduler/test_submit.py index 97feca4a..18957f61 100644 --- a/tests/test_scheduler/test_submit.py +++ b/tests/test_scheduler/test_submit.py @@ -8,7 +8,8 @@ import pytest from module_build_service.common.utils import load_mmd, load_mmd_file, mmd_to_str from module_build_service.scheduler.db_session import db_session import module_build_service.scm -from module_build_service import app, models, conf +from module_build_service import app, conf +from module_build_service.common import models from module_build_service.common.errors import UnprocessableEntity import module_build_service.scheduler.handlers.components from module_build_service.scheduler.submit import ( @@ -157,7 +158,7 @@ class TestSubmit: mmd = load_mmd(read_staged_data("testmodule")) mmd = mmd.copy("testmodule-variant", "master") - module_build = module_build_service.models.ModuleBuild() + module_build = module_build_service.common.models.ModuleBuild() module_build.name = "testmodule-variant" module_build.stream = "master" module_build.version = 20170109091357 @@ -203,7 +204,7 @@ class TestSubmit: # Set the module name and stream mmd = mmd.copy("testmodule", "master") - module_build = module_build_service.models.ModuleBuild() + module_build = module_build_service.common.models.ModuleBuild() module_build.name = "testmodule" module_build.stream = "master" module_build.version = 20170109091357 @@ -249,7 +250,7 @@ class TestSubmit: # Set the module name and stream mmd = original_mmd.copy("testmodule", "master") - module_build = module_build_service.models.ModuleBuild() + module_build = module_build_service.common.models.ModuleBuild() module_build.name = "testmodule" module_build.stream = "master" module_build.version = 20170109091357 diff --git a/tests/test_scheduler/test_tag_tagged.py b/tests/test_scheduler/test_tag_tagged.py index 0227ff89..992edd8e 100644 --- a/tests/test_scheduler/test_tag_tagged.py +++ b/tests/test_scheduler/test_tag_tagged.py @@ -7,7 +7,7 @@ from mock import patch import module_build_service.scheduler.handlers.repos import module_build_service.scheduler.handlers.tags -import module_build_service.models +import module_build_service.common.models from module_build_service.scheduler.db_session import db_session @@ -17,7 +17,7 @@ import koji @pytest.mark.usefixtures("reuse_component_init_data") class TestTagTagged: - @mock.patch("module_build_service.models.ModuleBuild.get_by_tag") + @mock.patch("module_build_service.common.models.ModuleBuild.get_by_tag") def test_no_matching_module(self, get_by_tag): """ Test that when a tag msg hits us and we have no match, that we do nothing gracefully. @@ -62,7 +62,7 @@ class TestTagTagged: } create_builder.return_value = builder - module_build = module_build_service.models.ModuleBuild.get_by_id(db_session, 3) + module_build = module_build_service.common.models.ModuleBuild.get_by_id(db_session, 3) # Set previous components as COMPLETE and tagged. module_build.batch = 1 @@ -153,9 +153,9 @@ class TestTagTagged: } create_builder.return_value = builder - module_build = module_build_service.models.ModuleBuild.get_by_id(db_session, 3) + module_build = module_build_service.common.models.ModuleBuild.get_by_id(db_session, 3) module_build.batch = 2 - component = db_session.query(module_build_service.models.ComponentBuild).filter_by( + component = db_session.query(module_build_service.common.models.ComponentBuild).filter_by( package="perl-Tangerine", module_id=module_build.id).one() component.state = koji.BUILD_STATES["BUILDING"] component.nvr = "perl-Tangerine-0.23-1.module+0+d027b723" @@ -203,7 +203,7 @@ class TestTagTagged: } create_builder.return_value = builder - module_build = module_build_service.models.ModuleBuild.get_by_id(db_session, 3) + module_build = module_build_service.common.models.ModuleBuild.get_by_id(db_session, 3) # Set previous components as COMPLETE and tagged. module_build.batch = 1 @@ -214,12 +214,12 @@ class TestTagTagged: module_build.batch = 2 - component = db_session.query(module_build_service.models.ComponentBuild).filter_by( + component = db_session.query(module_build_service.common.models.ComponentBuild).filter_by( package="perl-Tangerine", module_id=module_build.id).one() component.state = koji.BUILD_STATES["FAILED"] component.nvr = "perl-Tangerine-0.23-1.module+0+d027b723" - component = db_session.query(module_build_service.models.ComponentBuild).filter_by( + component = db_session.query(module_build_service.common.models.ComponentBuild).filter_by( package="perl-List-Compare", module_id=module_build.id).one() component.state = koji.BUILD_STATES["COMPLETE"] component.nvr = "perl-List-Compare-0.53-5.module+0+d027b723" @@ -279,10 +279,10 @@ class TestTagTagged: } create_builder.return_value = builder - module_build = module_build_service.models.ModuleBuild.get_by_id(db_session, 3) + module_build = module_build_service.common.models.ModuleBuild.get_by_id(db_session, 3) module_build.batch = 2 - mbm = module_build_service.models.ComponentBuild.from_component_name( + mbm = module_build_service.common.models.ComponentBuild.from_component_name( db_session, "module-build-macros", 3) mbm.tagged = False @@ -377,7 +377,7 @@ class TestTagTagged: } create_builder.return_value = builder - module_build = module_build_service.models.ModuleBuild.get_by_id(db_session, 3) + module_build = module_build_service.common.models.ModuleBuild.get_by_id(db_session, 3) # Set previous components as COMPLETE and tagged. module_build.batch = 1 @@ -389,7 +389,7 @@ class TestTagTagged: c.tagged_in_final = True module_build.batch = 2 - component = db_session.query(module_build_service.models.ComponentBuild).filter_by( + component = db_session.query(module_build_service.common.models.ComponentBuild).filter_by( package="perl-Tangerine", module_id=module_build.id).one() component.state = koji.BUILD_STATES["COMPLETE"] component.build_time_only = True @@ -397,7 +397,7 @@ class TestTagTagged: component.tagged_in_final = False component.nvr = "perl-Tangerine-0.23-1.module+0+d027b723" - component = db_session.query(module_build_service.models.ComponentBuild).filter_by( + component = db_session.query(module_build_service.common.models.ComponentBuild).filter_by( package="perl-List-Compare", module_id=module_build.id).one() component.state = koji.BUILD_STATES["COMPLETE"] component.nvr = "perl-List-Compare-0.53-5.module+0+d027b723" @@ -471,7 +471,7 @@ class TestTagTagged: } create_builder.return_value = builder - module_build = module_build_service.models.ModuleBuild.get_by_id(db_session, 3) + module_build = module_build_service.common.models.ModuleBuild.get_by_id(db_session, 3) assert module_build # Set previous components as COMPLETE and tagged. diff --git a/tests/test_views/__init__.py b/tests/test_views/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/tests/test_views/client_secrets.json b/tests/test_views/client_secrets.json deleted file mode 100644 index 8647ed86..00000000 --- a/tests/test_views/client_secrets.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "web": { - "auth_uri": "https://id.stg.fedoraproject.org/openidc/Authorization", - "client_id": "mbs-authorizer", - "client_secret": "notsecret", - "redirect_uris": [ - "http://localhost:13747/" - ], - "token_uri": "https://id.stg.fedoraproject.org/openidc/Token", - "token_introspection_uri": "https://id.stg.fedoraproject.org/openidc/TokenInfo", - "userinfo_uri": "https://id.stg.fedoraproject.org/openidc/UserInfo" - } -} diff --git a/tests/client_secrets.json b/tests/test_web/client_secrets.json similarity index 100% rename from tests/client_secrets.json rename to tests/test_web/client_secrets.json diff --git a/tests/test_web/test_submit.py b/tests/test_web/test_submit.py index 7d566d72..65dd80e3 100644 --- a/tests/test_web/test_submit.py +++ b/tests/test_web/test_submit.py @@ -9,7 +9,7 @@ import mock import pytest from werkzeug.datastructures import FileStorage -from module_build_service import models +from module_build_service.common import models from module_build_service.common.utils import mmd_to_str from module_build_service.scheduler.db_session import db_session from module_build_service.common.errors import ValidationError diff --git a/tests/test_views/test_views.py b/tests/test_web/test_views.py similarity index 99% rename from tests/test_views/test_views.py rename to tests/test_web/test_views.py index 499a1254..918ee3ef 100644 --- a/tests/test_views/test_views.py +++ b/tests/test_web/test_views.py @@ -31,7 +31,7 @@ from tests import ( from tests.test_scm import base_dir as scm_base_dir from module_build_service.scheduler.db_session import db_session from module_build_service.common.errors import UnprocessableEntity -from module_build_service.models import ModuleBuild, BUILD_STATES, ComponentBuild +from module_build_service.common.models import ModuleBuild, BUILD_STATES, ComponentBuild from module_build_service import app, version import module_build_service.common.config as mbs_config import module_build_service.web.submit