def test_dict_conversion(): di = DistroInfo('rdo.yml', local_info=common.get_test_info_path('rdoinfo')) info = di.get_info() info_dicts = di.get_info(info_dicts=True) assert parse.info2dicts(info) == info_dicts assert parse.info2lists(info_dicts) == info
def test_find_element_ok(): di = DistroInfo('minimal.yml', local_info=common.get_test_info_path('minimal')) info = di.get_info() finding = query.find_element(info, 'queens', info_key='releases') assert (finding) assert (finding == info['releases'][1])
def test_find_element_in_sub_dict_list(): di = DistroInfo('minimal.yml', local_info=common.get_test_info_path('minimal')) info = di.get_info() finding = query.find_element(info, 'cloud7-openstack-rocky-testing', info_key='releases') assert (finding) assert (finding == info['releases'][0])
def test_attr_diff_nosuchattr(): di = DistroInfo('rdo.yml', local_info=common.get_test_info_path('rdoinfo')) info = di.get_info() info2 = copy.deepcopy(info) # Update distgit for nova for pkg in info2['packages']: if pkg['project'] == 'nova': pkg['upstream'] = 'https://opendev.org/openstack/foo' diff = query.attr_diff(info, info2, 'fooattr') assert (len(diff) == 0)
def test_remote_info(): di = DistroInfo('remote.yml', local_info=common.get_test_info_path('minimal')) info = di.get_info() edf = info['package-default'].get('extra-default-field') assert edf == 'foo-default-%(project)s' nova = get_package(info, 'openstack-nova') assert nova['extra-default-field'] == 'foo-default-nova' assert nova['extra-conf-field'] == 'foo-conf-nova' assert nova['master-distgit'] == 'overriden-nova' assert '*****@*****.**' in nova['maintainers'] rocky = get_release(info, 'rocky') assert rocky['branch'] == 'overriden-branch'
def test_attr_diff_newpkg(): di = DistroInfo('rdo.yml', local_info=common.get_test_info_path('rdoinfo')) info = di.get_info() info2 = copy.deepcopy(info) # Add package newpkg = { 'project': 'newproject', 'name': 'openstack-newproject', 'master-distgit': 'https://github.com/rdo-packages/new-distgit', 'upstream': 'https://opendev.org/openstack/newproject' } info2['packages'].append(newpkg) diff = query.attr_diff(info, info2, 'master-distgit') assert (len(diff) == 1) assert (diff[0][0] == 'openstack-newproject') assert (diff[0][1] == 'https://github.com/rdo-packages/new-distgit')
def test_rdoinfo_base(): di = DistroInfo('rdo.yml', local_info=common.get_test_info_path('rdoinfo')) info = di.get_info() common.assert_rdoinfo_base(info)
def test_rdoinfo_merge(): di = DistroInfo(['rdo.yml', 'deps.yml'], local_info=common.get_test_info_path('rdoinfo')) info = di.get_info() common.assert_rdoinfo_full(info)
def test_find_element_not_found(): di = DistroInfo('minimal.yml', local_info=common.get_test_info_path('minimal')) info = di.get_info() finding = query.find_element(info, 'aabb', info_key='releases') assert (not finding)
def test_attr_diff_nochanges(): di = DistroInfo('rdo.yml', local_info=common.get_test_info_path('rdoinfo')) info = di.get_info() info2 = copy.deepcopy(info) diff = query.attr_diff(info, info2, 'upstream') assert (len(diff) == 0)
def test_invalid_info_file(): di = DistroInfo('wololo.yml', local_info=common.get_test_info_path('broken')) with pytest.raises(IOError): info = di.get_info()
def test_self_import(): di = DistroInfo('self.yml', local_info=common.get_test_info_path('broken')) with pytest.raises(exception.CircularInfoInclude): info = di.get_info()
def test_invalid_import(): di = DistroInfo('invalid-import.yml', local_info=common.get_test_info_path('broken')) with pytest.raises(IOError): info = di.get_info()