1import os
2
3from rosdistro import get_index, get_release_file
4from rosdistro.loader import load_url
5from rosdistro.release_file import ReleaseFile
6
7import yaml
8
9FILES_DIR = os.path.normpath(os.path.join(os.path.dirname(os.path.abspath(__file__)), 'files'))
10
11
12def test_release_file():
13    url = 'file://' + FILES_DIR + '/foo/distribution.yaml'
14    yaml_str = load_url(url)
15    data = yaml.load(yaml_str)
16    rel_file = ReleaseFile('foo', data)
17    _validate_rel_file(rel_file)
18
19
20def test_get_release_file():
21    url = 'file://' + FILES_DIR + '/index_v2.yaml'
22    i = get_index(url)
23    rel_file = get_release_file(i, 'foo')
24    _validate_rel_file(rel_file)
25
26
27def _validate_rel_file(rel_file):
28    assert('bar_repo' in rel_file.repositories)
29    repo = rel_file.repositories['bar_repo']
30    assert repo.package_names == ['bar_repo']
31    assert 'bar_repo' in rel_file.packages
32
33    assert'baz-repo' in rel_file.repositories
34    repo = rel_file.repositories['baz-repo']
35    assert set(repo.package_names) == set(['baz_pkg1', 'baz_pkg2'])
36    assert 'baz_pkg1' in rel_file.packages
37    assert 'baz_pkg2' in rel_file.packages
38