jjsonschema 2.3.0 -> 2.4.0 upgrade breaking nova.tests.test_api_validation tests

Bug #1358881 reported by Corey Wright
14
This bug affects 3 people
Affects Status Importance Assigned to Milestone
OpenStack Compute (nova)
Fix Released
High
Dan Smith
Icehouse
Fix Released
High
Robert Collins

Bug Description

the following two failures appeared after upgrading jsonschema to 2.4.0. downgrading to 2.3.0 returned the tests to passing.

======================================================================
FAIL: nova.tests.test_api_validation.TcpUdpPortTestCase.test_validate_tcp_udp_port_fails
----------------------------------------------------------------------
Traceback (most recent call last):
_StringException: Empty attachments:
  pythonlogging:''
  stderr
  stdout

Traceback (most recent call last):
  File "/home/dev/Desktop/nova-test/nova/tests/test_api_validation.py", line 602, in test_validate_tcp_udp_port_fails
    expected_detail=detail)
  File "/home/dev/Desktop/nova-test/nova/tests/test_api_validation.py", line 31, in check_validation_error
    self.assertEqual(ex.kwargs, expected_kwargs)
  File "/home/dev/Desktop/nova-test/.venv/local/lib/python2.7/site-packages/testtools/testcase.py", line 321, in assertEqual
    self.assertThat(observed, matcher, message)
  File "/home/dev/Desktop/nova-test/.venv/local/lib/python2.7/site-packages/testtools/testcase.py", line 406, in assertThat
    raise mismatch_error
MismatchError: !=:
reference = {'code': 400,
 'detail': u'Invalid input for field/attribute foo. Value: 65536. 65536 is greater than the maximum of 65535'}
actual = {'code': 400,
 'detail': 'Invalid input for field/attribute foo. Value: 65536. 65536.0 is greater than the maximum of 65535'}

======================================================================
FAIL: nova.tests.test_api_validation.IntegerRangeTestCase.test_validate_integer_range_fails
----------------------------------------------------------------------
Traceback (most recent call last):
_StringException: Empty attachments:
  stderr
  stdout

pythonlogging:'': {{{
INFO [migrate.versioning.api] 215 -> 216...
INFO [migrate.versioning.api] done
INFO [migrate.versioning.api] 216 -> 217...
INFO [migrate.versioning.api] done
INFO [migrate.versioning.api] 217 -> 218...
INFO [migrate.versioning.api] done
INFO [migrate.versioning.api] 218 -> 219...
INFO [migrate.versioning.api] done
INFO [migrate.versioning.api] 219 -> 220...
INFO [migrate.versioning.api] done
INFO [migrate.versioning.api] 220 -> 221...
INFO [migrate.versioning.api] done
INFO [migrate.versioning.api] 221 -> 222...
INFO [migrate.versioning.api] done
INFO [migrate.versioning.api] 222 -> 223...
INFO [migrate.versioning.api] done
INFO [migrate.versioning.api] 223 -> 224...
INFO [migrate.versioning.api] done
INFO [migrate.versioning.api] 224 -> 225...
INFO [migrate.versioning.api] done
INFO [migrate.versioning.api] 225 -> 226...
INFO [migrate.versioning.api] done
INFO [migrate.versioning.api] 226 -> 227...
INFO [migrate.versioning.api] done
INFO [migrate.versioning.api] 227 -> 228...
INFO [migrate.versioning.api] done
INFO [migrate.versioning.api] 228 -> 229...
INFO [migrate.versioning.api] done
INFO [migrate.versioning.api] 229 -> 230...
INFO [migrate.versioning.api] done
INFO [migrate.versioning.api] 230 -> 231...
INFO [migrate.versioning.api] done
INFO [migrate.versioning.api] 231 -> 232...
INFO [migrate.versioning.api] done
INFO [migrate.versioning.api] 232 -> 233...
INFO [migrate.versioning.api] done
INFO [migrate.versioning.api] 233 -> 234...
INFO [migrate.versioning.api] done
INFO [migrate.versioning.api] 234 -> 235...
INFO [migrate.versioning.api] done
INFO [migrate.versioning.api] 235 -> 236...
INFO [migrate.versioning.api] done
INFO [migrate.versioning.api] 236 -> 237...
INFO [migrate.versioning.api] done
INFO [migrate.versioning.api] 237 -> 238...
INFO [migrate.versioning.api] done
INFO [migrate.versioning.api] 238 -> 239...
INFO [migrate.versioning.api] done
INFO [migrate.versioning.api] 239 -> 240...
INFO [migrate.versioning.api] done
INFO [migrate.versioning.api] 240 -> 241...
INFO [migrate.versioning.api] done
INFO [migrate.versioning.api] 241 -> 242...
INFO [migrate.versioning.api] done
INFO [migrate.versioning.api] 242 -> 243...
INFO [migrate.versioning.api] done
INFO [migrate.versioning.api] 243 -> 244...
INFO [migrate.versioning.api] done
INFO [migrate.versioning.api] 244 -> 245...
INFO [migrate.versioning.api] done
INFO [migrate.versioning.api] 245 -> 246...
INFO [migrate.versioning.api] done
INFO [migrate.versioning.api] 246 -> 247...
INFO [migrate.versioning.api] done
INFO [migrate.versioning.api] 247 -> 248...
INFO [248_add_expire_reservations_index] Skipped adding reservations_deleted_expire_idx because an equivalent index already exists.
INFO [migrate.versioning.api] done
INFO [migrate.versioning.api] 248 -> 249...
INFO [migrate.versioning.api] done
INFO [migrate.versioning.api] 249 -> 250...
INFO [migrate.versioning.api] done
}}}

