diff --git a/behave/features/checkconstraints.feature b/behave/features/checkconstraints.feature new file mode 100644 index 00000000..e2c7803e --- /dev/null +++ b/behave/features/checkconstraints.feature @@ -0,0 +1,18 @@ +Feature: `osc checkconstraints` command + + +# common steps for all scenarios +Background: + Given I set working directory to "{context.osc.temp}" + + +Scenario: Run `osc checkconstraints / /` + When I execute osc with args "checkconstraints test:factory/test-pkgA standard/x86_64" + Then the exit code is 0 + + +Scenario: Run `osc checkconstraints` from a package working copy + Given I execute osc with args "co test:factory/test-pkgA" + And I set working directory to "{context.osc.temp}/test:factory/test-pkgA" + When I execute osc with args "checkconstraints" + Then the exit code is 0 diff --git a/osc/connection.py b/osc/connection.py index 630b7892..86f7a3fc 100644 --- a/osc/connection.py +++ b/osc/connection.py @@ -288,9 +288,10 @@ def http_request(method: str, url: str, headers=None, data=None, file=None): # https://github.com/openSUSE/open-build-service/pull/13019 headers.add("Accept", "application/xml") - if data or file: - # osc/obs data is usually XML + if method == "PUT" or (method == "POST" and (data or file)): headers.add("Content-Type", "application/xml; charset=utf-8") + elif method == "POST": + headers.add("Content-Type", "application/x-www-form-urlencoded") if purl.scheme == "http" and HTTP_PROXY_MANAGER: # HTTP proxy requires full URL with 'same host' checking off