1import os
2
3from rosdistro import get_distribution_file, get_distribution_files, get_index
4from rosdistro.distribution_file import DistributionFile
5from rosdistro.loader import load_url
6
7import yaml
8
9FILES_DIR = os.path.normpath(os.path.join(os.path.dirname(os.path.abspath(__file__)), 'files'))
10
11
12def test_distribution_file():
13    url = 'file://' + FILES_DIR + '/foo/distribution.yaml'
14    yaml_str = load_url(url)
15    data = yaml.load(yaml_str)
16    dist_file = DistributionFile('foo', data)
17    _validate_dist_file(dist_file)
18
19
20def test_get_distribution_file():
21    url = 'file://' + FILES_DIR + '/index_v2.yaml'
22    i = get_index(url)
23    dist_file = get_distribution_file(i, 'foo')
24    _validate_dist_file(dist_file)
25
26    dist_files = get_distribution_files(i, 'foo')
27    assert len(dist_files) == 1
28
29
30def _validate_dist_file(dist_file):
31    assert('bar_repo' in dist_file.repositories)
32    repo = dist_file.repositories['bar_repo']
33    assert repo.release_repository.package_names == ['bar_repo']
34    assert 'bar_repo' in dist_file.release_packages
35
36    assert'baz-repo' in dist_file.repositories
37    repo = dist_file.repositories['baz-repo']
38    assert set(repo.release_repository.package_names) == set(['baz_pkg1', 'baz_pkg2'])
39    assert 'baz_pkg1' in dist_file.release_packages
40    assert 'baz_pkg2' in dist_file.release_packages
41