Traceback (most recent call last):
  File "/home/dev/Desktop/nova-test/nova/tests/test_api_validation.py", line 361, in test_validate_integer_range_fails
    expected_detail=detail)
  File "/home/dev/Desktop/nova-test/nova/tests/test_api_validation.py", line 31, in check_validation_error
    self.assertEqual(ex.kwargs, expected_kwargs)
  File "/home/dev/Desktop/nova-test/.venv/local/lib/python2.7/site-packages/testtools/testcase.py", line 321, in assertEqual
    self.assertThat(observed, matcher, message)
  File "/home/dev/Desktop/nova-test/.venv/local/lib/python2.7/site-packages/testtools/testcase.py", line 406, in assertThat
    raise mismatch_error
MismatchError: !=:
reference = {'code': 400,
 'detail': u'Invalid input for field/attribute foo. Value: 0. 0 is less than the minimum of 1'}
actual = {'code': 400,
 'detail': 'Invalid input for field/attribute foo. Value: 0. 0.0 is less than the minimum of 1'}

Matt Riedemann (mriedem)
tags: added: api testing
Changed in nova:
status: New → Confirmed
importance: Undecided → High
Revision history for this message
Matt Riedemann (mriedem) wrote :

elastic-recheck query is here: https://review.openstack.org/#/c/115665/

Changed in nova:
assignee: nobody → Eugeniya Kudryashova (ekudryashova)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to nova (master)

Fix proposed to branch: master
Review: https://review.openstack.org/115672

Changed in nova:
assignee: Eugeniya Kudryashova (ekudryashova) → Dan Smith (danms)
status: Confirmed → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to nova (master)

Reviewed: https://review.openstack.org/115672
Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=630a7f369a76eaf7f942d8989a30f5dc7b09327e
Submitter: Jenkins
Branch: master

commit 630a7f369a76eaf7f942d8989a30f5dc7b09327e
Author: Dan Smith <email address hidden>
Date: Wed Aug 20 07:56:54 2014 -0700

    Fix expected error details from jsonschema

    The jsonschema 2.4.0 release slightly changed some of the error messages
    that are provided when validation fails. This updates the unit tests to
    expect the proper string and avoid failing as a result.

    Change-Id: Ic8e32140e49e394659e7ebbecb28afb704b23b7c
    Closes-bug: #1358881

Changed in nova:
status: In Progress → Fix Committed
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to nova (stable/icehouse)

Fix proposed to branch: stable/icehouse
Review: https://review.openstack.org/115815

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to nova (stable/icehouse)

Reviewed: https://review.openstack.org/115815
Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=1106ef27e2d557c5693ef288c97b93fc27e80798
Submitter: Jenkins
Branch: stable/icehouse

commit 1106ef27e2d557c5693ef288c97b93fc27e80798
Author: Dan Smith <email address hidden>
Date: Wed Aug 20 07:56:54 2014 -0700

    Fix expected error details from jsonschema

    The jsonschema 2.4.0 release slightly changed some of the error messages
    that are provided when validation fails. This updates the unit tests to
    expect the proper string and avoid failing as a result.

    Change-Id: Ic8e32140e49e394659e7ebbecb28afb704b23b7c
    Closes-bug: #1358881

tags: added: in-stable-icehouse
Thierry Carrez (ttx)
Changed in nova:
milestone: none → juno-3
status: Fix Committed → Fix Released
Thierry Carrez (ttx)
Changed in nova:
milestone: juno-3 → 2014.2
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.