diff options
| -rw-r--r-- | obsapi/core.py | 22 | ||||
| -rw-r--r-- | test/test_api.py | 16 |
2 files changed, 26 insertions, 12 deletions
diff --git a/obsapi/core.py b/obsapi/core.py index 80067d6..793949e 100644 --- a/obsapi/core.py +++ b/obsapi/core.py @@ -134,23 +134,21 @@ class ObsApi(object): def get_package_version(self, prj, pkg, repo, arch, full=True): binaries = self.binaries_ls(prj, pkg, repo, arch) - r_finfo = '' + finfo = None for item in binaries: if item.filename.endswith('.src.rpm'): - r_finfo = self.get_binary_fileinfo(prj, - pkg, - repo, - arch, - item.filename - ) + finfo = self.get_binary_fileinfo(prj, + pkg, + repo, + arch, + item.filename + ) break - if r_finfo: - finfo = etree.fromstring(r_finfo) - version = finfo.find('version').text - release = finfo.find('release').text + if finfo: + version = finfo.version if full: - version = '%s-%s' % (version, release) + version = '%s-%s' % (version, finfo.release) else: version = '' diff --git a/test/test_api.py b/test/test_api.py index e45a284..a6f74c1 100644 --- a/test/test_api.py +++ b/test/test_api.py @@ -348,6 +348,22 @@ def test_get_binary_fileinfo(requests_mock, binary_fileinfo): assert bfinfo.requires == [p.text for p in expected_bfinfo.findall('requires')] +def test_get_package_version(requests_mock, binarylist, binary_fileinfo): + matcher = re.compile('/build/.*/.*/.*/.*') + requests_mock.get(matcher, text=binarylist) + matcher = re.compile('/build/.*/.*/.*/.*/.*?view=fileinfo') + requests_mock.get(matcher, content=binary_fileinfo) + + root = etree.fromstring(binary_fileinfo.decode('utf-8')) + expected_version = root.find('version').text + expected_release = root.find('release').text + full_version = api.get_package_version(prj, pkg, repo, arch) + assert full_version == '{}-{}'.format(expected_version, expected_release) + + version = api.get_package_version(prj, pkg, repo, arch, full=False) + assert version == expected_version + + def test_get_project_flags(requests_mock, project_meta): matcher = prj_meta_re requests_mock.get(matcher, text=project_meta) |
