from obsapi import ObsApi from lxml import etree api = ObsApi(apiurl='https://api.opensuse.org') prj = 'home:sbahling:obsapi:test' pkg = 'suse-hello-1.0' repo = 'SLE_12_SP3' arch = 'x86_64' def test_get_package_meta(): try: response = etree.fromstring(api.get_meta(prj=prj, pkg=pkg)) except: response = {} assert response.get('name', None) == 'suse-hello-1.0' def test_ls_prj(): assert api.ls(prj=prj) == ['suse-hello-1.0'] def test_ls_pkg(): files = ['COPYING', 'suse-hello-1.0.tar.bz2', 'suse-hello.changes', 'suse-hello.spec', ] directory, listing = api.ls(prj=prj, pkg=pkg) assert directory.name == 'suse-hello-1.0' items = [i.name for i in listing] for f in files: assert f in items def test_ls_binaries(): files = ['_statistics', 'rpmlint.log', 'suse-hello-1.0-1.1.src.rpm', 'suse-hello-kmp-default-1.0_k4.4.73_5-1.1.x86_64.rpm', ] listing = api.ls(prj=prj, pkg=pkg, repo=repo, arch=arch) items = [i.filename for i in listing] for f in files: assert f in items def test_binaries_ls(): files = ['_statistics', 'rpmlint.log', 'suse-hello-1.0-1.1.src.rpm', 'suse-hello-kmp-default-1.0_k4.4.73_5-1.1.x86_64.rpm', ] listing = api.binaries_ls(prj=prj, pkg=pkg, repo=repo, arch=arch) items = [i.filename for i in listing] for f in files: assert f in items def test_get_project_repos(): repos = api.get_project_repos(prj) assert 'SLE_12_SP3' in repos def test_get_vendor(): assert api.get_vendor(prj=prj) == u'Test:obsapi' def test_source_info(): sinfo = api.get_source_info(prj, pkg) assert sinfo.package == 'suse-hello-1.0' assert sinfo.rev == '1' assert sinfo.vrev == '1' assert sinfo.srcmd5 == '7054c47fb2ebde13fc62ee64d0a3b1bc' assert sinfo.verifymd5 == '7054c47fb2ebde13fc62ee64d0a3b1bc' def test_get_binary_fileinfo(): binary = 'suse-hello-kmp-default-1.0_k4.4.73_5-1.1.x86_64.rpm' bfinfo = api.get_binary_fileinfo(prj, pkg, repo, arch, binary) assert bfinfo.filename == binary assert bfinfo.size == '6709' assert bfinfo.mtime == '1507137122' assert bfinfo.arch == 'x86_64' assert bfinfo.version == '1.0_k4.4.73_5' assert bfinfo.release == '1.1' assert bfinfo.summary == 'Sample Kernel Module Package' assert bfinfo.description == 'This package contains the hello.ko module.' assert bfinfo.source == 'suse-hello' binary = '_statistics' bfinfo = api.get_binary_fileinfo(prj, pkg, repo, arch, binary) def test_lock_project(): api.lock(prj) xml = api.get_meta(prj) print(xml) meta = etree.fromstring(xml) lock = meta.find('lock') assert lock is not None assert lock.find('enable') is not None def test_unlock_project(): api.unlock(prj) meta = etree.fromstring(api.get_meta(prj)) lock = meta.find('lock') assert lock is None def test_project_locked(): api.lock(prj) assert api.locked(prj) is True api.unlock(prj) assert api.locked(prj) is False def test_get_users(): users = api.get_users(prj) print users assert len(users) > 0 def test_get_groups(): groups = api.get_groups(prj) print groups assert groups == []