From af9505b0e110f7b60fb5d7075a85daec1e0207dd Mon Sep 17 00:00:00 2001 From: mprahl Date: Mon, 6 Jan 2020 11:19:47 -0500 Subject: [PATCH] Rearrange the imports to meet the style guide This also includes `from __future__ import absolute_import` in every file so that the imports are consistent in Python 2 and 3. The Python 2 tests fail without this. --- docs/CONTRIBUTING.rst | 5 +- module_build_service/__init__.py | 16 +++--- .../builder/KojiContentGenerator.py | 10 ++-- .../builder/KojiModuleBuilder.py | 31 +++++----- .../builder/MockModuleBuilder.py | 11 ++-- module_build_service/builder/__init__.py | 2 + module_build_service/builder/base.py | 6 +- module_build_service/builder/utils.py | 9 +-- module_build_service/common/config.py | 3 +- module_build_service/common/errors.py | 3 + module_build_service/common/logger.py | 1 + module_build_service/common/messaging.py | 5 +- module_build_service/common/models.py | 13 +++-- module_build_service/common/monitor.py | 2 +- module_build_service/common/request_utils.py | 2 + module_build_service/common/resolve.py | 2 + module_build_service/common/retry.py | 1 + module_build_service/common/scm.py | 7 ++- module_build_service/common/submit.py | 3 +- module_build_service/common/utils.py | 1 + module_build_service/manage.py | 13 +++-- module_build_service/resolver/DBResolver.py | 2 + module_build_service/resolver/KojiResolver.py | 3 +- .../resolver/LocalResolver.py | 2 + module_build_service/resolver/MBSResolver.py | 6 +- module_build_service/resolver/__init__.py | 2 + module_build_service/resolver/base.py | 5 +- module_build_service/scheduler/batches.py | 5 +- module_build_service/scheduler/consumer.py | 12 ++-- module_build_service/scheduler/db_session.py | 3 +- .../scheduler/default_modules.py | 7 ++- module_build_service/scheduler/events.py | 5 +- module_build_service/scheduler/greenwave.py | 1 + .../scheduler/handlers/components.py | 4 +- .../scheduler/handlers/greenwave.py | 2 + .../scheduler/handlers/modules.py | 25 ++++---- .../scheduler/handlers/repos.py | 6 +- .../scheduler/handlers/tags.py | 7 ++- module_build_service/scheduler/local.py | 2 +- module_build_service/scheduler/parser.py | 2 +- module_build_service/scheduler/producer.py | 14 +++-- module_build_service/scheduler/reuse.py | 6 +- module_build_service/scheduler/route.py | 2 + module_build_service/scheduler/submit.py | 5 +- module_build_service/scheduler/ursine.py | 3 +- module_build_service/web/auth.py | 10 ++-- module_build_service/web/backports.py | 4 +- module_build_service/web/mmd_resolver.py | 3 + module_build_service/web/mse.py | 7 ++- module_build_service/web/proxy.py | 1 + module_build_service/web/submit.py | 3 +- module_build_service/web/utils.py | 5 +- module_build_service/web/views.py | 10 ++-- tests/__init__.py | 23 ++++---- tests/conftest.py | 11 ++-- tests/test_build/test_build.py | 57 +++++++++---------- tests/test_builder/test_base.py | 18 +++--- tests/test_builder/test_builder_utils.py | 5 +- tests/test_builder/test_content_generator.py | 16 +++--- tests/test_builder/test_koji.py | 11 ++-- tests/test_builder/test_mock.py | 9 +-- tests/test_common/test_config.py | 1 + tests/test_common/test_koji.py | 2 + tests/test_common/test_logger.py | 3 +- tests/test_common/test_messaging.py | 1 + tests/test_common/test_models/test_models.py | 13 ++++- tests/test_common/test_monitor.py | 5 +- tests/test_common/test_resolve.py | 4 +- tests/test_common/test_scm.py | 3 +- tests/test_common/test_submit.py | 2 + tests/test_common/test_utils.py | 4 +- tests/test_manage.py | 6 +- tests/test_resolver/test_db.py | 5 +- tests/test_resolver/test_koji.py | 8 ++- tests/test_resolver/test_local.py | 10 ++-- tests/test_resolver/test_mbs.py | 4 +- tests/test_scheduler/test_batches.py | 10 ++-- .../test_scheduler/test_celery_route_task.py | 3 +- tests/test_scheduler/test_consumer.py | 3 + tests/test_scheduler/test_default_modules.py | 5 +- tests/test_scheduler/test_greenwave.py | 1 + .../test_scheduler/test_greenwave_handler.py | 13 +++-- tests/test_scheduler/test_module_init.py | 9 +-- tests/test_scheduler/test_module_wait.py | 15 +++-- tests/test_scheduler/test_poller.py | 3 +- tests/test_scheduler/test_repo_done.py | 6 +- tests/test_scheduler/test_reuse.py | 2 + tests/test_scheduler/test_submit.py | 5 +- tests/test_scheduler/test_tag_tagged.py | 19 +++---- tests/test_scheduler/test_ursine.py | 2 + tests/test_web/test_auth.py | 11 ++-- tests/test_web/test_mmd_resolver.py | 4 +- tests/test_web/test_mse.py | 4 +- tests/test_web/test_submit.py | 3 +- tests/test_web/test_views.py | 31 +++++----- 95 files changed, 411 insertions(+), 279 deletions(-) diff --git a/docs/CONTRIBUTING.rst b/docs/CONTRIBUTING.rst index 94df4c17..0f48f094 100644 --- a/docs/CONTRIBUTING.rst +++ b/docs/CONTRIBUTING.rst @@ -91,10 +91,13 @@ Also, the format of the docstrings should be in the :raises TypeError: if a or b are not integers -Additionally, the imports should be ordered by standard library, third-party, then local. For example: +Additionally, the imports should be ordered by standard library, third-party, then local. +``from __future__ import absolute_import`` should always be included so that imports are consistent +in Python 2 and Python 3. For example: :: + from __future__ import absolute_import import math import os diff --git a/module_build_service/__init__.py b/module_build_service/__init__.py index 4424d1a7..3728231f 100644 --- a/module_build_service/__init__.py +++ b/module_build_service/__init__.py @@ -18,23 +18,23 @@ for a number of tasks: infrastructure services can pick up the work. """ -import pkg_resources -from celery import Celery -from flask import Flask, has_app_context, url_for -from flask_sqlalchemy import SQLAlchemy -from sqlalchemy.pool import StaticPool +from __future__ import absolute_import from logging import getLogger +from celery import Celery import gi # noqa gi.require_version("Modulemd", "2.0") # noqa from gi.repository import Modulemd # noqa +from flask import Flask, has_app_context, url_for +from flask_sqlalchemy import SQLAlchemy +import pkg_resources +from sqlalchemy.pool import StaticPool -from module_build_service.common.logger import init_logging, ModuleBuildLogs, level_flags, MBSLogger - +from module_build_service.common.config import init_config from module_build_service.common.errors import ( ValidationError, Unauthorized, UnprocessableEntity, Conflict, NotFound, Forbidden, json_error) -from module_build_service.common.config import init_config +from module_build_service.common.logger import init_logging, ModuleBuildLogs, level_flags, MBSLogger from module_build_service.web.proxy import ReverseProxy try: diff --git a/module_build_service/builder/KojiContentGenerator.py b/module_build_service/builder/KojiContentGenerator.py index 495f17c3..321646ed 100644 --- a/module_build_service/builder/KojiContentGenerator.py +++ b/module_build_service/builder/KojiContentGenerator.py @@ -1,8 +1,11 @@ # -*- coding: utf-8 -*- # SPDX-License-Identifier: MIT +from __future__ import absolute_import import calendar import distro import hashlib +from io import open +from itertools import chain import logging import json import os @@ -12,20 +15,17 @@ import shutil import subprocess import tempfile import time -from io import open -from itertools import chain import kobo.rpmlib - -from six import text_type import koji import pungi.arch +from six import text_type from module_build_service import conf, log, build_logs, Modulemd from module_build_service.common.koji import get_session, koji_retrying_multicall_map +from module_build_service.common.scm import SCM from module_build_service.common.utils import load_mmd, mmd_to_str, to_text_type from module_build_service.scheduler.db_session import db_session -from module_build_service.common.scm import SCM logging.basicConfig(level=logging.DEBUG) diff --git a/module_build_service/builder/KojiModuleBuilder.py b/module_build_service/builder/KojiModuleBuilder.py index 6b6282a9..3a4858d9 100644 --- a/module_build_service/builder/KojiModuleBuilder.py +++ b/module_build_service/builder/KojiModuleBuilder.py @@ -1,37 +1,38 @@ # -*- coding: utf-8 -*- # SPDX-License-Identifier: MIT +from __future__ import absolute_import import contextlib import copy +import datetime +import glob import hashlib +from itertools import chain import locale import logging import os -import koji -import tempfile -import glob -import datetime -import time -import dogpile.cache import random import string -import kobo.rpmlib -import threading - -from itertools import chain -from OpenSSL.SSL import SysCallError +import tempfile import textwrap +import threading +import time + +import dogpile.cache +import koji +import kobo.rpmlib +from OpenSSL.SSL import SysCallError 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 from module_build_service.builder.KojiContentGenerator import KojiContentGenerator +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.koji import ( get_session, koji_multicall_map, koji_retrying_multicall_map, ) +from module_build_service.common.retry import retry from module_build_service.scheduler import events +from module_build_service.scheduler.db_session import db_session from module_build_service.scheduler.reuse import get_reusable_components, get_reusable_module logging.basicConfig(level=logging.DEBUG) diff --git a/module_build_service/builder/MockModuleBuilder.py b/module_build_service/builder/MockModuleBuilder.py index 0ad870de..153aba7b 100644 --- a/module_build_service/builder/MockModuleBuilder.py +++ b/module_build_service/builder/MockModuleBuilder.py @@ -1,5 +1,6 @@ # -*- coding: utf-8 -*- # SPDX-License-Identifier: MIT +from __future__ import absolute_import import logging import os import pipes @@ -13,10 +14,8 @@ 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 +from module_build_service.builder.KojiModuleBuilder import KojiModuleBuilder from module_build_service.builder.utils import ( create_local_repo_from_koji_tag, execute_cmd, @@ -24,9 +23,11 @@ from module_build_service.builder.utils import ( get_koji_config, validate_koji_tag, ) -from module_build_service.scheduler.db_session import db_session -from module_build_service.builder.KojiModuleBuilder import KojiModuleBuilder +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.scheduler import events +from module_build_service.scheduler.db_session import db_session logging.basicConfig(level=logging.DEBUG) diff --git a/module_build_service/builder/__init__.py b/module_build_service/builder/__init__.py index 9897c5ed..e12c7818 100644 --- a/module_build_service/builder/__init__.py +++ b/module_build_service/builder/__init__.py @@ -1,5 +1,7 @@ # -*- coding: utf-8 -*- # SPDX-License-Identifier: MIT +from __future__ import absolute_import + import pkg_resources from module_build_service.builder.base import GenericBuilder diff --git a/module_build_service/builder/base.py b/module_build_service/builder/base.py index 2f9bdce4..13443f5d 100644 --- a/module_build_service/builder/base.py +++ b/module_build_service/builder/base.py @@ -2,10 +2,12 @@ # SPDX-License-Identifier: MIT """Generic component build functions.""" -import six -import dogpile.cache +from __future__ import absolute_import from abc import ABCMeta, abstractmethod + +import dogpile.cache from requests.exceptions import ConnectionError +import six from module_build_service import conf, log from module_build_service.common import models diff --git a/module_build_service/builder/utils.py b/module_build_service/builder/utils.py index 3583a78c..d987f3fc 100644 --- a/module_build_service/builder/utils.py +++ b/module_build_service/builder/utils.py @@ -1,15 +1,16 @@ # -*- coding: utf-8 -*- # SPDX-License-Identifier: MIT +from __future__ import absolute_import +import errno import hashlib +import logging import inspect +from multiprocessing.dummy import Pool as ThreadPool import os import shutil import subprocess -import munch -import errno -import logging -from multiprocessing.dummy import Pool as ThreadPool +import munch import requests from module_build_service import conf, log diff --git a/module_build_service/common/config.py b/module_build_service/common/config.py index 372ba01c..a62ca98f 100644 --- a/module_build_service/common/config.py +++ b/module_build_service/common/config.py @@ -1,13 +1,14 @@ # -*- coding: utf-8 -*- # SPDX-License-Identifier: MIT +from __future__ import absolute_import import imp import logging import os -import pkg_resources import re import sys import tempfile +import pkg_resources from six import string_types from module_build_service.common import logger diff --git a/module_build_service/common/errors.py b/module_build_service/common/errors.py index 68f44dc1..a49ffe69 100644 --- a/module_build_service/common/errors.py +++ b/module_build_service/common/errors.py @@ -1,6 +1,9 @@ # -*- coding: utf-8 -*- # SPDX-License-Identifier: MIT """ Defines custom exceptions and error handling functions """ + +from __future__ import absolute_import + from flask import jsonify diff --git a/module_build_service/common/logger.py b/module_build_service/common/logger.py index 8eb7a1b1..3b47c39f 100644 --- a/module_build_service/common/logger.py +++ b/module_build_service/common/logger.py @@ -19,6 +19,7 @@ logging.warning("%s failed to build", task_id) """ +from __future__ import absolute_import import os import logging import inspect diff --git a/module_build_service/common/messaging.py b/module_build_service/common/messaging.py index 3fda8eab..3add0396 100644 --- a/module_build_service/common/messaging.py +++ b/module_build_service/common/messaging.py @@ -2,11 +2,12 @@ # SPDX-License-Identifier: MIT """Generic messaging functions.""" +from __future__ import absolute_import + import pkg_resources -from module_build_service.scheduler.parser import FedmsgMessageParser - from module_build_service import conf, log +from module_build_service.scheduler.parser import FedmsgMessageParser def publish(topic, msg, conf, service): diff --git a/module_build_service/common/models.py b/module_build_service/common/models.py index 31759724..05947575 100644 --- a/module_build_service/common/models.py +++ b/module_build_service/common/models.py @@ -3,23 +3,24 @@ """ SQLAlchemy Database models for the Flask app """ -import hashlib -import json -import koji -import re +from __future__ import absolute_import from collections import OrderedDict, namedtuple from datetime import datetime +import hashlib +import json +import re -import sqlalchemy import kobo.rpmlib +import koji +import sqlalchemy from sqlalchemy import func, and_ from sqlalchemy.orm import lazyload from sqlalchemy.orm import validates, load_only from module_build_service import db, log, get_url_for, conf +from module_build_service.common.errors import UnprocessableEntity import module_build_service.common.messaging from module_build_service.common.utils import load_mmd -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/common/monitor.py b/module_build_service/common/monitor.py index 77f14d9a..77350489 100644 --- a/module_build_service/common/monitor.py +++ b/module_build_service/common/monitor.py @@ -3,7 +3,7 @@ # For an up-to-date version of this module, see: # https://pagure.io/monitor-flask-sqlalchemy - +from __future__ import absolute_import import os import tempfile diff --git a/module_build_service/common/request_utils.py b/module_build_service/common/request_utils.py index 27fbdfec..05bb2094 100644 --- a/module_build_service/common/request_utils.py +++ b/module_build_service/common/request_utils.py @@ -1,5 +1,7 @@ # -*- coding: utf-8 -*- # SPDX-License-Identifier: MIT +from __future__ import absolute_import + import requests from requests.packages.urllib3.util.retry import Retry diff --git a/module_build_service/common/resolve.py b/module_build_service/common/resolve.py index 891ed8af..363b31af 100644 --- a/module_build_service/common/resolve.py +++ b/module_build_service/common/resolve.py @@ -1,5 +1,7 @@ # -*- coding: utf-8 -*- # SPDX-License-Identifier: MIT +from __future__ import absolute_import + from module_build_service import conf from module_build_service.common.errors import StreamAmbigous from module_build_service.resolver import GenericResolver diff --git a/module_build_service/common/retry.py b/module_build_service/common/retry.py index 68f8071f..9e1f8f73 100644 --- a/module_build_service/common/retry.py +++ b/module_build_service/common/retry.py @@ -1,5 +1,6 @@ # -*- coding: utf-8 -*- # SPDX-License-Identifier: MIT +from __future__ import absolute_import import functools import time diff --git a/module_build_service/common/scm.py b/module_build_service/common/scm.py index 00fb8b12..f0614fcf 100644 --- a/module_build_service/common/scm.py +++ b/module_build_service/common/scm.py @@ -2,21 +2,22 @@ # SPDX-License-Identifier: MIT """SCM handler functions.""" +from __future__ import absolute_import +import datetime import os import subprocess as sp import re -import tempfile import shutil -import datetime +import tempfile from module_build_service import log, conf -from module_build_service.common.retry import retry from module_build_service.common.errors import ( Forbidden, ValidationError, UnprocessableEntity, ProgrammingError, ) +from module_build_service.common.retry import retry def scm_url_schemes(terse=False): diff --git a/module_build_service/common/submit.py b/module_build_service/common/submit.py index 62e38415..a182637d 100644 --- a/module_build_service/common/submit.py +++ b/module_build_service/common/submit.py @@ -1,5 +1,6 @@ # -*- coding: utf-8 -*- # SPDX-License-Identifier: MIT +from __future__ import absolute_import import shutil import tempfile @@ -7,8 +8,8 @@ import requests import module_build_service.common.scm from module_build_service import conf, log -from module_build_service.common.utils import load_mmd_file from module_build_service.common.errors import ValidationError +from module_build_service.common.utils import load_mmd_file def _is_eol_in_pdc(name, stream): diff --git a/module_build_service/common/utils.py b/module_build_service/common/utils.py index 13523646..1fea79ec 100644 --- a/module_build_service/common/utils.py +++ b/module_build_service/common/utils.py @@ -1,5 +1,6 @@ # -*- coding: utf-8 -*- # SPDX-License-Identifier: MIT +from __future__ import absolute_import from datetime import datetime from functools import partial import os diff --git a/module_build_service/manage.py b/module_build_service/manage.py index 542f8249..d4d5425d 100755 --- a/module_build_service/manage.py +++ b/module_build_service/manage.py @@ -1,24 +1,25 @@ # -*- coding: utf-8 -*- # SPDX-License-Identifier: MIT -from __future__ import print_function -from flask_script import Manager, prompt_bool +from __future__ import absolute_import, print_function from functools import wraps -import flask_migrate +import getpass import logging import os -import getpass import textwrap +import flask_migrate +from flask_script import Manager, prompt_bool from werkzeug.datastructures import FileStorage + 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 +from module_build_service.common.utils import load_mmd_file, import_mmd import module_build_service.scheduler.consumer +from module_build_service.scheduler.db_session import db_session import module_build_service.scheduler.local from module_build_service.web.submit import submit_module_build_from_yaml diff --git a/module_build_service/resolver/DBResolver.py b/module_build_service/resolver/DBResolver.py index a84bebce..49d639e6 100644 --- a/module_build_service/resolver/DBResolver.py +++ b/module_build_service/resolver/DBResolver.py @@ -1,5 +1,7 @@ # -*- coding: utf-8 -*- # SPDX-License-Identifier: MIT +from __future__ import absolute_import + import sqlalchemy from sqlalchemy.orm import aliased diff --git a/module_build_service/resolver/KojiResolver.py b/module_build_service/resolver/KojiResolver.py index c58d854b..919e319d 100644 --- a/module_build_service/resolver/KojiResolver.py +++ b/module_build_service/resolver/KojiResolver.py @@ -1,11 +1,12 @@ # -*- coding: utf-8 -*- # SPDX-License-Identifier: MIT +from __future__ import absolute_import from itertools import groupby +from module_build_service import conf, log 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, log class KojiResolver(DBResolver): diff --git a/module_build_service/resolver/LocalResolver.py b/module_build_service/resolver/LocalResolver.py index 06454b18..1f90e2f6 100644 --- a/module_build_service/resolver/LocalResolver.py +++ b/module_build_service/resolver/LocalResolver.py @@ -1,5 +1,7 @@ # -*- coding: utf-8 -*- # SPDX-License-Identifier: MIT +from __future__ import absolute_import + from module_build_service.resolver.DBResolver import DBResolver diff --git a/module_build_service/resolver/MBSResolver.py b/module_build_service/resolver/MBSResolver.py index ad1cc1d9..98bbe7cc 100644 --- a/module_build_service/resolver/MBSResolver.py +++ b/module_build_service/resolver/MBSResolver.py @@ -2,15 +2,17 @@ # SPDX-License-Identifier: MIT """MBS handler functions.""" +from __future__ import absolute_import import logging + import kobo.rpmlib from module_build_service import conf 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 from module_build_service.common.request_utils import requests_session +from module_build_service.common.utils import load_mmd, import_mmd +from module_build_service.resolver.KojiResolver import KojiResolver log = logging.getLogger() diff --git a/module_build_service/resolver/__init__.py b/module_build_service/resolver/__init__.py index 270f6e99..ace9265d 100644 --- a/module_build_service/resolver/__init__.py +++ b/module_build_service/resolver/__init__.py @@ -1,5 +1,7 @@ # -*- coding: utf-8 -*- # SPDX-License-Identifier: MIT +from __future__ import absolute_import + import pkg_resources from module_build_service.resolver.base import GenericResolver diff --git a/module_build_service/resolver/base.py b/module_build_service/resolver/base.py index e46744b1..aeb40a6b 100644 --- a/module_build_service/resolver/base.py +++ b/module_build_service/resolver/base.py @@ -2,12 +2,13 @@ # SPDX-License-Identifier: MIT """Generic resolver functions.""" +from __future__ import absolute_import -import six from abc import ABCMeta, abstractmethod +import six -import module_build_service.common.config as cfg from module_build_service import conf +import module_build_service.common.config as cfg class GenericResolver(six.with_metaclass(ABCMeta)): diff --git a/module_build_service/scheduler/batches.py b/module_build_service/scheduler/batches.py index 72768627..1994b4ab 100644 --- a/module_build_service/scheduler/batches.py +++ b/module_build_service/scheduler/batches.py @@ -1,12 +1,13 @@ # -*- coding: utf-8 -*- # SPDX-License-Identifier: MIT -import threading +from __future__ import absolute_import import concurrent.futures +import threading 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.db_session import db_session 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 9732904a..7ba2ad8b 100644 --- a/module_build_service/scheduler/consumer.py +++ b/module_build_service/scheduler/consumer.py @@ -5,6 +5,7 @@ This class reads and processes messages from the message bus it is configured to use. """ +from __future__ import absolute_import import itertools try: @@ -19,19 +20,16 @@ import fedmsg.consumers import moksha.hub import sqlalchemy.exc -import module_build_service.common.messaging -import module_build_service.common.monitor as monitor from module_build_service import log, conf from module_build_service.common import models from module_build_service.common.errors import IgnoreMessage +import module_build_service.common.messaging from module_build_service.common.messaging import default_messaging_backend +import module_build_service.common.monitor as monitor + 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 -from module_build_service.scheduler.handlers import tags -from module_build_service.scheduler.handlers import greenwave +from module_build_service.scheduler.handlers import components, repos, modules, greenwave, tags def no_op_handler(*args, **kwargs): diff --git a/module_build_service/scheduler/db_session.py b/module_build_service/scheduler/db_session.py index d6593367..9eddaedc 100644 --- a/module_build_service/scheduler/db_session.py +++ b/module_build_service/scheduler/db_session.py @@ -1,9 +1,10 @@ # -*- coding: utf-8 -*- # SPDX-License-Identifier: MIT +from __future__ import absolute_import import sqlalchemy.event -from sqlalchemy.orm import scoped_session, sessionmaker from sqlalchemy.pool import NullPool +from sqlalchemy.orm import scoped_session, sessionmaker from module_build_service import conf from module_build_service.common.models import session_before_commit_handlers diff --git a/module_build_service/scheduler/default_modules.py b/module_build_service/scheduler/default_modules.py index d077835b..62877454 100644 --- a/module_build_service/scheduler/default_modules.py +++ b/module_build_service/scheduler/default_modules.py @@ -1,9 +1,10 @@ # -*- coding: utf-8 -*- # SPDX-License-Identifier: MIT +from __future__ import absolute_import import errno import os -import tempfile import shutil +import tempfile import dnf import kobo.rpmlib @@ -12,14 +13,14 @@ import six.moves.xmlrpc_client as xmlrpclib from module_build_service import conf, log, Modulemd from module_build_service.common import models, scm +from module_build_service.common.errors import UnprocessableEntity 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 ) +from module_build_service.resolver.base import GenericResolver from module_build_service.common.retry import retry from module_build_service.scheduler.db_session import db_session -from module_build_service.common.errors import UnprocessableEntity -from module_build_service.resolver.base import GenericResolver def add_default_modules(mmd): diff --git a/module_build_service/scheduler/events.py b/module_build_service/scheduler/events.py index e4f2e5af..4a176724 100644 --- a/module_build_service/scheduler/events.py +++ b/module_build_service/scheduler/events.py @@ -12,9 +12,10 @@ build is complete, Koji sends a message to topic buildsys.build.state.change, however Brew sends to topic brew.build.complete, etc. """ -import time -import sched +from __future__ import absolute_import from functools import wraps +import sched +import time from module_build_service import log diff --git a/module_build_service/scheduler/greenwave.py b/module_build_service/scheduler/greenwave.py index d4b04e0b..1b00d5e4 100644 --- a/module_build_service/scheduler/greenwave.py +++ b/module_build_service/scheduler/greenwave.py @@ -1,5 +1,6 @@ # -*- coding: utf-8 -*- # SPDX-License-Identifier: MIT +from __future__ import absolute_import from functools import reduce import json diff --git a/module_build_service/scheduler/handlers/components.py b/module_build_service/scheduler/handlers/components.py index 2f041145..f0f982ba 100644 --- a/module_build_service/scheduler/handlers/components.py +++ b/module_build_service/scheduler/handlers/components.py @@ -2,7 +2,9 @@ # SPDX-License-Identifier: MIT """ Handlers for koji component build events on the message bus. """ +from __future__ import absolute_import import logging + import koji from module_build_service import celery_app, conf, log @@ -10,9 +12,9 @@ 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 from module_build_service.scheduler import events from module_build_service.scheduler.batches import continue_batch_build +from module_build_service.scheduler.db_session import db_session logging.basicConfig(level=logging.DEBUG) diff --git a/module_build_service/scheduler/handlers/greenwave.py b/module_build_service/scheduler/handlers/greenwave.py index d52ec8b4..36bcf934 100644 --- a/module_build_service/scheduler/handlers/greenwave.py +++ b/module_build_service/scheduler/handlers/greenwave.py @@ -1,5 +1,7 @@ # -*- coding: utf-8 -*- # SPDX-License-Identifier: MIT +from __future__ import absolute_import + 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 diff --git a/module_build_service/scheduler/handlers/modules.py b/module_build_service/scheduler/handlers/modules.py index a6e235bf..ecab8858 100644 --- a/module_build_service/scheduler/handlers/modules.py +++ b/module_build_service/scheduler/handlers/modules.py @@ -2,10 +2,22 @@ # SPDX-License-Identifier: MIT """ Handlers for module change events on the message bus. """ +from __future__ import absolute_import +from datetime import datetime +import logging +import os +import time + +import koji +from requests.exceptions import ConnectionError +import six.moves.xmlrpc_client as xmlrpclib + from module_build_service import celery_app, conf, log, build_logs +from module_build_service.builder import GenericBuilder 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.errors import UnprocessableEntity, Forbidden, ValidationError from module_build_service.common.utils import mmd_to_str from module_build_service.common.retry import retry import module_build_service.resolver @@ -14,26 +26,15 @@ from module_build_service.scheduler.submit import ( record_filtered_rpms, record_module_build_arches ) +from module_build_service.scheduler import events from module_build_service.scheduler.db_session import db_session -from module_build_service.builder import GenericBuilder -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 -from module_build_service.scheduler import events from module_build_service.scheduler.reuse import attempt_to_reuse_all_components from module_build_service.scheduler.submit import format_mmd from module_build_service.scheduler.ursine import handle_stream_collision_modules -from requests.exceptions import ConnectionError - -import koji -import six.moves.xmlrpc_client as xmlrpclib -import logging -import os -import time -from datetime import datetime - logging.basicConfig(level=logging.DEBUG) diff --git a/module_build_service/scheduler/handlers/repos.py b/module_build_service/scheduler/handlers/repos.py index 685e936c..829b545b 100644 --- a/module_build_service/scheduler/handlers/repos.py +++ b/module_build_service/scheduler/handlers/repos.py @@ -2,14 +2,16 @@ # SPDX-License-Identifier: MIT """ Handlers for repo change events on the message bus. """ -import logging +from __future__ import absolute_import from datetime import datetime +import logging + 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 import events 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 logging.basicConfig(level=logging.DEBUG) diff --git a/module_build_service/scheduler/handlers/tags.py b/module_build_service/scheduler/handlers/tags.py index 05e4ffed..2e3eff10 100644 --- a/module_build_service/scheduler/handlers/tags.py +++ b/module_build_service/scheduler/handlers/tags.py @@ -2,13 +2,16 @@ # SPDX-License-Identifier: MIT """ Handlers for repo change events on the message bus. """ +from __future__ import absolute_import import logging + import koji + 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.common import models from module_build_service.scheduler import events +from module_build_service.scheduler.db_session import db_session logging.basicConfig(level=logging.DEBUG) diff --git a/module_build_service/scheduler/local.py b/module_build_service/scheduler/local.py index 677f2e3e..569d6bd1 100644 --- a/module_build_service/scheduler/local.py +++ b/module_build_service/scheduler/local.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- # SPDX-License-Identifier: MIT - +from __future__ import absolute_import import logging from module_build_service.common import models diff --git a/module_build_service/scheduler/parser.py b/module_build_service/scheduler/parser.py index fe8ec4e2..17388675 100644 --- a/module_build_service/scheduler/parser.py +++ b/module_build_service/scheduler/parser.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- # SPDX-License-Identifier: MIT - +from __future__ import absolute_import import re from module_build_service import log diff --git a/module_build_service/scheduler/producer.py b/module_build_service/scheduler/producer.py index 79894bdf..72a18027 100644 --- a/module_build_service/scheduler/producer.py +++ b/module_build_service/scheduler/producer.py @@ -1,23 +1,25 @@ # -*- coding: utf-8 -*- # SPDX-License-Identifier: MIT +from __future__ import absolute_import +from datetime import timedelta, datetime +import operator import koji -import operator -from datetime import timedelta, datetime 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, 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 +import module_build_service.scheduler +import module_build_service.scheduler.consumer +from module_build_service.scheduler.consumer import ON_MODULE_CHANGE_HANDLERS from module_build_service.scheduler.batches import ( at_concurrent_component_threshold, start_next_batch_build, ) -from module_build_service.scheduler.consumer import ON_MODULE_CHANGE_HANDLERS +from module_build_service.scheduler.db_session import db_session from module_build_service.scheduler.greenwave import greenwave from module_build_service.scheduler.handlers.components import build_task_finalize from module_build_service.scheduler.handlers.tags import tagged diff --git a/module_build_service/scheduler/reuse.py b/module_build_service/scheduler/reuse.py index 03c3cc4b..061f84bc 100644 --- a/module_build_service/scheduler/reuse.py +++ b/module_build_service/scheduler/reuse.py @@ -1,13 +1,15 @@ # -*- coding: utf-8 -*- # SPDX-License-Identifier: MIT +from __future__ import absolute_import + import kobo.rpmlib 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.common.resolve import get_base_module_mmds from module_build_service.resolver import GenericResolver from module_build_service.scheduler import events -from module_build_service.common.resolve import get_base_module_mmds +from module_build_service.scheduler.db_session import db_session def reuse_component(component, previous_component_build, change_state_now=False, diff --git a/module_build_service/scheduler/route.py b/module_build_service/scheduler/route.py index b0b3e14a..5838a3ec 100644 --- a/module_build_service/scheduler/route.py +++ b/module_build_service/scheduler/route.py @@ -1,6 +1,8 @@ # -*- coding: utf-8 -*- # SPDX-License-Identifier: MIT """ Define the router used to route Celery tasks to queues.""" + +from __future__ import absolute_import import inspect from module_build_service import conf, log diff --git a/module_build_service/scheduler/submit.py b/module_build_service/scheduler/submit.py index 289bd0a7..7e954d8d 100644 --- a/module_build_service/scheduler/submit.py +++ b/module_build_service/scheduler/submit.py @@ -1,5 +1,6 @@ # -*- coding: utf-8 -*- # SPDX-License-Identifier: MIT +from __future__ import absolute_import from datetime import datetime import json from multiprocessing.dummy import Pool as ThreadPool @@ -9,11 +10,11 @@ import kobo.rpmlib from module_build_service import conf, log, Modulemd from module_build_service.common import models +from module_build_service.common.errors import ValidationError, UnprocessableEntity, Forbidden +import module_build_service.common.scm 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.common.errors import ValidationError, UnprocessableEntity, Forbidden -import module_build_service.common.scm def get_build_arches(mmd, config): diff --git a/module_build_service/scheduler/ursine.py b/module_build_service/scheduler/ursine.py index 9f25c67d..c19fe157 100644 --- a/module_build_service/scheduler/ursine.py +++ b/module_build_service/scheduler/ursine.py @@ -1,11 +1,12 @@ # -*- coding: utf-8 -*- # SPDX-License-Identifier: MIT +from __future__ import absolute_import import re from module_build_service import conf, log from module_build_service.common.koji import get_session -from module_build_service.scheduler.db_session import db_session from module_build_service.resolver import GenericResolver +from module_build_service.scheduler.db_session import db_session """ diff --git a/module_build_service/web/auth.py b/module_build_service/web/auth.py index 43b0c52f..256cd26b 100644 --- a/module_build_service/web/auth.py +++ b/module_build_service/web/auth.py @@ -1,16 +1,18 @@ # -*- coding: utf-8 -*- # SPDX-License-Identifier: MIT """Auth system based on the client certificate and FAS account""" + +from __future__ import absolute_import import json import ssl -import requests -from flask import g - from dogpile.cache import make_region +from flask import g +import requests -from module_build_service.common.errors import Unauthorized, Forbidden from module_build_service import app, log, conf +from module_build_service.common.errors import Unauthorized, Forbidden + try: import ldap3 diff --git a/module_build_service/web/backports.py b/module_build_service/web/backports.py index c51c8062..f2c8c631 100644 --- a/module_build_service/web/backports.py +++ b/module_build_service/web/backports.py @@ -1,7 +1,9 @@ # -*- coding: utf-8 -*- # SPDX-License-Identifier: MIT -from flask.json import dumps +from __future__ import absolute_import + from flask import request +from flask.json import dumps import module_build_service diff --git a/module_build_service/web/mmd_resolver.py b/module_build_service/web/mmd_resolver.py index 4f12134c..a641b03d 100644 --- a/module_build_service/web/mmd_resolver.py +++ b/module_build_service/web/mmd_resolver.py @@ -1,8 +1,11 @@ # -*- coding: utf-8 -*- # SPDX-License-Identifier: MIT +from __future__ import absolute_import import collections import itertools + import solv + from module_build_service import log, conf from module_build_service.common.models import ModuleBuild diff --git a/module_build_service/web/mse.py b/module_build_service/web/mse.py index 89bb9ee9..a800db90 100644 --- a/module_build_service/web/mse.py +++ b/module_build_service/web/mse.py @@ -1,14 +1,15 @@ # -*- coding: utf-8 -*- # SPDX-License-Identifier: MIT +from __future__ import absolute_import + from module_build_service import log, Modulemd, conf from module_build_service.common import models +from module_build_service.common.errors import StreamAmbigous, UnprocessableEntity 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 -from module_build_service.common.errors import UnprocessableEntity +from module_build_service.resolver import GenericResolver 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 def expand_mse_streams(db_session, mmd, default_streams=None, raise_if_stream_ambigous=False): diff --git a/module_build_service/web/proxy.py b/module_build_service/web/proxy.py index c67a539c..70c31d49 100644 --- a/module_build_service/web/proxy.py +++ b/module_build_service/web/proxy.py @@ -7,6 +7,7 @@ WSGI Middleware!! Source: http://flask.pocoo.org/snippets/35/ by Peter Hansen """ +from __future__ import absolute_import class ReverseProxy(object): diff --git a/module_build_service/web/submit.py b/module_build_service/web/submit.py index 48c8e744..b9dedd05 100644 --- a/module_build_service/web/submit.py +++ b/module_build_service/web/submit.py @@ -1,5 +1,6 @@ # -*- coding: utf-8 -*- # SPDX-License-Identifier: MIT +from __future__ import absolute_import import copy from datetime import datetime import math @@ -12,9 +13,9 @@ import requests from module_build_service import conf, log, Modulemd from module_build_service.common import models +from module_build_service.common.errors import Conflict, Forbidden, ValidationError 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 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 e4363404..c27afa43 100644 --- a/module_build_service/web/utils.py +++ b/module_build_service/web/utils.py @@ -1,14 +1,15 @@ # -*- coding: utf-8 -*- # SPDX-License-Identifier: MIT +from __future__ import absolute_import import copy from datetime import datetime from functools import wraps import re from flask import request, url_for, Response -from sqlalchemy.sql.sqltypes import Boolean as sqlalchemy_boolean -from sqlalchemy.orm import aliased import sqlalchemy +from sqlalchemy.orm import aliased +from sqlalchemy.sql.sqltypes import Boolean as sqlalchemy_boolean from module_build_service import api_version, conf, db from module_build_service.common import models diff --git a/module_build_service/web/views.py b/module_build_service/web/views.py index 32062970..232c4189 100644 --- a/module_build_service/web/views.py +++ b/module_build_service/web/views.py @@ -4,23 +4,25 @@ This is the implementation of the orchestrator's public RESTful API. """ +from __future__ import absolute_import +from io import BytesIO import json + from flask import request, url_for, Blueprint, Response from flask.views import MethodView -from six import string_types -from io import BytesIO from prometheus_client import generate_latest, CONTENT_TYPE_LATEST +from six import string_types 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 ) -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 +from module_build_service.common.utils import import_mmd import module_build_service.web.auth +from module_build_service.web.backports import jsonify from module_build_service.web.submit import ( submit_module_build_from_scm, submit_module_build_from_yaml ) diff --git a/tests/__init__.py b/tests/__init__.py index 1207d0a0..0fce5646 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -1,25 +1,28 @@ # -*- coding: utf-8 -*- # SPDX-License-Identifier: MIT -import functools -import os +from __future__ import absolute_import from datetime import datetime, timedelta -from mock import patch -from six import string_types -import time +import functools import hashlib +import os +import time from traceback import extract_stack -from module_build_service.common.utils import load_mmd, import_mmd import koji +from mock import patch +from six import string_types + import module_build_service -from module_build_service import db +from module_build_service import db, Modulemd 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.common.models import ( - ModuleBuild, ModuleArch, ComponentBuild, VirtualStream, BUILD_STATES, + ComponentBuild, + ModuleArch, + ModuleBuild, + VirtualStream, ) -from module_build_service import Modulemd +from module_build_service.common.utils import load_mmd, import_mmd, mmd_to_str, to_text_type from module_build_service.scheduler.db_session import db_session diff --git a/tests/conftest.py b/tests/conftest.py index 0885854c..3a1c8f0c 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -1,16 +1,17 @@ # -*- coding: utf-8 -*- # SPDX-License-Identifier: MIT -import koji -import os -import pytest - +from __future__ import absolute_import from datetime import datetime +import os + +import koji import mock +import pytest 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.common.models import BUILD_STATES +from module_build_service.common.utils import load_mmd, mmd_to_str from module_build_service.scheduler.db_session import db_session from tests import clean_database, read_staged_data, module_build_from_modulemd diff --git a/tests/test_build/test_build.py b/tests/test_build/test_build.py index 6c64e600..bb7f7e85 100644 --- a/tests/test_build/test_build.py +++ b/tests/test_build/test_build.py @@ -1,44 +1,43 @@ # -*- coding: utf-8 -*- # SPDX-License-Identifier: MIT -import sched -import koji +from __future__ import absolute_import +from datetime import datetime, timedelta +import hashlib +import itertools +import json import os -import re from os import path, mkdir from os.path import dirname -from shutil import copyfile -from datetime import datetime, timedelta +import re +import sched from random import randint -import hashlib -import moksha.hub +from shutil import copyfile + 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, 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 -from module_build_service.scheduler.handlers.components import ( - build_task_finalize as build_task_finalize_handler) -from module_build_service.scheduler.handlers.repos import done as repos_done_handler - -from mock import patch, PropertyMock, Mock, MagicMock -from werkzeug.datastructures import FileStorage import kobo +import koji +from mock import patch, PropertyMock, Mock, MagicMock +import moksha.hub import pytest +from werkzeug.datastructures import FileStorage -import json -import itertools - +from module_build_service import app, conf, build_logs, log from module_build_service.builder import GenericBuilder -from module_build_service.builder.MockModuleBuilder import load_local_builds -from module_build_service.builder.utils import validate_koji_tag from module_build_service.builder.KojiModuleBuilder import KojiModuleBuilder +from module_build_service.builder.MockModuleBuilder import load_local_builds +from module_build_service.builder.utils import get_rpm_release, validate_koji_tag +from module_build_service.common import models +from module_build_service.common.errors import Forbidden +from module_build_service.common.utils import load_mmd, import_mmd +from module_build_service.scheduler import events +from module_build_service.scheduler.db_session import db_session +import module_build_service.scheduler.consumer +from module_build_service.scheduler.handlers.components import ( + build_task_finalize as build_task_finalize_handler +) +import module_build_service.scheduler.handlers.repos +from module_build_service.scheduler.handlers.repos import done as repos_done_handler +from module_build_service.scheduler.handlers.tags import tagged as tagged_handler from tests import clean_database, read_staged_data, staged_data_filename base_dir = dirname(dirname(__file__)) diff --git a/tests/test_builder/test_base.py b/tests/test_builder/test_base.py index 19b4e336..6dd686f0 100644 --- a/tests/test_builder/test_base.py +++ b/tests/test_builder/test_base.py @@ -1,17 +1,17 @@ # -*- coding: utf-8 -*- # SPDX-License-Identifier: MIT +from __future__ import absolute_import + import mock - -import module_build_service.common.models -import module_build_service.builder -import module_build_service.resolver - -from tests import init_data - -from module_build_service.scheduler.db_session import db_session -from module_build_service.builder import GenericBuilder from mock import patch +import module_build_service.builder +from module_build_service.builder import GenericBuilder +import module_build_service.common.models +import module_build_service.resolver +from module_build_service.scheduler.db_session import db_session +from tests import init_data + class TestGenericBuilder: def setup_method(self, test_method): diff --git a/tests/test_builder/test_builder_utils.py b/tests/test_builder/test_builder_utils.py index 63883ae0..dbad5db4 100644 --- a/tests/test_builder/test_builder_utils.py +++ b/tests/test_builder/test_builder_utils.py @@ -1,7 +1,8 @@ # -*- coding: utf-8 -*- # SPDX-License-Identifier: MIT -import tempfile +from __future__ import absolute_import import shutil +import tempfile from mock import call, MagicMock, Mock, patch, PropertyMock import pytest @@ -9,9 +10,9 @@ import pytest 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 +from module_build_service.scheduler.db_session import db_session from tests import init_data, read_staged_data, scheduler_init_data diff --git a/tests/test_builder/test_content_generator.py b/tests/test_builder/test_content_generator.py index 1144c61f..020707b4 100644 --- a/tests/test_builder/test_content_generator.py +++ b/tests/test_builder/test_content_generator.py @@ -1,26 +1,24 @@ # -*- coding: utf-8 -*- # SPDX-License-Identifier: MIT +from __future__ import absolute_import import io -import pytest import json - import os from os import path +import kobo.rpmlib +import koji +from mock import patch, Mock, call, mock_open +import pytest + from module_build_service import conf, build_logs, Modulemd +from module_build_service.builder.KojiContentGenerator import KojiContentGenerator 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 - -from mock import patch, Mock, call, mock_open -import kobo.rpmlib - from tests import init_data from tests.test_web.test_views import FakeSCM -import koji - -from module_build_service.builder.KojiContentGenerator import KojiContentGenerator GET_USER_RV = { "id": 3686, diff --git a/tests/test_builder/test_koji.py b/tests/test_builder/test_koji.py index d721d7bd..fb566518 100644 --- a/tests/test_builder/test_koji.py +++ b/tests/test_builder/test_koji.py @@ -1,5 +1,6 @@ # -*- coding: utf-8 -*- # SPDX-License-Identifier: MIT +from __future__ import absolute_import from collections import OrderedDict import os import shutil @@ -10,14 +11,14 @@ import mock from mock import patch, MagicMock import pytest -import module_build_service.scheduler.handlers.repos -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 -from module_build_service.builder.KojiModuleBuilder import KojiModuleBuilder from module_build_service.builder import GenericBuilder +from module_build_service.builder.KojiModuleBuilder import KojiModuleBuilder +import module_build_service.common.models +from module_build_service.common.utils import mmd_to_str from module_build_service.scheduler import events +from module_build_service.scheduler.db_session import db_session +import module_build_service.scheduler.handlers.repos from tests import init_data, clean_database, make_module_in_db diff --git a/tests/test_builder/test_mock.py b/tests/test_builder/test_mock.py index 47b999db..d6660809 100644 --- a/tests/test_builder/test_mock.py +++ b/tests/test_builder/test_mock.py @@ -1,5 +1,6 @@ # -*- coding: utf-8 -*- # SPDX-License-Identifier: MIT +from __future__ import absolute_import import os import tempfile import shutil @@ -11,17 +12,17 @@ import mock import pytest 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.common.models import ModuleBuild, ComponentBuild from module_build_service.builder.MockModuleBuilder import ( import_fake_base_module, import_builds_from_local_dnf_repos, load_local_builds, MockModuleBuilder, ) +from module_build_service.common import models +from module_build_service.common.models import ModuleBuild, ComponentBuild +from module_build_service.common.utils import load_mmd, mmd_to_str from module_build_service.scheduler import events +from module_build_service.scheduler.db_session import db_session from tests import clean_database, make_module_in_db, read_staged_data, staged_data_filename diff --git a/tests/test_common/test_config.py b/tests/test_common/test_config.py index 3ccb7ba1..275d9a19 100644 --- a/tests/test_common/test_config.py +++ b/tests/test_common/test_config.py @@ -1,5 +1,6 @@ # -*- coding: utf-8 -*- # SPDX-License-Identifier: MIT +from __future__ import absolute_import import os.path from module_build_service import conf diff --git a/tests/test_common/test_koji.py b/tests/test_common/test_koji.py index 16f4b1d3..f8d7da50 100644 --- a/tests/test_common/test_koji.py +++ b/tests/test_common/test_koji.py @@ -1,5 +1,7 @@ # -*- coding: utf-8 -*- # SPDX-License-Identifier: MIT +from __future__ import absolute_import + import mock from module_build_service.common.koji import get_session diff --git a/tests/test_common/test_logger.py b/tests/test_common/test_logger.py index c17577b9..d5ef2f5b 100644 --- a/tests/test_common/test_logger.py +++ b/tests/test_common/test_logger.py @@ -1,5 +1,6 @@ # -*- coding: utf-8 -*- # SPDX-License-Identifier: MIT +from __future__ import absolute_import import os from os import path import shutil @@ -7,9 +8,9 @@ import tempfile 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.common.logger import ModuleBuildLogs from module_build_service.scheduler.consumer import MBSConsumer +from module_build_service.scheduler.db_session import db_session from tests import init_data diff --git a/tests/test_common/test_messaging.py b/tests/test_common/test_messaging.py index 81d60e27..5d661344 100644 --- a/tests/test_common/test_messaging.py +++ b/tests/test_common/test_messaging.py @@ -1,5 +1,6 @@ # -*- coding: utf-8 -*- # SPDX-License-Identifier: MIT +from __future__ import absolute_import from module_build_service.common import messaging from module_build_service.scheduler.parser import FedmsgMessageParser diff --git a/tests/test_common/test_models/test_models.py b/tests/test_common/test_models/test_models.py index 12b3a124..c5d4ff9d 100644 --- a/tests/test_common/test_models/test_models.py +++ b/tests/test_common/test_models/test_models.py @@ -1,14 +1,21 @@ # -*- coding: utf-8 -*- # SPDX-License-Identifier: MIT -import pytest +from __future__ import absolute_import from mock import patch +import pytest + 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 tests import init_data as init_data_contexts, clean_database, read_staged_data -from tests import make_module_in_db, module_build_from_modulemd +from tests import ( + clean_database, + init_data as init_data_contexts, + make_module_in_db, + module_build_from_modulemd, + read_staged_data, +) @pytest.mark.usefixtures("model_tests_init_data") diff --git a/tests/test_common/test_monitor.py b/tests/test_common/test_monitor.py index 65854862..0cc651ac 100644 --- a/tests/test_common/test_monitor.py +++ b/tests/test_common/test_monitor.py @@ -1,15 +1,16 @@ # -*- coding: utf-8 -*- # SPDX-License-Identifier: MIT +from __future__ import absolute_import import os +import mock import pytest import requests -import mock from six.moves import reload_module -import module_build_service.common.monitor from module_build_service import app, conf from module_build_service.common import models +import module_build_service.common.monitor 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 81504f82..0ca17f94 100644 --- a/tests/test_common/test_resolve.py +++ b/tests/test_common/test_resolve.py @@ -1,12 +1,14 @@ # -*- coding: utf-8 -*- # SPDX-License-Identifier: MIT +from __future__ import absolute_import + from mock import patch, PropertyMock import pytest +from module_build_service import Modulemd 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 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_scm.py b/tests/test_common/test_scm.py index 664532d8..9766efae 100644 --- a/tests/test_common/test_scm.py +++ b/tests/test_common/test_scm.py @@ -1,13 +1,14 @@ # -*- coding: utf-8 -*- # SPDX-License-Identifier: MIT +from __future__ import absolute_import import os import shutil import tempfile import pytest -import module_build_service.common.scm from module_build_service.common.errors import ValidationError, UnprocessableEntity +import module_build_service.common.scm base_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), os.path.pardir, "scm_data")) repo_url = "file://" + base_dir + "/testrepo" diff --git a/tests/test_common/test_submit.py b/tests/test_common/test_submit.py index 63c70428..c4711e3e 100644 --- a/tests/test_common/test_submit.py +++ b/tests/test_common/test_submit.py @@ -1,5 +1,7 @@ # -*- coding: utf-8 -*- # SPDX-License-Identifier: MIT +from __future__ import absolute_import + import mock from module_build_service.common.submit import _is_eol_in_pdc diff --git a/tests/test_common/test_utils.py b/tests/test_common/test_utils.py index ed0cb0d5..e269fc66 100644 --- a/tests/test_common/test_utils.py +++ b/tests/test_common/test_utils.py @@ -1,11 +1,13 @@ # -*- coding: utf-8 -*- # SPDX-License-Identifier: MIT +from __future__ import absolute_import + import pytest from module_build_service.common import models +from module_build_service.common.errors import UnprocessableEntity 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 from tests import clean_database, read_staged_data diff --git a/tests/test_manage.py b/tests/test_manage.py index ee00918c..33072942 100644 --- a/tests/test_manage.py +++ b/tests/test_manage.py @@ -1,13 +1,15 @@ # -*- coding: utf-8 -*- # SPDX-License-Identifier: MIT -import pytest +from __future__ import absolute_import + from mock import patch +import pytest 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.scheduler.db_session import db_session 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 e93bc9be..bbbfb8f8 100644 --- a/tests/test_resolver/test_db.py +++ b/tests/test_resolver/test_db.py @@ -1,19 +1,20 @@ # -*- coding: utf-8 -*- # SPDX-License-Identifier: MIT +from __future__ import absolute_import import os from datetime import datetime from mock import patch, PropertyMock import pytest -import module_build_service.resolver as mbs_resolver from module_build_service import conf, Modulemd +from module_build_service.builder.MockModuleBuilder import load_local_builds 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 +import module_build_service.resolver as mbs_resolver 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 7bae5be7..415fc802 100644 --- a/tests/test_resolver/test_koji.py +++ b/tests/test_resolver/test_koji.py @@ -1,15 +1,17 @@ # -*- coding: utf-8 -*- # SPDX-License-Identifier: MIT -import pytest -from mock import patch, MagicMock +from __future__ import absolute_import from datetime import datetime +from mock import patch, MagicMock +import pytest + 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 +import tests @pytest.mark.usefixtures("reuse_component_init_data") diff --git a/tests/test_resolver/test_local.py b/tests/test_resolver/test_local.py index 784820db..c01a57cc 100644 --- a/tests/test_resolver/test_local.py +++ b/tests/test_resolver/test_local.py @@ -1,13 +1,15 @@ # -*- coding: utf-8 -*- # SPDX-License-Identifier: MIT -import pytest +from __future__ import absolute_import from datetime import datetime +import pytest + 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.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 +import module_build_service.resolver as mbs_resolver import tests diff --git a/tests/test_resolver/test_mbs.py b/tests/test_resolver/test_mbs.py index 95e6eac4..b0cd0568 100644 --- a/tests/test_resolver/test_mbs.py +++ b/tests/test_resolver/test_mbs.py @@ -1,13 +1,15 @@ # -*- coding: utf-8 -*- # SPDX-License-Identifier: MIT +from __future__ import absolute_import + from mock import patch, PropertyMock, Mock, call from module_build_service import app, conf from module_build_service.builder.MockModuleBuilder import load_local_builds +import module_build_service.common.models 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.common.models import tests diff --git a/tests/test_scheduler/test_batches.py b/tests/test_scheduler/test_batches.py index d7130e9c..0d3beb9a 100644 --- a/tests/test_scheduler/test_batches.py +++ b/tests/test_scheduler/test_batches.py @@ -1,18 +1,20 @@ # -*- coding: utf-8 -*- # SPDX-License-Identifier: MIT +from __future__ import absolute_import + import koji -from mock import patch import mock +from mock import 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.builder import GenericBuilder from module_build_service.builder.KojiModuleBuilder import KojiModuleBuilder +from module_build_service.builder.utils import validate_koji_tag +from module_build_service.common import models from module_build_service.scheduler import events from module_build_service.scheduler.batches import start_build_component, start_next_batch_build -from module_build_service.builder.utils import validate_koji_tag +from module_build_service.scheduler.db_session import db_session class DummyModuleBuilder(GenericBuilder): diff --git a/tests/test_scheduler/test_celery_route_task.py b/tests/test_scheduler/test_celery_route_task.py index b2ed59ed..c8793ee5 100644 --- a/tests/test_scheduler/test_celery_route_task.py +++ b/tests/test_scheduler/test_celery_route_task.py @@ -1,11 +1,12 @@ # -*- coding: utf-8 -*- # SPDX-License-Identifier: MIT +from __future__ import absolute_import + import mock from module_build_service import celery_app, conf from module_build_service.scheduler.handlers import components, greenwave, modules, repos, tags from module_build_service.scheduler.producer import fail_lost_builds - from tests import scheduler_init_data diff --git a/tests/test_scheduler/test_consumer.py b/tests/test_scheduler/test_consumer.py index 3a2d7f32..f7405c59 100644 --- a/tests/test_scheduler/test_consumer.py +++ b/tests/test_scheduler/test_consumer.py @@ -1,6 +1,9 @@ # -*- coding: utf-8 -*- # SPDX-License-Identifier: MIT +from __future__ import absolute_import + from mock import patch, MagicMock + from module_build_service.scheduler import events from module_build_service.scheduler.consumer import MBSConsumer diff --git a/tests/test_scheduler/test_default_modules.py b/tests/test_scheduler/test_default_modules.py index 6937fc1e..64186a4b 100644 --- a/tests/test_scheduler/test_default_modules.py +++ b/tests/test_scheduler/test_default_modules.py @@ -1,5 +1,6 @@ # -*- coding: utf-8 -*- # SPDX-License-Identifier: MIT +from __future__ import absolute_import from collections import namedtuple import errno @@ -8,11 +9,11 @@ from mock import call, Mock, patch, PropertyMock 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.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 import default_modules +from module_build_service.scheduler.db_session import db_session from tests import clean_database, make_module_in_db, read_staged_data diff --git a/tests/test_scheduler/test_greenwave.py b/tests/test_scheduler/test_greenwave.py index 6bd0d68f..d708d017 100644 --- a/tests/test_scheduler/test_greenwave.py +++ b/tests/test_scheduler/test_greenwave.py @@ -1,5 +1,6 @@ # -*- coding: utf-8 -*- # SPDX-License-Identifier: MIT +from __future__ import absolute_import import json from mock import patch, Mock diff --git a/tests/test_scheduler/test_greenwave_handler.py b/tests/test_scheduler/test_greenwave_handler.py index ad35a415..e281583f 100644 --- a/tests/test_scheduler/test_greenwave_handler.py +++ b/tests/test_scheduler/test_greenwave_handler.py @@ -1,17 +1,20 @@ # -*- coding: utf-8 -*- # SPDX-License-Identifier: MIT -import pytest +from __future__ import absolute_import from mock import call, patch, PropertyMock, Mock +import pytest 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 +import module_build_service.common.config 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 +from module_build_service.scheduler.db_session import db_session +from module_build_service.scheduler.handlers.greenwave import ( + decision_update, get_corresponding_module_build +) from tests import clean_database, make_module_in_db diff --git a/tests/test_scheduler/test_module_init.py b/tests/test_scheduler/test_module_init.py index 361f85a8..3c1238f7 100644 --- a/tests/test_scheduler/test_module_init.py +++ b/tests/test_scheduler/test_module_init.py @@ -1,16 +1,17 @@ # -*- coding: utf-8 -*- # SPDX-License-Identifier: MIT +from __future__ import absolute_import import os from mock import patch, PropertyMock +from module_build_service import build_logs, conf +from module_build_service.common.models import ModuleBuild from module_build_service.common.utils import load_mmd, mmd_to_str +from module_build_service.scheduler.db_session import db_session +import module_build_service.scheduler.handlers.modules from tests import clean_database, read_staged_data 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.common.models import ModuleBuild class TestModuleInit: diff --git a/tests/test_scheduler/test_module_wait.py b/tests/test_scheduler/test_module_wait.py index bf594634..9aca0f62 100644 --- a/tests/test_scheduler/test_module_wait.py +++ b/tests/test_scheduler/test_module_wait.py @@ -1,16 +1,19 @@ # -*- coding: utf-8 -*- # SPDX-License-Identifier: MIT +from __future__ import absolute_import +import os + +import koji import mock from mock import patch -import module_build_service.scheduler.handlers.modules -import os -import koji import pytest -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.common.models import ComponentBuild, ModuleBuild +import module_build_service.resolver +from module_build_service.scheduler.db_session import db_session +import module_build_service.scheduler.handlers.modules +from tests import scheduler_init_data 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 c70d3607..0c01ed6a 100644 --- a/tests/test_scheduler/test_poller.py +++ b/tests/test_scheduler/test_poller.py @@ -1,5 +1,6 @@ # -*- coding: utf-8 -*- # SPDX-License-Identifier: MIT +from __future__ import absolute_import from datetime import datetime, timedelta import re @@ -10,8 +11,8 @@ 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 module_build_service.scheduler.db_session import db_session from tests import clean_database, make_module_in_db diff --git a/tests/test_scheduler/test_repo_done.py b/tests/test_scheduler/test_repo_done.py index 4f980e9c..317cbfa5 100644 --- a/tests/test_scheduler/test_repo_done.py +++ b/tests/test_scheduler/test_repo_done.py @@ -1,11 +1,13 @@ # -*- coding: utf-8 -*- # SPDX-License-Identifier: MIT +from __future__ import absolute_import + import mock -import module_build_service.scheduler.handlers.repos import module_build_service.common.models -from module_build_service.scheduler.db_session import db_session from module_build_service.common.models import ComponentBuild +from module_build_service.scheduler.db_session import db_session +import module_build_service.scheduler.handlers.repos from tests import scheduler_init_data diff --git a/tests/test_scheduler/test_reuse.py b/tests/test_scheduler/test_reuse.py index 0a5776e3..804cb40a 100644 --- a/tests/test_scheduler/test_reuse.py +++ b/tests/test_scheduler/test_reuse.py @@ -1,5 +1,7 @@ # -*- coding: utf-8 -*- # SPDX-License-Identifier: MIT +from __future__ import absolute_import + import mock import pytest from sqlalchemy.orm.session import make_transient diff --git a/tests/test_scheduler/test_submit.py b/tests/test_scheduler/test_submit.py index 350aa497..4bee0e22 100644 --- a/tests/test_scheduler/test_submit.py +++ b/tests/test_scheduler/test_submit.py @@ -1,15 +1,16 @@ # -*- coding: utf-8 -*- # SPDX-License-Identifier: MIT +from __future__ import absolute_import from datetime import datetime import mock 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 from module_build_service import app, conf from module_build_service.common import models from module_build_service.common.errors import UnprocessableEntity +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.scheduler.handlers.components from module_build_service.scheduler.submit import ( get_build_arches, format_mmd, record_component_builds, record_module_build_arches diff --git a/tests/test_scheduler/test_tag_tagged.py b/tests/test_scheduler/test_tag_tagged.py index 992edd8e..97e04c23 100644 --- a/tests/test_scheduler/test_tag_tagged.py +++ b/tests/test_scheduler/test_tag_tagged.py @@ -1,17 +1,16 @@ # -*- coding: utf-8 -*- # SPDX-License-Identifier: MIT -import mock -import pytest - -from mock import patch - -import module_build_service.scheduler.handlers.repos -import module_build_service.scheduler.handlers.tags -import module_build_service.common.models - -from module_build_service.scheduler.db_session import db_session +from __future__ import absolute_import import koji +import mock +from mock import patch +import pytest + +import module_build_service.common.models +from module_build_service.scheduler.db_session import db_session +import module_build_service.scheduler.handlers.repos +import module_build_service.scheduler.handlers.tags @pytest.mark.usefixtures("reuse_component_init_data") diff --git a/tests/test_scheduler/test_ursine.py b/tests/test_scheduler/test_ursine.py index b4edbdaf..68176fc8 100644 --- a/tests/test_scheduler/test_ursine.py +++ b/tests/test_scheduler/test_ursine.py @@ -1,5 +1,7 @@ # -*- coding: utf-8 -*- # SPDX-License-Identifier: MIT +from __future__ import absolute_import + from mock import patch, Mock from module_build_service import conf diff --git a/tests/test_web/test_auth.py b/tests/test_web/test_auth.py index d7de4617..d61ff563 100644 --- a/tests/test_web/test_auth.py +++ b/tests/test_web/test_auth.py @@ -1,16 +1,17 @@ # -*- coding: utf-8 -*- # SPDX-License-Identifier: MIT +from __future__ import absolute_import from os import path -import pytest -import requests import mock from mock import patch, PropertyMock, Mock +import pytest +import requests -import module_build_service.web.auth -import module_build_service.common.errors -import module_build_service.common.config as mbs_config from module_build_service import app +import module_build_service.common.config as mbs_config +import module_build_service.common.errors +import module_build_service.web.auth class TestAuthModule: diff --git a/tests/test_web/test_mmd_resolver.py b/tests/test_web/test_mmd_resolver.py index 1e6c0879..548f7a73 100644 --- a/tests/test_web/test_mmd_resolver.py +++ b/tests/test_web/test_mmd_resolver.py @@ -1,11 +1,13 @@ # -*- coding: utf-8 -*- # SPDX-License-Identifier: MIT +from __future__ import absolute_import import collections + import pytest import solv -from module_build_service.web.mmd_resolver import MMDResolver from module_build_service import Modulemd +from module_build_service.web.mmd_resolver import MMDResolver class TestMMDResolver: diff --git a/tests/test_web/test_mse.py b/tests/test_web/test_mse.py index 5ad6d106..cce141ec 100644 --- a/tests/test_web/test_mse.py +++ b/tests/test_web/test_mse.py @@ -1,9 +1,11 @@ # -*- coding: utf-8 -*- # SPDX-License-Identifier: MIT +from __future__ import absolute_import + import pytest -from module_build_service.scheduler.db_session import db_session from module_build_service.common.errors import StreamAmbigous +from module_build_service.scheduler.db_session import db_session 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 65dd80e3..495b0c68 100644 --- a/tests/test_web/test_submit.py +++ b/tests/test_web/test_submit.py @@ -1,5 +1,6 @@ # -*- coding: utf-8 -*- # SPDX-License-Identifier: MIT +from __future__ import absolute_import import io from os import path from shutil import rmtree @@ -10,9 +11,9 @@ import pytest from werkzeug.datastructures import FileStorage from module_build_service.common import models +from module_build_service.common.errors import ValidationError 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 from module_build_service.web.submit import ( get_prefixed_version, submit_module_build, submit_module_build_from_yaml ) diff --git a/tests/test_web/test_views.py b/tests/test_web/test_views.py index bc1cc201..31166b76 100644 --- a/tests/test_web/test_views.py +++ b/tests/test_web/test_views.py @@ -1,23 +1,30 @@ # -*- coding: utf-8 -*- # SPDX-License-Identifier: MIT +from __future__ import absolute_import import json from datetime import datetime from functools import partial -from sqlalchemy.orm import load_only - -from mock import patch, PropertyMock, Mock -from shutil import copyfile +import hashlib from os import path, mkdir from os.path import basename, dirname, splitext -from requests.utils import quote -import hashlib -import koji -import pytest import re -import sqlalchemy +from shutil import copyfile +import koji +from mock import patch, PropertyMock, Mock +from requests.utils import quote +import pytest +import sqlalchemy +from sqlalchemy.orm import load_only + +from module_build_service import app, version from module_build_service.builder.utils import get_rpm_release +import module_build_service.common.config as mbs_config +from module_build_service.common.errors import UnprocessableEntity +from module_build_service.common.models import ModuleBuild, BUILD_STATES, ComponentBuild from module_build_service.common.utils import load_mmd, import_mmd, mmd_to_str +from module_build_service.scheduler.db_session import db_session +import module_build_service.web.submit from tests import ( init_data, clean_database, @@ -27,12 +34,6 @@ from tests import ( time_assert, ) from tests.test_common.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.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 user = ("Homer J. Simpson", {"packager"})