diff --git a/docs/CONTRIBUTING.rst b/docs/CONTRIBUTING.rst index 2c026211..94df4c17 100644 --- a/docs/CONTRIBUTING.rst +++ b/docs/CONTRIBUTING.rst @@ -102,7 +102,7 @@ Additionally, the imports should be ordered by standard library, third-party, th import requests import module_build_service.web - from module_build_service.errors import ValidationError + from module_build_service.common.errors import ValidationError Lastly, hanging indentation should be avoided when possible. For example: diff --git a/module_build_service/__init__.py b/module_build_service/__init__.py index c7af0379..69b0d342 100644 --- a/module_build_service/__init__.py +++ b/module_build_service/__init__.py @@ -31,7 +31,7 @@ from gi.repository import Modulemd # noqa from module_build_service.logger import init_logging, ModuleBuildLogs, level_flags, MBSLogger -from module_build_service.errors import ( +from module_build_service.common.errors import ( ValidationError, Unauthorized, UnprocessableEntity, Conflict, NotFound, Forbidden, json_error) from module_build_service.common.config import init_config diff --git a/module_build_service/builder/utils.py b/module_build_service/builder/utils.py index 081b9d5b..7fc18dd6 100644 --- a/module_build_service/builder/utils.py +++ b/module_build_service/builder/utils.py @@ -13,7 +13,7 @@ from multiprocessing.dummy import Pool as ThreadPool import requests from module_build_service import conf, log, models -from module_build_service.errors import ValidationError, ProgrammingError +from module_build_service.common.errors import ValidationError, ProgrammingError logging.basicConfig(level=logging.DEBUG) diff --git a/module_build_service/errors.py b/module_build_service/common/errors.py similarity index 100% rename from module_build_service/errors.py rename to module_build_service/common/errors.py diff --git a/module_build_service/common/koji.py b/module_build_service/common/koji.py index 0c9bbcb9..cf779d93 100644 --- a/module_build_service/common/koji.py +++ b/module_build_service/common/koji.py @@ -9,7 +9,7 @@ import six.moves.xmlrpc_client as xmlrpclib from module_build_service import log from module_build_service.common.retry import retry -from module_build_service.errors import ProgrammingError +from module_build_service.common.errors import ProgrammingError def koji_multicall_map(koji_session, koji_session_fnc, list_of_args=None, list_of_kwargs=None): diff --git a/module_build_service/common/resolve.py b/module_build_service/common/resolve.py index 2436c5f9..81fff205 100644 --- a/module_build_service/common/resolve.py +++ b/module_build_service/common/resolve.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- # SPDX-License-Identifier: MIT from module_build_service import conf -from module_build_service.errors import StreamAmbigous +from module_build_service.common.errors import StreamAmbigous from module_build_service.resolver import GenericResolver diff --git a/module_build_service/common/submit.py b/module_build_service/common/submit.py index ddab5b08..4d128495 100644 --- a/module_build_service/common/submit.py +++ b/module_build_service/common/submit.py @@ -8,7 +8,7 @@ import requests import module_build_service.scm from module_build_service import conf, log from module_build_service.common.utils import load_mmd_file -from module_build_service.errors import ValidationError +from module_build_service.common.errors import ValidationError def _is_eol_in_pdc(name, stream): diff --git a/module_build_service/common/utils.py b/module_build_service/common/utils.py index eb3f9024..da053f40 100644 --- a/module_build_service/common/utils.py +++ b/module_build_service/common/utils.py @@ -8,7 +8,7 @@ from gi.repository.GLib import Error as ModuleMDError from six import string_types, text_type from module_build_service import conf, log, Modulemd -from module_build_service.errors import UnprocessableEntity +from module_build_service.common.errors import UnprocessableEntity def to_text_type(s): diff --git a/module_build_service/manage.py b/module_build_service/manage.py index b352a344..15d928c1 100755 --- a/module_build_service/manage.py +++ b/module_build_service/manage.py @@ -16,7 +16,7 @@ from module_build_service.builder.MockModuleBuilder import ( ) 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.errors import StreamAmbigous +from module_build_service.common.errors import StreamAmbigous import module_build_service.scheduler.consumer import module_build_service.scheduler.local from module_build_service.web.submit import submit_module_build_from_yaml diff --git a/module_build_service/models.py b/module_build_service/models.py index 60ed205f..7024bfae 100644 --- a/module_build_service/models.py +++ b/module_build_service/models.py @@ -19,7 +19,7 @@ from sqlalchemy.orm import validates, load_only from module_build_service import db, log, get_url_for, conf import module_build_service.common.messaging from module_build_service.common.utils import load_mmd -from module_build_service.errors import UnprocessableEntity +from module_build_service.common.errors import UnprocessableEntity from module_build_service.scheduler import events DEFAULT_MODULE_CONTEXT = "00000000" diff --git a/module_build_service/resolver/DBResolver.py b/module_build_service/resolver/DBResolver.py index 66205f0e..2372afe8 100644 --- a/module_build_service/resolver/DBResolver.py +++ b/module_build_service/resolver/DBResolver.py @@ -5,7 +5,7 @@ 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.errors import UnprocessableEntity +from module_build_service.common.errors import UnprocessableEntity from module_build_service.common.utils import load_mmd import sqlalchemy diff --git a/module_build_service/resolver/MBSResolver.py b/module_build_service/resolver/MBSResolver.py index 01c1535a..2aa90363 100644 --- a/module_build_service/resolver/MBSResolver.py +++ b/module_build_service/resolver/MBSResolver.py @@ -8,7 +8,7 @@ import kobo.rpmlib from module_build_service import conf from module_build_service import models from module_build_service.common.utils import load_mmd, import_mmd -from module_build_service.errors import UnprocessableEntity +from module_build_service.common.errors import UnprocessableEntity from module_build_service.resolver.KojiResolver import KojiResolver from module_build_service.common.request_utils import requests_session diff --git a/module_build_service/scheduler/consumer.py b/module_build_service/scheduler/consumer.py index 92e4357b..9a6b9a59 100644 --- a/module_build_service/scheduler/consumer.py +++ b/module_build_service/scheduler/consumer.py @@ -23,7 +23,7 @@ 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.errors import IgnoreMessage +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.handlers import components diff --git a/module_build_service/scheduler/default_modules.py b/module_build_service/scheduler/default_modules.py index 56b5ba37..7faa4d30 100644 --- a/module_build_service/scheduler/default_modules.py +++ b/module_build_service/scheduler/default_modules.py @@ -17,7 +17,7 @@ from module_build_service.common.resolve import ( ) from module_build_service.common.retry import retry from module_build_service.scheduler.db_session import db_session -from module_build_service.errors import UnprocessableEntity +from module_build_service.common.errors import UnprocessableEntity from module_build_service.resolver.base import GenericResolver diff --git a/module_build_service/scheduler/greenwave.py b/module_build_service/scheduler/greenwave.py index 1d2f52ff..d43c85d8 100644 --- a/module_build_service/scheduler/greenwave.py +++ b/module_build_service/scheduler/greenwave.py @@ -6,7 +6,7 @@ import json import requests from module_build_service import log, conf -from module_build_service.errors import GreenwaveError +from module_build_service.common.errors import GreenwaveError class Greenwave(object): diff --git a/module_build_service/scheduler/handlers/modules.py b/module_build_service/scheduler/handlers/modules.py index d22d9d5d..81e849fe 100644 --- a/module_build_service/scheduler/handlers/modules.py +++ b/module_build_service/scheduler/handlers/modules.py @@ -15,7 +15,7 @@ from module_build_service.scheduler.submit import ( ) from module_build_service.scheduler.db_session import db_session from module_build_service.builder import GenericBuilder -from module_build_service.errors import UnprocessableEntity, Forbidden, ValidationError +from module_build_service.common.errors import UnprocessableEntity, Forbidden, ValidationError from module_build_service.scheduler.default_modules import ( add_default_modules, handle_collisions_with_base_module_rpms) from module_build_service.scheduler.greenwave import greenwave diff --git a/module_build_service/scheduler/parser.py b/module_build_service/scheduler/parser.py index f7a1fe0a..fe8ec4e2 100644 --- a/module_build_service/scheduler/parser.py +++ b/module_build_service/scheduler/parser.py @@ -4,7 +4,7 @@ import re from module_build_service import log -from module_build_service.errors import IgnoreMessage +from module_build_service.common.errors import IgnoreMessage from module_build_service.scheduler import events diff --git a/module_build_service/scheduler/submit.py b/module_build_service/scheduler/submit.py index 75f737a6..efb72885 100644 --- a/module_build_service/scheduler/submit.py +++ b/module_build_service/scheduler/submit.py @@ -11,7 +11,7 @@ from module_build_service import conf, log, models, Modulemd 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 -from module_build_service.errors import ValidationError, UnprocessableEntity, Forbidden +from module_build_service.common.errors import ValidationError, UnprocessableEntity, Forbidden import module_build_service.scm diff --git a/module_build_service/scm.py b/module_build_service/scm.py index f54f8ae1..00fb8b12 100644 --- a/module_build_service/scm.py +++ b/module_build_service/scm.py @@ -11,7 +11,7 @@ import datetime from module_build_service import log, conf from module_build_service.common.retry import retry -from module_build_service.errors import ( +from module_build_service.common.errors import ( Forbidden, ValidationError, UnprocessableEntity, diff --git a/module_build_service/views.py b/module_build_service/views.py index 134caac7..c68e58d7 100644 --- a/module_build_service/views.py +++ b/module_build_service/views.py @@ -13,7 +13,9 @@ 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.common.utils import import_mmd -from module_build_service.errors import ValidationError, Forbidden, NotFound, ProgrammingError +from module_build_service.common.errors import ( + ValidationError, Forbidden, NotFound, ProgrammingError +) from module_build_service.web.backports import jsonify from module_build_service.common.monitor import registry from module_build_service.common.submit import fetch_mmd diff --git a/module_build_service/web/auth.py b/module_build_service/web/auth.py index 2d92acd3..43b0c52f 100644 --- a/module_build_service/web/auth.py +++ b/module_build_service/web/auth.py @@ -9,7 +9,7 @@ from flask import g from dogpile.cache import make_region -from module_build_service.errors import Unauthorized, Forbidden +from module_build_service.common.errors import Unauthorized, Forbidden from module_build_service import app, log, conf try: diff --git a/module_build_service/web/mse.py b/module_build_service/web/mse.py index 82e2f6d0..edb22de1 100644 --- a/module_build_service/web/mse.py +++ b/module_build_service/web/mse.py @@ -3,8 +3,8 @@ from module_build_service import log, models, Modulemd, conf 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.errors import StreamAmbigous -from module_build_service.errors import UnprocessableEntity +from module_build_service.common.errors import StreamAmbigous +from module_build_service.common.errors import UnprocessableEntity from module_build_service.web.mmd_resolver import MMDResolver from module_build_service.web.utils import deps_to_dict from module_build_service.resolver import GenericResolver diff --git a/module_build_service/web/submit.py b/module_build_service/web/submit.py index 5eabfdaf..d61665c3 100644 --- a/module_build_service/web/submit.py +++ b/module_build_service/web/submit.py @@ -13,7 +13,7 @@ import requests from module_build_service import conf, log, models, Modulemd 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.errors import Conflict, Forbidden, ValidationError +from module_build_service.common.errors import Conflict, Forbidden, ValidationError from module_build_service.web.mse import generate_expanded_mmds from module_build_service.web.utils import deps_to_dict diff --git a/module_build_service/web/utils.py b/module_build_service/web/utils.py index 42433694..d2a48d93 100644 --- a/module_build_service/web/utils.py +++ b/module_build_service/web/utils.py @@ -11,7 +11,7 @@ from sqlalchemy.orm import aliased import sqlalchemy from module_build_service import models, api_version, conf, db -from module_build_service.errors import ValidationError, NotFound +from module_build_service.common.errors import ValidationError, NotFound from module_build_service.scm import scm_url_schemes diff --git a/tests/test_build/test_build.py b/tests/test_build/test_build.py index f4336f60..a065bf89 100644 --- a/tests/test_build/test_build.py +++ b/tests/test_build/test_build.py @@ -17,7 +17,7 @@ from module_build_service.builder.utils import get_rpm_release 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.errors import Forbidden +from module_build_service.common.errors import Forbidden from module_build_service import app, models, conf, build_logs, log from module_build_service.scheduler.db_session import db_session from module_build_service.scheduler import events diff --git a/tests/test_builder/test_builder_utils.py b/tests/test_builder/test_builder_utils.py index 3c2ddda1..f8ab62c7 100644 --- a/tests/test_builder/test_builder_utils.py +++ b/tests/test_builder/test_builder_utils.py @@ -9,7 +9,7 @@ import pytest from module_build_service import conf, models from module_build_service.builder import utils from module_build_service.scheduler.db_session import db_session -from module_build_service.errors import ProgrammingError, ValidationError +from module_build_service.common.errors import ProgrammingError, ValidationError from module_build_service.common.utils import load_mmd, import_mmd, mmd_to_str from tests import init_data, read_staged_data, scheduler_init_data diff --git a/tests/test_common/test_utils.py b/tests/test_common/test_utils.py index 966a5ae7..1dcf3660 100644 --- a/tests/test_common/test_utils.py +++ b/tests/test_common/test_utils.py @@ -5,7 +5,7 @@ import pytest from module_build_service 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.errors import UnprocessableEntity +from module_build_service.common.errors import UnprocessableEntity from tests import clean_database, read_staged_data diff --git a/tests/test_resolver/test_db.py b/tests/test_resolver/test_db.py index 697c5eab..f3ce952f 100644 --- a/tests/test_resolver/test_db.py +++ b/tests/test_resolver/test_db.py @@ -10,7 +10,7 @@ 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.errors import UnprocessableEntity +from module_build_service.common.errors import UnprocessableEntity 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_scheduler/test_default_modules.py b/tests/test_scheduler/test_default_modules.py index a348c8c4..76f05505 100644 --- a/tests/test_scheduler/test_default_modules.py +++ b/tests/test_scheduler/test_default_modules.py @@ -10,7 +10,7 @@ import pytest 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.errors import UnprocessableEntity +from module_build_service.common.errors import UnprocessableEntity from module_build_service.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_submit.py b/tests/test_scheduler/test_submit.py index 9f21d9a1..97feca4a 100644 --- a/tests/test_scheduler/test_submit.py +++ b/tests/test_scheduler/test_submit.py @@ -9,7 +9,7 @@ from module_build_service.common.utils import load_mmd, load_mmd_file, mmd_to_st 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.errors import UnprocessableEntity +from module_build_service.common.errors import UnprocessableEntity import module_build_service.scheduler.handlers.components from module_build_service.scheduler.submit import ( get_build_arches, format_mmd, record_component_builds, record_module_build_arches @@ -271,7 +271,7 @@ class TestSubmit: mmd = original_mmd.copy("testmodule", "master") - from module_build_service.errors import ValidationError + from module_build_service.common.errors import ValidationError with pytest.raises( ValidationError, match=r"Component build .+ of module build .+ already exists in database"): diff --git a/tests/test_scm.py b/tests/test_scm.py index 6529badb..52e0222b 100644 --- a/tests/test_scm.py +++ b/tests/test_scm.py @@ -7,7 +7,7 @@ import tempfile import pytest import module_build_service.scm -from module_build_service.errors import ValidationError, UnprocessableEntity +from module_build_service.common.errors import ValidationError, UnprocessableEntity base_dir = os.path.join(os.path.dirname(__file__), "scm_data") repo_url = "file://" + base_dir + "/testrepo" diff --git a/tests/test_views/test_views.py b/tests/test_views/test_views.py index 5d53a135..499a1254 100644 --- a/tests/test_views/test_views.py +++ b/tests/test_views/test_views.py @@ -30,7 +30,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.errors import UnprocessableEntity +from module_build_service.common.errors import UnprocessableEntity from module_build_service.models import ModuleBuild, BUILD_STATES, ComponentBuild from module_build_service import app, version import module_build_service.common.config as mbs_config diff --git a/tests/test_web/test_auth.py b/tests/test_web/test_auth.py index 397930b2..d7de4617 100644 --- a/tests/test_web/test_auth.py +++ b/tests/test_web/test_auth.py @@ -8,7 +8,7 @@ import mock from mock import patch, PropertyMock, Mock import module_build_service.web.auth -import module_build_service.errors +import module_build_service.common.errors import module_build_service.common.config as mbs_config from module_build_service import app @@ -24,7 +24,7 @@ class TestAuthModule: request = mock.MagicMock() request.cookies.return_value = {} - with pytest.raises(module_build_service.errors.Unauthorized) as cm: + with pytest.raises(module_build_service.common.errors.Unauthorized) as cm: with app.app_context(): module_build_service.web.auth.get_user(request) assert str(cm.value) == "No 'authorization' header found." @@ -56,7 +56,7 @@ class TestAuthModule: request.headers.__setitem__.side_effect = headers.__setitem__ request.headers.__contains__.side_effect = headers.__contains__ - with pytest.raises(module_build_service.errors.Unauthorized) as cm: + with pytest.raises(module_build_service.common.errors.Unauthorized) as cm: with app.app_context(): module_build_service.web.auth.get_user(request) assert str(cm.value) == "OIDC token invalid or expired." @@ -88,7 +88,7 @@ class TestAuthModule: request.headers.__setitem__.side_effect = headers.__setitem__ request.headers.__contains__.side_effect = headers.__contains__ - with pytest.raises(module_build_service.errors.Unauthorized) as cm: + with pytest.raises(module_build_service.common.errors.Unauthorized) as cm: with app.app_context(): module_build_service.web.auth.get_user(request) assert str(cm.value) == "OpenIDC auth error: Cannot determine the user's groups" @@ -148,7 +148,7 @@ class TestAuthModule: @patch("module_build_service.web.auth.client_secrets", None) def test_misconfiguring_oidc_client_secrets_should_be_failed(self): request = mock.MagicMock() - with pytest.raises(module_build_service.errors.Forbidden) as cm: + with pytest.raises(module_build_service.common.errors.Forbidden) as cm: with app.app_context(): module_build_service.web.auth.get_user(request) assert str(cm.value) == "OIDC_CLIENT_SECRETS must be set in server config." @@ -180,7 +180,7 @@ class TestAuthModule: request.headers.__setitem__.side_effect = headers.__setitem__ request.headers.__contains__.side_effect = headers.__contains__ - with pytest.raises(module_build_service.errors.Unauthorized) as cm: + with pytest.raises(module_build_service.common.errors.Unauthorized) as cm: with app.app_context(): module_build_service.web.auth.get_user(request) assert str(cm.value) == ( @@ -212,7 +212,7 @@ class TestAuthModule: request.headers.__setitem__.side_effect = headers.__setitem__ request.headers.__contains__.side_effect = headers.__contains__ - with pytest.raises(module_build_service.errors.Forbidden) as cm: + with pytest.raises(module_build_service.common.errors.Forbidden) as cm: with app.app_context(): module_build_service.web.auth.get_user(request) assert str(cm.value) == "OIDC_REQUIRED_SCOPE must be set in server config." @@ -222,7 +222,7 @@ class TestAuthModule: request = Mock() request.environ.get.return_value = remote_name - with pytest.raises(module_build_service.errors.Unauthorized): + with pytest.raises(module_build_service.common.errors.Unauthorized): module_build_service.web.auth.get_user_kerberos(request) @patch.object(module_build_service.web.auth.conf, "allowed_users", new=["someone", "somebody"]) diff --git a/tests/test_web/test_mse.py b/tests/test_web/test_mse.py index 0e94ad4e..5ad6d106 100644 --- a/tests/test_web/test_mse.py +++ b/tests/test_web/test_mse.py @@ -3,7 +3,7 @@ import pytest from module_build_service.scheduler.db_session import db_session -from module_build_service.errors import StreamAmbigous +from module_build_service.common.errors import StreamAmbigous from module_build_service.web.mse import ( expand_mse_streams, generate_expanded_mmds, get_mmds_required_by_module_recursively ) diff --git a/tests/test_web/test_submit.py b/tests/test_web/test_submit.py index 5bcb9838..7d566d72 100644 --- a/tests/test_web/test_submit.py +++ b/tests/test_web/test_submit.py @@ -12,7 +12,7 @@ from werkzeug.datastructures import FileStorage from module_build_service 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.errors import ValidationError +from module_build_service.common.errors import ValidationError from module_build_service.web.submit import ( get_prefixed_version, submit_module_build, submit_module_build_from_yaml )