This is same as RDO issue, but for RHOS10 release. Note that webob is runtime dependency for other components, meaning that it may be problematic for not only test scenarios. +++ This bug was initially created as a clone of Bug #1384058 +++ Description of problem: python-webob 1.4.1 is available, however upper-constraints.txt specifies 1.6.1 as minimum for Newton: https://github.com/openstack/requirements/blob/stable/newton/upper-constraints.txt#L30 Without 1.6.1 unit some unit tests are failing. --- Additional comment from Michal Pryc on 2016-10-12 08:51:50 EDT --- Failed tests: nova.tests.unit.api.openstack.placement.test_util.TestRequireContent.test_fail_no_content_type ---------------------------------------------------------------------------------------------- Captured traceback: ~~~~~~~~~~~~~~~~~~~ Traceback (most recent call last): File "nova/tests/unit/api/openstack/placement/test_util.py", line 163, in test_fail_no_content_type self.handler, req) File "/usr/lib/python2.7/site-packages/testtools/testcase.py", line 422, in assertRaises self.assertThat(our_callable, matcher) File "/usr/lib/python2.7/site-packages/testtools/testcase.py", line 433, in assertThat mismatch_error = self._matchHelper(matchee, matcher, message, verbose) File "/usr/lib/python2.7/site-packages/testtools/testcase.py", line 483, in _matchHelper mismatch = matcher.match(matchee) File "/usr/lib/python2.7/site-packages/testtools/matchers/_exception.py", line 108, in match mismatch = self.exception_matcher.match(exc_info) File "/usr/lib/python2.7/site-packages/testtools/matchers/_higherorder.py", line 62, in match mismatch = matcher.match(matchee) File "/usr/lib/python2.7/site-packages/testtools/testcase.py", line 414, in match reraise(*matchee) File "/usr/lib/python2.7/site-packages/testtools/matchers/_exception.py", line 101, in match result = matchee() File "/usr/lib/python2.7/site-packages/testtools/testcase.py", line 969, in __call__ return self._callable_object(*self._args, **self._kwargs) File "nova/api/openstack/placement/util.py", line 115, in decorated_function json_formatter=json_error_formatter) File "/usr/lib/python2.7/site-packages/webob/exc.py", line 255, in __init__ **kw) File "/usr/lib/python2.7/site-packages/webob/response.py", line 155, in __init__ "Unexpected keyword: %s=%r" % (name, value)) TypeError: Unexpected keyword: json_formatter=<function json_error_formatter at 0x781bf50> nova.tests.unit.api.openstack.placement.test_handler.DispatchTest.test_no_match_with_map ---------------------------------------------------------------------------------------- Captured traceback: ~~~~~~~~~~~~~~~~~~~ Traceback (most recent call last): File "nova/tests/unit/api/openstack/placement/test_handler.py", line 58, in test_no_match_with_map self.mapper) File "/usr/lib/python2.7/site-packages/testtools/testcase.py", line 422, in assertRaises self.assertThat(our_callable, matcher) File "/usr/lib/python2.7/site-packages/testtools/testcase.py", line 433, in assertThat mismatch_error = self._matchHelper(matchee, matcher, message, verbose) File "/usr/lib/python2.7/site-packages/testtools/testcase.py", line 483, in _matchHelper mismatch = matcher.match(matchee) File "/usr/lib/python2.7/site-packages/testtools/matchers/_exception.py", line 108, in match mismatch = self.exception_matcher.match(exc_info) File "/usr/lib/python2.7/site-packages/testtools/matchers/_higherorder.py", line 62, in match mismatch = matcher.match(matchee) File "/usr/lib/python2.7/site-packages/testtools/testcase.py", line 414, in match reraise(*matchee) File "/usr/lib/python2.7/site-packages/testtools/matchers/_exception.py", line 101, in match result = matchee() File "/usr/lib/python2.7/site-packages/testtools/testcase.py", line 969, in __call__ return self._callable_object(*self._args, **self._kwargs) File "nova/api/openstack/placement/handler.py", line 94, in dispatch json_formatter=util.json_error_formatter) File "/usr/lib/python2.7/site-packages/webob/exc.py", line 255, in __init__ **kw) File "/usr/lib/python2.7/site-packages/webob/response.py", line 155, in __init__ "Unexpected keyword: %s=%r" % (name, value)) TypeError: Unexpected keyword: json_formatter=<function json_error_formatter at 0x8b9b050> nova.tests.unit.api.openstack.placement.test_util.TestCheckAccept.test_fail_complex_no_match -------------------------------------------------------------------------------------------- Captured traceback: ~~~~~~~~~~~~~~~~~~~ Traceback (most recent call last): File "nova/tests/unit/api/openstack/placement/test_util.py", line 50, in test_fail_complex_no_match self.handler, req) File "/usr/lib/python2.7/site-packages/testtools/testcase.py", line 422, in assertRaises self.assertThat(our_callable, matcher) File "/usr/lib/python2.7/site-packages/testtools/testcase.py", line 433, in assertThat mismatch_error = self._matchHelper(matchee, matcher, message, verbose) File "/usr/lib/python2.7/site-packages/testtools/testcase.py", line 483, in _matchHelper mismatch = matcher.match(matchee) File "/usr/lib/python2.7/site-packages/testtools/matchers/_exception.py", line 108, in match mismatch = self.exception_matcher.match(exc_info) File "/usr/lib/python2.7/site-packages/testtools/matchers/_higherorder.py", line 62, in match mismatch = matcher.match(matchee) File "/usr/lib/python2.7/site-packages/testtools/testcase.py", line 414, in match reraise(*matchee) File "/usr/lib/python2.7/site-packages/testtools/matchers/_exception.py", line 101, in match result = matchee() File "/usr/lib/python2.7/site-packages/testtools/testcase.py", line 969, in __call__ return self._callable_object(*self._args, **self._kwargs) File "nova/api/openstack/placement/util.py", line 56, in decorated_function json_formatter=json_error_formatter) File "/usr/lib/python2.7/site-packages/webob/exc.py", line 255, in __init__ **kw) File "/usr/lib/python2.7/site-packages/webob/response.py", line 155, in __init__ "Unexpected keyword: %s=%r" % (name, value)) TypeError: Unexpected keyword: json_formatter=<function json_error_formatter at 0x8b9b050> nova.tests.unit.api.openstack.placement.test_util.TestRequireContent.test_fail_wrong_content_type ------------------------------------------------------------------------------------------------- Captured traceback: ~~~~~~~~~~~~~~~~~~~ Traceback (most recent call last): File "nova/tests/unit/api/openstack/placement/test_util.py", line 173, in test_fail_wrong_content_type self.handler, req) File "/usr/lib/python2.7/site-packages/testtools/testcase.py", line 422, in assertRaises self.assertThat(our_callable, matcher) File "/usr/lib/python2.7/site-packages/testtools/testcase.py", line 433, in assertThat mismatch_error = self._matchHelper(matchee, matcher, message, verbose) File "/usr/lib/python2.7/site-packages/testtools/testcase.py", line 483, in _matchHelper mismatch = matcher.match(matchee) File "/usr/lib/python2.7/site-packages/testtools/matchers/_exception.py", line 108, in match mismatch = self.exception_matcher.match(exc_info) File "/usr/lib/python2.7/site-packages/testtools/matchers/_higherorder.py", line 62, in match mismatch = matcher.match(matchee) File "/usr/lib/python2.7/site-packages/testtools/testcase.py", line 414, in match reraise(*matchee) File "/usr/lib/python2.7/site-packages/testtools/matchers/_exception.py", line 101, in match result = matchee() File "/usr/lib/python2.7/site-packages/testtools/testcase.py", line 969, in __call__ return self._callable_object(*self._args, **self._kwargs) File "nova/api/openstack/placement/util.py", line 115, in decorated_function json_formatter=json_error_formatter) File "/usr/lib/python2.7/site-packages/webob/exc.py", line 255, in __init__ **kw) File "/usr/lib/python2.7/site-packages/webob/response.py", line 155, in __init__ "Unexpected keyword: %s=%r" % (name, value)) TypeError: Unexpected keyword: json_formatter=<function json_error_formatter at 0x8b9b050> nova.tests.unit.api.openstack.placement.test_handler.DispatchTest.test_no_match_null_map ---------------------------------------------------------------------------------------- Captured traceback: ~~~~~~~~~~~~~~~~~~~ Traceback (most recent call last): File "nova/tests/unit/api/openstack/placement/test_handler.py", line 51, in test_no_match_null_map self.mapper) File "/usr/lib/python2.7/site-packages/testtools/testcase.py", line 422, in assertRaises self.assertThat(our_callable, matcher) File "/usr/lib/python2.7/site-packages/testtools/testcase.py", line 433, in assertThat mismatch_error = self._matchHelper(matchee, matcher, message, verbose) File "/usr/lib/python2.7/site-packages/testtools/testcase.py", line 483, in _matchHelper mismatch = matcher.match(matchee) File "/usr/lib/python2.7/site-packages/testtools/matchers/_exception.py", line 108, in match mismatch = self.exception_matcher.match(exc_info) File "/usr/lib/python2.7/site-packages/testtools/matchers/_higherorder.py", line 62, in match mismatch = matcher.match(matchee) File "/usr/lib/python2.7/site-packages/testtools/testcase.py", line 414, in match reraise(*matchee) File "/usr/lib/python2.7/site-packages/testtools/matchers/_exception.py", line 101, in match result = matchee() File "/usr/lib/python2.7/site-packages/testtools/testcase.py", line 969, in __call__ return self._callable_object(*self._args, **self._kwargs) File "nova/api/openstack/placement/handler.py", line 94, in dispatch json_formatter=util.json_error_formatter) File "/usr/lib/python2.7/site-packages/webob/exc.py", line 255, in __init__ **kw) File "/usr/lib/python2.7/site-packages/webob/response.py", line 155, in __init__ "Unexpected keyword: %s=%r" % (name, value)) TypeError: Unexpected keyword: json_formatter=<function json_error_formatter at 0x8ae9050> nova.tests.unit.api.openstack.placement.test_util.TestCheckAccept.test_fail_no_match ------------------------------------------------------------------------------------ Captured traceback: ~~~~~~~~~~~~~~~~~~~ Traceback (most recent call last): File "nova/tests/unit/api/openstack/placement/test_util.py", line 40, in test_fail_no_match self.handler, req) File "/usr/lib/python2.7/site-packages/testtools/testcase.py", line 422, in assertRaises self.assertThat(our_callable, matcher) File "/usr/lib/python2.7/site-packages/testtools/testcase.py", line 433, in assertThat mismatch_error = self._matchHelper(matchee, matcher, message, verbose) File "/usr/lib/python2.7/site-packages/testtools/testcase.py", line 483, in _matchHelper mismatch = matcher.match(matchee) File "/usr/lib/python2.7/site-packages/testtools/matchers/_exception.py", line 108, in match mismatch = self.exception_matcher.match(exc_info) File "/usr/lib/python2.7/site-packages/testtools/matchers/_higherorder.py", line 62, in match mismatch = matcher.match(matchee) File "/usr/lib/python2.7/site-packages/testtools/testcase.py", line 414, in match reraise(*matchee) File "/usr/lib/python2.7/site-packages/testtools/matchers/_exception.py", line 101, in match result = matchee() File "/usr/lib/python2.7/site-packages/testtools/testcase.py", line 969, in __call__ return self._callable_object(*self._args, **self._kwargs) File "nova/api/openstack/placement/util.py", line 56, in decorated_function json_formatter=json_error_formatter) File "/usr/lib/python2.7/site-packages/webob/exc.py", line 255, in __init__ **kw) File "/usr/lib/python2.7/site-packages/webob/response.py", line 155, in __init__ "Unexpected keyword: %s=%r" % (name, value)) TypeError: Unexpected keyword: json_formatter=<function json_error_formatter at 0x8ae9050>
upper-contraints is not a minimum, it's a max. A fix is happening upstream to bump the requirements.txt which is the minimum. In parallel, we'll work on getting the newer webob
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://rhn.redhat.com/errata/RHEA-2016-2948.html