Reuse function load_mmd

GenericResolver.extract_modulemd is not removed, but deprecated. Call of it
will result in a deprecation message printed. Any new code should call
load_mmd.

Signed-off-by: Chenxiong Qi <cqi@redhat.com>
This commit is contained in:
Chenxiong Qi
2019-04-24 08:37:31 +08:00
parent 808b7beec8
commit 1146bb3043
16 changed files with 117 additions and 90 deletions

View File

@@ -45,7 +45,7 @@ import pungi.arch
from module_build_service import conf, log, build_logs, Modulemd, glib
from module_build_service.scm import SCM
from module_build_service.utils import to_text_type
from module_build_service.utils import to_text_type, load_mmd
logging.basicConfig(level=logging.DEBUG)
@@ -409,7 +409,7 @@ class KojiContentGenerator(object):
with open(mmd_path, 'rb') as mmd_f:
raw_data = mmd_f.read()
data = to_text_type(raw_data)
mmd = Modulemd.Module().new_from_string(data)
mmd = load_mmd(data)
ret['filename'] = mmd_filename
ret['filesize'] = len(raw_data)
ret['checksum'] = hashlib.md5(raw_data).hexdigest()

View File

@@ -41,7 +41,7 @@ from sqlalchemy.orm import validates, scoped_session, sessionmaker, load_only
import module_build_service.messaging
from module_build_service.glib import from_variant_dict
from module_build_service import db, log, get_url_for, app, conf, Modulemd
from module_build_service import db, log, get_url_for, app, conf
DEFAULT_MODULE_CONTEXT = '00000000'
@@ -416,13 +416,12 @@ class ModuleBuild(MBSBase):
return session.query(ModuleBuild).filter_by(koji_tag=tag).first()
def mmd(self):
from module_build_service.utils import load_mmd
try:
mmd = Modulemd.Module().new_from_string(self.modulemd)
mmd.upgrade()
return load_mmd(self.modulemd)
except Exception:
log.exception('An error occurred while trying to parse the modulemd')
raise ValueError("Invalid modulemd")
return mmd
@property
def previous_non_failed_state(self):
@@ -470,9 +469,9 @@ class ModuleBuild(MBSBase):
:return: Tuple with build_context, strem_build_context, runtime_context and
context hashes.
"""
from module_build_service.utils import load_mmd
try:
mmd = Modulemd.Module().new_from_string(mmd_str)
mmd.upgrade()
mmd = load_mmd(mmd_str)
except Exception:
raise ValueError("Invalid modulemd")
mbs_xmd = mmd.get_xmd().get('mbs', {})

View File

@@ -70,11 +70,12 @@ class DBResolver(GenericResolver):
less than or equal the stream version computed from `stream`.
:return: List of Modulemd metadata instances matching the query
"""
from module_build_service.utils import load_mmd
if version and context:
mmd = self._get_module(name, stream, version, context, strict=strict)
if mmd is None:
return
return [self.extract_modulemd(mmd['modulemd'])]
return [load_mmd(mmd['modulemd'])]
with models.make_session(self.config) as session:
if not version and not context:

View File

