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
Ejemplo n.º 2
0
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])
Ejemplo n.º 3
0
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])
Ejemplo n.º 4
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)
Ejemplo n.º 5
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'
Ejemplo n.º 6
0
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')
Ejemplo n.º 7
0
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)
Ejemplo n.º 8
0
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)
Ejemplo n.º 9
0
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)
Ejemplo n.º 10
0
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)
Ejemplo n.º 11
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()
Ejemplo n.º 12
0
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()
Ejemplo n.º 13
0
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()