diff options
| author | Scott Bahling <sbahling@suse.com> | 2020-02-03 08:00:17 +0100 |
|---|---|---|
| committer | Scott Bahling <sbahling@suse.com> | 2020-02-03 08:00:17 +0100 |
| commit | 3fd50299a657480bfaca19e02cb1d0dca91eb45b (patch) | |
| tree | 530da24f44414a19fa598928e51c2f38684e8d7e /test | |
| parent | 267040ddaad2075bd24c5f82352a30fcb0eef212 (diff) | |
| download | obsapi-3fd50299a657480bfaca19e02cb1d0dca91eb45b.tar.gz obsapi-3fd50299a657480bfaca19e02cb1d0dca91eb45b.tar.xz obsapi-3fd50299a657480bfaca19e02cb1d0dca91eb45b.zip | |
Add remove_flag method
Diffstat (limited to 'test')
| -rw-r--r-- | test/test_api.py | 68 |
1 files changed, 55 insertions, 13 deletions
diff --git a/test/test_api.py b/test/test_api.py index 3fbf349..52c6796 100644 --- a/test/test_api.py +++ b/test/test_api.py @@ -522,26 +522,68 @@ def test_get_project_spec_files(requests_mock, project_directory, package_direct assert list(specfiles) == expected_specfiles -# POST /source/<project>?cmd=set_flag&repository=:opt&arch=:opt&flag=flag&status=status -def test_set_project_flags(requests_mock): - matcher = re.compile(r'/source/.*') - requests_mock.post(matcher) - params = dict(cmd='set_flag', flag='publish', status='enable') - - response = api.set_flag(prj, flag=params) - assert response.status_code == 200 - - url = requests_mock.request_history[0].url +def check_url_query_params(url, params): query = parse_qs(urlparse(url).query) + params = {k: v for k, v in params.items() if v is not None} assert query.keys() == params.keys() for key, values in query.items(): assert len(values) == 1 assert params.get(key, None) == query.get(key, [])[0] +# POST /source/<project>?cmd=set_flag&repository=:opt&arch=:opt&flag=flag&status=status # POST /source/<project>/<package>?cmd=set_flag&repository=:opt&arch=:opt&flag=flag&status=status -def test_set_package_flags(requests_mock): - pass +@pytest.mark.parametrize('target', ('project', 'package')) +@pytest.mark.parametrize('flag', ('build', 'publish', 'useforbuild', 'debuginfo')) +@pytest.mark.parametrize('status', ('enable', 'disable')) +@pytest.mark.parametrize('repository', (None, 'SLE_12_SP5'), ids=('no-repo', 'repo')) +@pytest.mark.parametrize('arch', (None, 'x86_64'), ids=('no-arch', 'arch')) +def test_set_flag(requests_mock, target, flag, status, repository, arch): + if target == 'project': + matcher = re.compile(r'/source/[^/]+\?') + else: + matcher = re.compile(r'/source/.+/[^/]*\?') + requests_mock.post(matcher) + params = dict(cmd='set_flag', + flag=flag, + status=status, + repository=repository, + arch=arch) + + if target == 'project': + response = api.set_flag(prj, flag=params) + else: + response = api.set_flag(prj, pkg, flag=params) + assert response.status_code == 200 + + url = requests_mock.request_history[0].url + check_url_query_params(url, params) + -# POST /source/<project>/<package>?cmd=remove_flag&repository=:opt&arch=:opt&flag=flag # POST /source/<project>?cmd=remove_flag&repository=:opt&arch=:opt&flag=flag +# POST /source/<project>/<package>?cmd=remove_flag&repository=:opt&arch=:opt&flag=flag +@pytest.mark.parametrize('target', ('project', 'package')) +@pytest.mark.parametrize('flag', ('build', 'publish', 'useforbuild', 'debuginfo')) +@pytest.mark.parametrize('status', ('enable', 'disable')) +@pytest.mark.parametrize('repository', (None, 'SLE_12_SP5'), ids=('no-repo', 'repo')) +@pytest.mark.parametrize('arch', (None, 'x86_64'), ids=('no-arch', 'arch')) +def test_remove_flag(requests_mock, target, flag, status, repository, arch): + if target == 'project': + matcher = re.compile(r'/source/[^/]+\?') + else: + matcher = re.compile(r'/source/.+/[^/]*\?') + requests_mock.post(matcher) + params = dict(cmd='remove_flag', + flag=flag, + status=status, + repository=repository, + arch=arch) + + if target == 'project': + response = api.remove_flag(prj, flag=params) + else: + response = api.remove_flag(prj, pkg, flag=params) + assert response.status_code == 200 + + url = requests_mock.request_history[0].url + check_url_query_params(url, params) |