@@ -33,6 +33,7 @@ from module_build_service import db, conf
from module_build_service import models
from module_build_service.errors import UnprocessableEntity
from module_build_service.resolver.base import GenericResolver
from module_build_service.utils.submit import load_mmd
from module_build_service.utils.general import import_mmd
log = logging.getLogger()
@@ -113,7 +114,7 @@ class MBSResolver(GenericResolver):
if strict:
raise UnprocessableEntity("Failed to find module in MBS %r" % query)
else:
return None
return modules
if version is None and "stream_version_lte" not in kwargs:
# Only return the latest version
@@ -168,7 +169,7 @@ class MBSResolver(GenericResolver):
else:
return None
mmds.append(self.extract_modulemd(yaml, strict=strict))
mmds.append(load_mmd(yaml))
return mmds
def get_buildrequired_modulemds(self, name, stream, base_module_nsvc):
@@ -183,17 +184,9 @@ class MBSResolver(GenericResolver):
:rtype: list
:return: List of modulemd metadata.
"""
yaml = None
modules = self._get_modules(name, stream, strict=False,
base_module_br=base_module_nsvc)
if not modules:
return []
mmds = []
for module in modules:
yaml = module['modulemd']
mmds.append(self.extract_modulemd(yaml))
return mmds
return [load_mmd(module['modulemd']) for module in modules]
def resolve_profiles(self, mmd, keys):
"""
@@ -233,7 +226,7 @@ class MBSResolver(GenericResolver):
for module in modules:
yaml = module['modulemd']
dep_mmd = self.extract_modulemd(yaml)
dep_mmd = load_mmd(yaml)
# Take note of what rpms are in this dep's profile.
for key in keys:
if key in dep_mmd.get_profiles().keys():
@@ -281,7 +274,7 @@ class MBSResolver(GenericResolver):
queried_module = self._get_module(
name, stream, version, context, strict=strict)
yaml = queried_module['modulemd']
queried_mmd = self.extract_modulemd(yaml, strict=strict)
queried_mmd = load_mmd(yaml)
if (not queried_mmd or not queried_mmd.get_xmd().get('mbs') or
'buildrequires' not in queried_mmd.get_xmd()['mbs'].keys()):
@@ -316,7 +309,7 @@ class MBSResolver(GenericResolver):
if m["koji_tag"] is None:
continue
module_tags.setdefault(m["koji_tag"], [])
module_tags[m["koji_tag"]].append(self.extract_modulemd(m["modulemd"]))
module_tags[m["koji_tag"]].append(load_mmd(m["modulemd"]))
return module_tags
@@ -370,7 +363,7 @@ class MBSResolver(GenericResolver):
module_name, module_stream, module_version,
module_context, strict=True)
if module.get('modulemd'):
mmd = self.extract_modulemd(module['modulemd'])
mmd = load_mmd(module['modulemd'])
if mmd.get_xmd().get('mbs') and 'commit' in mmd.get_xmd()['mbs'].keys():
commit_hash = mmd.get_xmd()['mbs']['commit']
@@ -416,6 +409,6 @@ class MBSResolver(GenericResolver):
data = resp.json()
if data['items']:
modulemd = data['items'][0]['modulemd']
return self.extract_modulemd(modulemd)
return load_mmd(modulemd)
else:
return None

View File

