diff options
| author | Scott Bahling <sbahling@suse.com> | 2020-02-06 22:40:22 +0100 |
|---|---|---|
| committer | Scott Bahling <sbahling@suse.com> | 2020-02-06 22:40:22 +0100 |
| commit | e566c85a508562a5ebc88e13e2d5571b78eef045 (patch) | |
| tree | ad49011b8dd5ae05a578c5c96f5a808fb6492baf | |
| parent | cd12f43cd2c98826bb0ea092ef590a91e5842886 (diff) | |
| download | obsapi-e566c85a508562a5ebc88e13e2d5571b78eef045.tar.gz obsapi-e566c85a508562a5ebc88e13e2d5571b78eef045.tar.xz obsapi-e566c85a508562a5ebc88e13e2d5571b78eef045.zip | |
Fix get_package_version
| -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) |
