mirror of
https://pagure.io/fm-orchestrator.git
synced 2026-04-15 22:20:27 +08:00
Fix tests in order to run with PostgreSQL
Most of the issues are caused by the use of SQLAlchemy database session. Some inline comments describe the issues in detail. Signed-off-by: Chenxiong Qi <cqi@redhat.com>
This commit is contained in:
@@ -39,7 +39,7 @@ from module_build_service.utils.general import mmd_to_str
|
||||
import pytest
|
||||
from mock import patch, MagicMock
|
||||
|
||||
from tests import conf, init_data, reuse_component_init_data, clean_database
|
||||
from tests import conf, init_data, reuse_component_init_data, clean_database, make_module
|
||||
|
||||
from module_build_service.builder.KojiModuleBuilder import KojiModuleBuilder
|
||||
|
||||
@@ -853,14 +853,14 @@ class TestGetDistTagSRPM:
|
||||
with open(self.expected_srpm_file, "w") as f:
|
||||
f.write("")
|
||||
|
||||
module_nsvc = dict(
|
||||
self.module_nsvc = dict(
|
||||
name="testmodule",
|
||||
stream="master",
|
||||
version="1",
|
||||
context=module_build_service.models.DEFAULT_MODULE_CONTEXT,
|
||||
)
|
||||
|
||||
xmd = {
|
||||
self.xmd = {
|
||||
"mbs": {
|
||||
"buildrequires": {
|
||||
"modulea": {
|
||||
@@ -872,14 +872,9 @@ class TestGetDistTagSRPM:
|
||||
"ursine_rpms": ["foo-0:1.0-1.fc28", "bar-0:2.0-1.fc28"],
|
||||
},
|
||||
},
|
||||
"koji_tag": "module-{name}-{stream}-{version}-{context}".format(**module_nsvc),
|
||||
"koji_tag": "module-{name}-{stream}-{version}-{context}".format(**self.module_nsvc),
|
||||
}
|
||||
}
|
||||
from tests import make_module
|
||||
|
||||
self.module_build = make_module(
|
||||
"{name}:{stream}:{version}:{context}".format(**module_nsvc), xmd=xmd
|
||||
)
|
||||
|
||||
def teardown_method(self):
|
||||
shutil.rmtree(self.tmp_srpm_build_dir)
|
||||
@@ -887,24 +882,29 @@ class TestGetDistTagSRPM:
|
||||
|
||||
@patch("tempfile.mkdtemp")
|
||||
@patch("module_build_service.builder.KojiModuleBuilder.execute_cmd")
|
||||
def _build_srpm(self, execute_cmd, mkdtemp):
|
||||
mkdtemp.return_value = self.tmp_srpm_build_dir
|
||||
return KojiModuleBuilder.get_disttag_srpm("disttag", self.module_build)
|
||||
def _build_srpm(self, db_session, execute_cmd, mkdtemp):
|
||||
module_build = make_module(
|
||||
db_session,
|
||||
"{name}:{stream}:{version}:{context}".format(**self.module_nsvc),
|
||||
xmd=self.xmd)
|
||||
|
||||
def test_return_srpm_file(self):
|
||||
srpm_file = self._build_srpm()
|
||||
mkdtemp.return_value = self.tmp_srpm_build_dir
|
||||
return KojiModuleBuilder.get_disttag_srpm("disttag", module_build)
|
||||
|
||||
def test_return_srpm_file(self, db_session):
|
||||
srpm_file = self._build_srpm(db_session)
|
||||
assert self.expected_srpm_file == srpm_file
|
||||
|
||||
def test_filtered_rpms_are_added(self):
|
||||
self._build_srpm()
|
||||
def test_filtered_rpms_are_added(self, db_session):
|
||||
self._build_srpm(db_session)
|
||||
|
||||
with open(self.spec_file, "r") as f:
|
||||
content = f.read()
|
||||
for nevr in ["baz-devel-0:0.1-6.fc28", "baz-doc-0:0.1-6.fc28"]:
|
||||
assert KojiModuleBuilder.format_conflicts_line(nevr) + "\n" in content
|
||||
|
||||
def test_ursine_rpms_are_added(self):
|
||||
self._build_srpm()
|
||||
def test_ursine_rpms_are_added(self, db_session):
|
||||
self._build_srpm(db_session)
|
||||
|
||||
with open(self.spec_file, "r") as f:
|
||||
content = f.read()
|
||||
|
||||
@@ -7,7 +7,7 @@ from textwrap import dedent
|
||||
|
||||
import kobo.rpmlib
|
||||
|
||||
from module_build_service import conf, db
|
||||
from module_build_service import conf
|
||||
from module_build_service.models import ModuleBuild, ComponentBuild, make_session
|
||||
from module_build_service.builder.MockModuleBuilder import MockModuleBuilder
|
||||
from module_build_service.utils import import_fake_base_module, load_mmd_file, mmd_to_str
|
||||
@@ -24,31 +24,6 @@ class TestMockModuleBuilder:
|
||||
shutil.rmtree(self.resultdir)
|
||||
|
||||
def _create_module_with_filters(self, session, batch, state):
|
||||
comp_builds = [
|
||||
{
|
||||
"module_id": 2,
|
||||
"package": "ed",
|
||||
"format": "rpms",
|
||||
"scmurl": (
|
||||
"https://src.fedoraproject.org/rpms/ed"
|
||||
"?#01bf8330812fea798671925cc537f2f29b0bd216"
|
||||
),
|
||||
"batch": 2,
|
||||
"ref": "01bf8330812fea798671925cc537f2f29b0bd216",
|
||||
},
|
||||
{
|
||||
"module_id": 2,
|
||||
"package": "mksh",
|
||||
"format": "rpms",
|
||||
"scmurl": (
|
||||
"https://src.fedoraproject.org/rpms/mksh"
|
||||
"?#f70fd11ddf96bce0e2c64309706c29156b39141d"
|
||||
),
|
||||
"batch": 3,
|
||||
"ref": "f70fd11ddf96bce0e2c64309706c29156b39141d",
|
||||
},
|
||||
]
|
||||
|
||||
base_dir = os.path.abspath(os.path.dirname(__file__))
|
||||
mmd = load_mmd_file(
|
||||
os.path.join(base_dir, "..", "staged_data", "testmodule-with-filters.yaml"))
|
||||
@@ -102,11 +77,37 @@ class TestMockModuleBuilder:
|
||||
module.koji_tag = "module-mbs-testmodule-test-20171027111452"
|
||||
module.batch = batch
|
||||
session.add(module)
|
||||
session.commit()
|
||||
|
||||
comp_builds = [
|
||||
{
|
||||
"module_id": module.id,
|
||||
"state": state,
|
||||
"package": "ed",
|
||||
"format": "rpms",
|
||||
"scmurl": (
|
||||
"https://src.fedoraproject.org/rpms/ed"
|
||||
"?#01bf8330812fea798671925cc537f2f29b0bd216"
|
||||
),
|
||||
"batch": 2,
|
||||
"ref": "01bf8330812fea798671925cc537f2f29b0bd216",
|
||||
},
|
||||
{
|
||||
"module_id": module.id,
|
||||
"state": state,
|
||||
"package": "mksh",
|
||||
"format": "rpms",
|
||||
"scmurl": (
|
||||
"https://src.fedoraproject.org/rpms/mksh"
|
||||
"?#f70fd11ddf96bce0e2c64309706c29156b39141d"
|
||||
),
|
||||
"batch": 3,
|
||||
"ref": "f70fd11ddf96bce0e2c64309706c29156b39141d",
|
||||
},
|
||||
]
|
||||
|
||||
for build in comp_builds:
|
||||
cb = ComponentBuild(**dict(build, format="rpms", state=state))
|
||||
session.add(cb)
|
||||
session.commit()
|
||||
session.add(ComponentBuild(**build))
|
||||
session.commit()
|
||||
|
||||
return module
|
||||
@@ -186,9 +187,6 @@ class TestMockModuleBuilderAddRepos:
|
||||
def setup_method(self, test_method):
|
||||
clean_database(add_platform_module=False)
|
||||
import_fake_base_module("platform:f29:1:000000")
|
||||
self.platform = ModuleBuild.get_last_build_in_stream(db.session, "platform", "f29")
|
||||
self.foo = make_module("foo:1:1:1", {"platform": ["f29"]}, {"platform": ["f29"]})
|
||||
self.app = make_module("app:1:1:1", {"platform": ["f29"]}, {"platform": ["f29"]})
|
||||
|
||||
@mock.patch("module_build_service.conf.system", new="mock")
|
||||
@mock.patch(
|
||||
@@ -205,19 +203,25 @@ class TestMockModuleBuilderAddRepos:
|
||||
"module_build_service.builder.MockModuleBuilder.MockModuleBuilder._write_mock_config"
|
||||
)
|
||||
def test_buildroot_add_repos(
|
||||
self, write_config, load_config, patched_open, base_module_repofiles
|
||||
self, write_config, load_config, patched_open, base_module_repofiles, db_session
|
||||
):
|
||||
platform = ModuleBuild.get_last_build_in_stream(db_session, "platform", "f29")
|
||||
foo = make_module(
|
||||
db_session, "foo:1:1:1", {"platform": ["f29"]}, {"platform": ["f29"]})
|
||||
app = make_module(
|
||||
db_session, "app:1:1:1", {"platform": ["f29"]}, {"platform": ["f29"]})
|
||||
|
||||
patched_open.side_effect = [
|
||||
mock.mock_open(read_data="[fake]\nrepofile 1\n").return_value,
|
||||
mock.mock_open(read_data="[fake]\nrepofile 2\n").return_value,
|
||||
mock.mock_open(read_data="[fake]\nrepofile 3\n").return_value,
|
||||
]
|
||||
|
||||
builder = MockModuleBuilder("user", self.app, conf, "module-app", [])
|
||||
builder = MockModuleBuilder("user", app, conf, "module-app", [])
|
||||
|
||||
dependencies = {
|
||||
"repofile://": [self.platform.mmd()],
|
||||
"repofile:///etc/yum.repos.d/foo.repo": [self.foo.mmd(), self.app.mmd()],
|
||||
"repofile://": [platform.mmd()],
|
||||
"repofile:///etc/yum.repos.d/foo.repo": [foo.mmd(), app.mmd()],
|
||||
}
|
||||
|
||||
builder.buildroot_add_repos(dependencies)
|
||||
|
||||
Reference in New Issue
Block a user