@@ -28,7 +28,7 @@ import six
from abc import ABCMeta, abstractmethod
import module_build_service.config as cfg
from module_build_service import conf, Modulemd
from module_build_service import conf, log
class GenericResolver(six.with_metaclass(ABCMeta)):
@@ -100,12 +100,10 @@ class GenericResolver(six.with_metaclass(ABCMeta)):
@staticmethod
def extract_modulemd(yaml, strict=False):
try:
mmd = Modulemd.Module().new_from_string(yaml)
mmd.upgrade()
except Exception:
raise ValueError('Invalid modulemd')
return mmd
log.warning('GenericResolver.extract_modulemd is deprecated. Please call '
'module_build_service.utils.load_mmd in new code.')
from module_build_service.utils import load_mmd
return load_mmd(yaml)
@abstractmethod
def get_module_modulemds(self, name, stream, version=None, context=None, strict=False,

View File

@@ -29,6 +29,7 @@ import time
import shutil
import tempfile
import os
from functools import partial
from multiprocessing.dummy import Pool as ThreadPool
from datetime import datetime
import copy
@@ -39,14 +40,11 @@ import requests
from gi.repository import GLib
import module_build_service.scm
import module_build_service.resolver
from module_build_service import conf, db, log, models, Modulemd
from module_build_service.errors import (
ValidationError, UnprocessableEntity, Forbidden, Conflict)
from module_build_service import glib
from module_build_service.resolver import GenericResolver
from .mse import generate_expanded_mmds
def record_filtered_rpms(mmd):
@@ -63,6 +61,7 @@ def record_filtered_rpms(mmd):
"""
# Imported here to allow import of utils in GenericBuilder.
from module_build_service.builder import GenericBuilder
from module_build_service.resolver import GenericResolver
resolver = GenericResolver.create(conf)
builder = GenericBuilder.backends[conf.system]
@@ -615,6 +614,7 @@ def submit_module_build(username, mmd, params):
:return: List with submitted module builds.
"""
import koji # Placed here to avoid py2/py3 conflicts...
from .mse import generate_expanded_mmds
log.debug('Submitted %s module build for %s:%s:%s',
("scratch" if params.get('scratch', False) else "normal"),
@@ -839,7 +839,7 @@ def load_mmd(yaml, is_file=False):
error = 'The modulemd file {} not found!'.format(os.path.basename(yaml))
log.error('The modulemd file %s not found!', yaml)
else:
error = 'The modulemd is invalid. Please verify the syntax is correct'
error = 'The modulemd is invalid. Please verify the syntax is correct.'
log.debug('Modulemd content:\n%s', yaml)
log.exception(error)
raise UnprocessableEntity(error)
@@ -847,6 +847,9 @@ def load_mmd(yaml, is_file=False):
return mmd
load_mmd_file = partial(load_mmd, is_file=True)
def load_local_builds(local_build_nsvs, session=None):
"""
Loads previously finished local module builds from conf.mock_resultsdir

View File

@@ -26,12 +26,12 @@ from mock import patch
import time
import hashlib
from traceback import extract_stack
from module_build_service.utils import to_text_type
from module_build_service.utils import to_text_type, load_mmd_file
import koji
import module_build_service
from module_build_service import db
from module_build_service.utils import get_rpm_release, import_mmd, load_mmd
from module_build_service.utils import get_rpm_release, import_mmd
from module_build_service.config import init_config
from module_build_service.models import ModuleBuild, ComponentBuild, make_session, BUILD_STATES
from module_build_service import glib, Modulemd
@@ -106,7 +106,7 @@ def clean_database(add_platform_module=True):
db.drop_all()
db.create_all()
if add_platform_module:
mmd = load_mmd(os.path.join(base_dir, 'staged_data', 'platform.yaml'), True)
mmd = load_mmd_file(os.path.join(base_dir, 'staged_data', 'platform.yaml'))
import_mmd(db.session, mmd)
@@ -122,7 +122,7 @@ def init_data(data_size=10, contexts=False, multiple_stream_versions=False, scra
"""
clean_database()
if multiple_stream_versions:
mmd = load_mmd(os.path.join(base_dir, 'staged_data', 'platform.yaml'), True)
mmd = load_mmd_file(os.path.join(base_dir, 'staged_data', 'platform.yaml'))
for stream in ["f28.0.0", "f29.0.0", "f29.1.0", "f29.2.0"]:
mmd.set_name("platform")
mmd.set_stream(stream)
@@ -320,8 +320,7 @@ def scheduler_init_data(tangerine_state=None, scratch=False):
current_dir = os.path.dirname(__file__)
formatted_testmodule_yml_path = os.path.join(
current_dir, 'staged_data', 'formatted_testmodule.yaml')
mmd = Modulemd.Module().new_from_file(formatted_testmodule_yml_path)
mmd.upgrade()
mmd = load_mmd_file(formatted_testmodule_yml_path)
mmd.get_rpm_components()['tangerine'].set_buildorder(0)
platform_br = module_build_service.models.ModuleBuild.query.get(1)
@@ -418,8 +417,7 @@ def reuse_component_init_data():
current_dir = os.path.dirname(__file__)
formatted_testmodule_yml_path = os.path.join(
current_dir, 'staged_data', 'formatted_testmodule.yaml')
mmd = Modulemd.Module().new_from_file(formatted_testmodule_yml_path)
mmd.upgrade()
mmd = load_mmd_file(formatted_testmodule_yml_path)
platform_br = module_build_service.models.ModuleBuild.query.get(1)
@@ -589,8 +587,7 @@ def reuse_shared_userspace_init_data():
current_dir = os.path.dirname(__file__)
formatted_testmodule_yml_path = os.path.join(
current_dir, 'staged_data', 'shared-userspace-570.yaml')
mmd = Modulemd.Module().new_from_file(formatted_testmodule_yml_path)
mmd.upgrade()
mmd = load_mmd_file(formatted_testmodule_yml_path)
module_build = module_build_service.models.ModuleBuild(
name=mmd.get_name(),
@@ -641,8 +638,7 @@ def reuse_shared_userspace_init_data():
# Create shared-userspace-577, state is WAIT, no component built
formatted_testmodule_yml_path = os.path.join(
current_dir, 'staged_data', 'shared-userspace-577.yaml')
mmd2 = Modulemd.Module().new_from_file(formatted_testmodule_yml_path)
mmd2.upgrade()
mmd2 = load_mmd_file(formatted_testmodule_yml_path)
module_build = module_build_service.models.ModuleBuild(
name=mmd2.get_name(),

View File

@@ -1383,8 +1383,8 @@ class TestBuild:
Test that when a build is submitted with a buildrequire without a Koji tag,
MBS doesn't supply it as a dependency to the builder.
"""
metadata_mmd = module_build_service.utils.load_mmd(
path.join(base_dir, 'staged_data', 'build_metadata_module.yaml'), True)
metadata_mmd = module_build_service.utils.load_mmd_file(
path.join(base_dir, 'staged_data', 'build_metadata_module.yaml'))
module_build_service.utils.import_mmd(db.session, metadata_mmd)
FakeSCM(mocked_scm, 'testmodule', 'testmodule_br_metadata_module.yaml',

View File

@@ -865,7 +865,7 @@ class TestBuild:
def test_finalize_mmd_devel(self):
self.cg.devel = True
mmd = self.cg.module.mmd()
new_mmd = Modulemd.Module.new_from_string(self.cg._finalize_mmd("x86_64"))
new_mmd = module_build_service.utils.load_mmd(self.cg._finalize_mmd("x86_64"))
# Check that -devel suffix is set.
assert new_mmd.get_name().endswith("-devel")

View File

@@ -24,11 +24,11 @@ import os
from datetime import datetime
import module_build_service
from module_build_service.utils import load_mmd
from tests import db, clean_database
from module_build_service.config import init_config
from module_build_service.models import ModuleBuild, BUILD_STATES
from module_build_service import Modulemd
app = module_build_service.app
@@ -38,8 +38,7 @@ datadir = os.path.dirname(__file__) + '/data/'
def module_build_from_modulemd(yaml):
mmd = Modulemd.Module().new_from_string(yaml)
mmd.upgrade()
mmd = load_mmd(yaml)
build = ModuleBuild()
build.name = mmd.get_name()
build.stream = mmd.get_stream()

View File

@@ -29,7 +29,7 @@ from module_build_service.utils import to_text_type
import module_build_service.resolver as mbs_resolver
from module_build_service import app, db, models, glib, utils, Modulemd
from module_build_service.utils import import_mmd, load_mmd
from module_build_service.utils import import_mmd, load_mmd_file
from module_build_service.models import ModuleBuild
import tests
@@ -43,7 +43,7 @@ class TestDBModule:
tests.reuse_component_init_data()
def test_get_buildrequired_modulemds(self):
mmd = load_mmd(os.path.join(base_dir, 'staged_data', 'platform.yaml'), True)
mmd = load_mmd_file(os.path.join(base_dir, 'staged_data', 'platform.yaml'))
mmd.set_stream('f30.1.3')
import_mmd(db.session, mmd)
platform_f300103 = ModuleBuild.query.filter_by(stream='f30.1.3').one()

View File

@@ -26,7 +26,7 @@ from datetime import datetime
from module_build_service.utils import to_text_type
import module_build_service.resolver as mbs_resolver
from module_build_service import db
from module_build_service.utils import import_mmd, load_mmd
from module_build_service.utils import import_mmd, load_mmd_file
from module_build_service.models import ModuleBuild
import tests
@@ -40,7 +40,7 @@ class TestLocalResolverModule:
tests.reuse_component_init_data()
def test_get_buildrequired_modulemds(self):
mmd = load_mmd(os.path.join(base_dir, 'staged_data', 'platform.yaml'), True)
mmd = load_mmd_file(os.path.join(base_dir, 'staged_data', 'platform.yaml'))
mmd.set_stream('f8')
import_mmd(db.session, mmd)
platform_f8 = ModuleBuild.query.filter_by(stream='f8').one()

View File

@@ -25,7 +25,7 @@ from mock import patch, PropertyMock, Mock, call
import module_build_service.resolver as mbs_resolver
import module_build_service.utils
import module_build_service.models
from module_build_service import glib, Modulemd, app
from module_build_service import glib, app
import tests
@@ -205,7 +205,7 @@ class TestMBSModule:
def test_get_module_build_dependencies_empty_buildrequires(self, mock_session,
testmodule_mmd_9c690d0e):
mmd = Modulemd.Module().new_from_string(testmodule_mmd_9c690d0e)
mmd = module_build_service.utils.load_mmd(testmodule_mmd_9c690d0e)
# Wipe out the dependencies
mmd.set_dependencies()
xmd = glib.from_variant_dict(mmd.get_xmd())
@@ -324,3 +324,45 @@ class TestMBSModule:
set(['bar'])
}
assert result == expected
def test_get_empty_buildrequired_modulemds(self):
resolver = mbs_resolver.GenericResolver.create(tests.conf, backend='mbs')
with patch.object(resolver, 'session') as session:
session.get.return_value = Mock(ok=True)
session.get.return_value.json.return_value = {
'items': [], 'meta': {'next': None}
}
result = resolver.get_buildrequired_modulemds(
'nodejs', '10', 'platform:el8:1:00000000')
assert [] == result
def test_get_buildrequired_modulemds(self):
resolver = mbs_resolver.GenericResolver.create(tests.conf, backend='mbs')
with patch.object(resolver, 'session') as session:
session.get.return_value = Mock(ok=True)
session.get.return_value.json.return_value = {
'items': [{
'name': 'nodejs', 'stream': '10',
'version': 1, 'context': 'c1',
'modulemd': tests.make_module(
'nodejs:10:1:c1', store_to_db=False).dumps(),
}, {
'name': 'nodejs', 'stream': '10',
'version': 2, 'context': 'c1',
'modulemd': tests.make_module(
'nodejs:10:2:c1', store_to_db=False).dumps(),
}], 'meta': {'next': None}
}
result = resolver.get_buildrequired_modulemds(
'nodejs', '10', 'platform:el8:1:00000000')
assert 1 == len(result)
mmd = result[0]
assert 'nodejs' == mmd.get_name()
assert '10' == mmd.get_stream()
assert 1 == mmd.get_version()
assert 'c1' == mmd.get_context()

View File

@@ -25,7 +25,7 @@ from shutil import copyfile, rmtree
from datetime import datetime
from werkzeug.datastructures import FileStorage
from mock import patch
from module_build_service.utils import to_text_type
from module_build_service.utils import to_text_type, load_mmd_file
import module_build_service.utils
import module_build_service.scm
from module_build_service import models, conf
@@ -302,9 +302,8 @@ class TestUtils:
@pytest.mark.parametrize('context', ["c1", None])
def test_import_mmd_contexts(self, context):
mmd = Modulemd.Module().new_from_file(
path.join(BASE_DIR, '..', 'staged_data', 'formatted_testmodule.yaml'))
mmd.upgrade()
mmd = load_mmd_file(path.join(
BASE_DIR, '..', 'staged_data', 'formatted_testmodule.yaml'))
mmd.set_context(context)
xmd = glib.from_variant_dict(mmd.get_xmd())
@@ -429,7 +428,7 @@ class TestUtils:
scheduler_init_data(1)
mmd_path = path.abspath(path.join(
__file__, path.pardir, path.pardir, 'staged_data', 'build_metadata_module.yaml'))
metadata_mmd = module_build_service.utils.load_mmd(mmd_path, True)
metadata_mmd = module_build_service.utils.load_mmd_file(mmd_path)
module_build_service.utils.import_mmd(db.session, metadata_mmd)
build_one = models.ModuleBuild.query.get(2)
@@ -847,7 +846,7 @@ class TestUtils:
v = module_build_service.utils.submit.get_prefixed_version(mmd)
assert v == 7000120180205135154
@patch('module_build_service.utils.submit.generate_expanded_mmds')
@patch('module_build_service.utils.mse.generate_expanded_mmds')
def test_submit_build_new_mse_build(self, generate_expanded_mmds):
"""
Tests that finished build can be resubmitted in case the resubmitted
@@ -864,7 +863,7 @@ class TestUtils:
generate_expanded_mmds.return_value = [mmd1, mmd2]
# Create a copy of mmd1 without xmd.mbs, since that will cause validate_mmd to fail
mmd1_copy = Modulemd.Module.new_from_string(mmd1.dumps())
mmd1_copy = module_build_service.utils.load_mmd(mmd1.dumps())
mmd1_copy.set_xmd({})
builds = module_build_service.utils.submit_module_build("foo", mmd1_copy, {})
ret = {b.mmd().get_context(): b.state for b in builds}

View File

@@ -358,8 +358,8 @@ class TestUtilsModuleStreamExpansion:
def test__get_base_module_mmds(self):
"""Ensure the correct results are returned without duplicates."""
init_data(data_size=1, multiple_stream_versions=True)
mmd = module_build_service.utils.load_mmd(
os.path.join(base_dir, 'staged_data', 'testmodule_v2.yaml'), True)
mmd = module_build_service.utils.load_mmd_file(
os.path.join(base_dir, 'staged_data', 'testmodule_v2.yaml'))
deps = mmd.get_dependencies()
brs = deps[0].get_buildrequires()
brs['platform'].set(['f29.1.0', 'f29.2.0'])
@@ -380,8 +380,8 @@ class TestUtilsModuleStreamExpansion:
def test__get_base_module_mmds_virtual_streams(self, virtual_streams):
"""Ensure the correct results are returned without duplicates."""
init_data(data_size=1, multiple_stream_versions=True)
mmd = module_build_service.utils.load_mmd(
os.path.join(base_dir, 'staged_data', 'testmodule_v2.yaml'), True)
mmd = module_build_service.utils.load_mmd_file(
os.path.join(base_dir, 'staged_data', 'testmodule_v2.yaml'))
deps = mmd.get_dependencies()
brs = deps[0].get_buildrequires()
brs['platform'].set(['f29.2.0'])
@@ -406,8 +406,8 @@ class TestUtilsModuleStreamExpansion:
def test__get_base_module_mmds_virtual_streams_latest_stream_version(self):
init_data(data_size=1, multiple_stream_versions=True)
mmd = module_build_service.utils.load_mmd(
os.path.join(base_dir, 'staged_data', 'testmodule_v2.yaml'), True)
mmd = module_build_service.utils.load_mmd_file(
os.path.join(base_dir, 'staged_data', 'testmodule_v2.yaml'))
deps = mmd.get_dependencies()
brs = deps[0].get_buildrequires()
brs['platform'].set(['f35'])

View File

@@ -32,7 +32,7 @@ from os.path import basename, dirname, splitext
from requests.utils import quote
import hashlib
import pytest
from module_build_service.utils import to_text_type
from module_build_service.utils import to_text_type, load_mmd_file
import re
from tests import app, init_data, clean_database, reuse_component_init_data
@@ -40,10 +40,10 @@ from tests import read_staged_data
from tests.test_scm import base_dir as scm_base_dir
from module_build_service.errors import UnprocessableEntity
from module_build_service.models import ModuleBuild
from module_build_service import db, version, Modulemd
from module_build_service import db, version
import module_build_service.config as mbs_config
import module_build_service.scheduler.handlers.modules
from module_build_service.utils import import_mmd, load_mmd
from module_build_service.utils import import_mmd
from module_build_service.glib import dict_values, from_variant_dict
@@ -724,7 +724,7 @@ class TestViews:
def test_query_base_module_br_filters(self):
reuse_component_init_data()
mmd = load_mmd(path.join(base_dir, 'staged_data', 'platform.yaml'), True)
mmd = load_mmd_file(path.join(base_dir, 'staged_data', 'platform.yaml'))
mmd.set_stream('f30.1.3')
import_mmd(db.session, mmd)
platform_f300103 = ModuleBuild.query.filter_by(stream='f30.1.3').one()
@@ -830,8 +830,7 @@ class TestViews:
assert data['state_trace'][0]['state'] == 0
assert data['tasks'] == {}
assert data['siblings'] == []
mmd = Modulemd.Module().new_from_string(data['modulemd'])
mmd.upgrade()
module_build_service.utils.load_mmd(data['modulemd'])
# Make sure the buildrequires entry was created
module = ModuleBuild.query.get(8)
@@ -1299,7 +1298,7 @@ class TestViews:
rv = self.client.post(post_url, data=json.dumps(json_input))
data = json.loads(rv.data)
mmd = Modulemd.Module().new_from_string(data[0]['modulemd'])
mmd = module_build_service.utils.load_mmd(data[0]['modulemd'])
assert len(mmd.get_dependencies()) == 1
dep = mmd.get_dependencies()[0]
assert set(dep.get_buildrequires()['platform'].get()) == expected_br
@@ -1768,8 +1767,7 @@ class TestViews:
assert data['state_trace'][0]['state'] == 0
assert data['tasks'] == {}
assert data['siblings'] == []
mmd = Modulemd.Module().new_from_string(data['modulemd'])
mmd.upgrade()
module_build_service.utils.load_mmd(data['modulemd'])
# Make sure the buildrequires entry was created
module = ModuleBuild.query.get(8)
@@ -1857,8 +1855,7 @@ class TestViews:
assert data['state_trace'][0]['state'] == 0
assert data['tasks'] == {}
assert data['siblings'] == []
mmd = Modulemd.Module().new_from_string(data['modulemd'])
mmd.upgrade()
module_build_service.utils.load_mmd(data['modulemd'])
# Make sure the buildrequires entry was created
module = ModuleBuild.query.get(8)
@@ -1951,7 +1948,7 @@ class TestViews:
init_data(data_size=1, multiple_stream_versions=True)
# Create a platform for whatever the override is so the build submission succeeds
if platform_override:
platform_mmd = load_mmd(path.join(base_dir, 'staged_data', 'platform.yaml'), True)
platform_mmd = load_mmd_file(path.join(base_dir, 'staged_data', 'platform.yaml'))
platform_mmd.set_stream(platform_override)
if platform_override == 'el8.0.0':
xmd = from_variant_dict(platform_mmd.get_xmd())
@@ -1970,7 +1967,7 @@ class TestViews:
data = json.loads(rv.data)
assert rv.status_code == 201
mmd = Modulemd.Module().new_from_string(data[0]['modulemd'])
mmd = module_build_service.utils.load_mmd(data[0]['modulemd'])
assert len(mmd.get_dependencies()) == 1
dep = mmd.get_dependencies()[0]
if platform_override:
@@ -1994,7 +1991,7 @@ class TestViews:
mocked_regexes.return_value = [r'(?:\-LP\-)(.+)$']
init_data(data_size=1, multiple_stream_versions=True)
# Create a platform for the override so the build submission succeeds
platform_mmd = load_mmd(path.join(base_dir, 'staged_data', 'platform.yaml'), True)
platform_mmd = load_mmd_file(path.join(base_dir, 'staged_data', 'platform.yaml'))
platform_mmd.set_stream('product1.3')
import_mmd(db.session, platform_mmd)
@@ -2014,7 +2011,7 @@ class TestViews:
data = json.loads(rv.data)
assert rv.status_code == 201
mmd = Modulemd.Module().new_from_string(data[0]['modulemd'])
mmd = module_build_service.utils.load_mmd(data[0]['modulemd'])
assert len(mmd.get_dependencies()) == 1
dep = mmd.get_dependencies()[0]
# The buildrequire_override value should take precedence over the stream override from
@@ -2031,7 +2028,7 @@ class TestViews:
versioning and no virtual streams, that the dependency resolution succeeds.
"""
init_data(data_size=1, multiple_stream_versions=True)
platform_mmd = load_mmd(path.join(base_dir, 'staged_data', 'platform.yaml'), True)
platform_mmd = load_mmd_file(path.join(base_dir, 'staged_data', 'platform.yaml'))
platform_mmd.set_stream('el8.0.0')
import_mmd(db.session, platform_mmd)
@@ -2065,5 +2062,5 @@ class TestViews:
post_url, data=json.dumps({'branch': 'product1.2', 'scmurl': scm_url}))
assert rv.status_code == 201
data = json.loads(rv.data)[0]
mmd = Modulemd.Module().new_from_string(data['modulemd'])
mmd = module_build_service.utils.load_mmd(data['modulemd'])
assert mmd.get_xmd()['mbs']['disttag_marking'] == 'product12'