several unit tests are broken using six==1.10

Bug #1503969 reported by Valeriy Ponomaryov
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
OpenStack Shared File Systems Service (Manila)
Fix Released
Critical
Valeriy Ponomaryov

Bug Description

Manila unit test "manila.tests.share.test_api.ShareAPITestCase.test_extend_quota_error" is broken. See CI error logs [1]:

2015-10-08 02:45:02.888 | Traceback (most recent call last):
2015-10-08 02:45:02.888 | File "manila/tests/share/test_api.py", line 1526, in test_extend_quota_error
2015-10-08 02:45:02.888 | self.api.extend, self.context, share, new_size)
2015-10-08 02:45:02.888 | File "/home/jenkins/workspace/gate-manila-python27/.tox/py27/local/lib/python2.7/site-packages/testtools/testcase.py", line 422, in assertRaises
2015-10-08 02:45:02.888 | self.assertThat(our_callable, matcher)
2015-10-08 02:45:02.888 | File "/home/jenkins/workspace/gate-manila-python27/.tox/py27/local/lib/python2.7/site-packages/testtools/testcase.py", line 433, in assertThat
2015-10-08 02:45:02.888 | mismatch_error = self._matchHelper(matchee, matcher, message, verbose)
2015-10-08 02:45:02.889 | File "/home/jenkins/workspace/gate-manila-python27/.tox/py27/local/lib/python2.7/site-packages/testtools/testcase.py", line 483, in _matchHelper
2015-10-08 02:45:02.889 | mismatch = matcher.match(matchee)
2015-10-08 02:45:02.889 | File "/home/jenkins/workspace/gate-manila-python27/.tox/py27/local/lib/python2.7/site-packages/testtools/matchers/_exception.py", line 108, in match
2015-10-08 02:45:02.889 | mismatch = self.exception_matcher.match(exc_info)
2015-10-08 02:45:02.889 | File "/home/jenkins/workspace/gate-manila-python27/.tox/py27/local/lib/python2.7/site-packages/testtools/matchers/_higherorder.py", line 62, in match
2015-10-08 02:45:02.889 | mismatch = matcher.match(matchee)
2015-10-08 02:45:02.889 | File "/home/jenkins/workspace/gate-manila-python27/.tox/py27/local/lib/python2.7/site-packages/testtools/testcase.py", line 414, in match
2015-10-08 02:45:12.448 | reraise(*matchee)
2015-10-08 02:45:12.448 | File "/home/jenkins/workspace/gate-manila-python27/.tox/py27/local/lib/python2.7/site-packages/testtools/matchers/_exception.py", line 101, in match
2015-10-08 02:45:12.449 | result = matchee()
2015-10-08 02:45:12.449 | File "/home/jenkins/workspace/gate-manila-python27/.tox/py27/local/lib/python2.7/site-packages/testtools/testcase.py", line 969, in __call__
2015-10-08 02:45:12.449 | return self._callable_object(*self._args, **self._kwargs)
2015-10-08 02:45:12.449 | File "manila/share/api.py", line 975, in extend
2015-10-08 02:45:12.449 | 'd_quota': quotas['gigabytes']})
2015-10-08 02:45:12.449 | File "/usr/lib/python2.7/logging/__init__.py", line 1449, in error
2015-10-08 02:45:12.449 | self.logger.error(msg, *args, **kwargs)
2015-10-08 02:45:12.449 | File "/usr/lib/python2.7/logging/__init__.py", line 1178, in error
2015-10-08 02:45:12.449 | self._log(ERROR, msg, args, **kwargs)
2015-10-08 02:45:12.449 | File "/usr/lib/python2.7/logging/__init__.py", line 1271, in _log
2015-10-08 02:45:12.449 | self.handle(record)
2015-10-08 02:45:12.450 | File "/usr/lib/python2.7/logging/__init__.py", line 1281, in handle
2015-10-08 02:45:12.450 | self.callHandlers(record)
2015-10-08 02:45:12.450 | File "/usr/lib/python2.7/logging/__init__.py", line 1321, in callHandlers
2015-10-08 02:45:12.450 | hdlr.handle(record)
2015-10-08 02:45:12.450 | File "/usr/lib/python2.7/logging/__init__.py", line 749, in handle
2015-10-08 02:45:12.450 | self.emit(record)
2015-10-08 02:45:12.450 | File "/usr/lib/python2.7/logging/__init__.py", line 879, in emit
2015-10-08 02:45:12.450 | self.handleError(record)
2015-10-08 02:45:12.450 | File "/home/jenkins/workspace/gate-manila-python27/.tox/py27/local/lib/python2.7/site-packages/fixtures/_fixtures/logger.py", line 69, in handleError
2015-10-08 02:45:12.450 | six.reraise(*sys.exc_info())
2015-10-08 02:45:12.450 | File "/usr/lib/python2.7/logging/__init__.py", line 851, in emit
2015-10-08 02:45:12.451 | msg = self.format(record)
2015-10-08 02:45:12.451 | File "/usr/lib/python2.7/logging/__init__.py", line 724, in format
2015-10-08 02:45:12.451 | return fmt.format(record)
2015-10-08 02:45:12.451 | File "/usr/lib/python2.7/logging/__init__.py", line 464, in format
2015-10-08 02:45:12.451 | record.message = record.getMessage()
2015-10-08 02:45:12.451 | File "/usr/lib/python2.7/logging/__init__.py", line 328, in getMessage
2015-10-08 02:45:12.451 | msg = msg % self.args
2015-10-08 02:45:12.451 | TypeError: %d format: a number is required, not str

[1] http://logs.openstack.org/47/222447/6/check/gate-manila-python27/0037638/console.html#_2015-10-08_02_45_02_887

Also there is errors using py34, see:

http://logs.openstack.org/92/231392/6/gate/gate-manila-python34/ecea936/console.html#_2015-10-08_03_06_36_665

Revision history for this message
Valeriy Ponomaryov (vponomaryov) wrote :

Set as critical because it is CI blocker.

Changed in manila:
milestone: none → mitaka-1
assignee: nobody → Valeriy Ponomaryov (vponomaryov)
importance: Undecided → Critical
status: New → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to manila (master)

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

summary: - Unit test
- manila.tests.share.test_api.ShareAPITestCase.test_extend_quota_error is
- broken
+ several unit tests are broken using six==1.10
description: updated
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to manila (master)

Reviewed: https://review.openstack.org/232411
Committed: https://git.openstack.org/cgit/openstack/manila/commit/?id=f38b8d4efd1f68f4ea29747f7377e0936f61d89c
Submitter: Jenkins
Branch: master

commit f38b8d4efd1f68f4ea29747f7377e0936f61d89c
Author: vponomaryov <email address hidden>
Date: Thu Oct 8 11:24:14 2015 +0300

    Fix broken unit tests

    With release of six module version 1.10.0 several our unit tests
    started to fail because of usage of not strict constructions.

    Changes:
    1) Manila unit test
    "manila.tests.share.test_api.ShareAPITestCase.test_extend_quota_error"
    used str for int substitution. So, use int data for int substitution.

    2) Module 'manila.share.drivers.hp.hp_3par_mediator' was using
    LOG.exception function when no traceback were exist it led to
    AttributeError on py34. So, replace all usages of 'LOG.exception'
    with 'LOG.error' where no raised exceptions exist.

    Change-Id: Ic5b37bfb9d939d03f6ff68bc53d134bf9e5f996e
    Closes-Bug: #1503969

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

Fix proposed to branch: stable/liberty
Review: https://review.openstack.org/232535

Thierry Carrez (ttx)
Changed in manila:
milestone: mitaka-1 → liberty-rc3
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to manila (stable/liberty)

Reviewed: https://review.openstack.org/234288
Committed: https://git.openstack.org/cgit/openstack/manila/commit/?id=f1eded1fbcaf309e1c9a4be3f8a14bd25daa3e46
Submitter: Jenkins
Branch: stable/liberty

commit f1eded1fbcaf309e1c9a4be3f8a14bd25daa3e46
Author: Gaurang Tapase <email address hidden>
Date: Mon Oct 12 20:47:19 2015 +0530

    Fix usage of dependencies

    Manila is broken is threee places, so fix them:
    1) test 'test_misc' with WebOb 1.5

    WebOb 1.5 was released at 2015-10-11. With this new version,
    webob.exc.WSGIHTTPException() constructor now fails with a KeyError
    when the HTTP status code is 0.

    test_exceptions_raise() of test_misc tries to instantiate all
    exceptions of manila.exception. The problem is that
    ConvertedException uses a default HTTP status code of 0.

    Modify the default HTTP status code of ConvertedException to 400 to
    fix the unit tests.

    2) Add dependency for 'testresources' that is required by migration
    tests.

    3) Remove 2 unit tests related to testing of oslo.policy lib
    functionality that should not be tested in Manila. It started failing
    because under-the-hood behaviour was changed in new realese 0.12.0

    Closes-Bug: #1505153
    Closes-Bug: #1505374

    (cherry picked from commit 9c99814ce5943bd4c33bf3650b832666e31b3411)

    -- squashed with another change to get tests to pass on stable/liberty --

    Fix broken unit tests

    With release of six module version 1.10.0 several our unit tests
    started to fail because of usage of not strict constructions.

    Changes:
    1) Manila unit test
    "manila.tests.share.test_api.ShareAPITestCase.test_extend_quota_error"
    used str for int substitution. So, use int data for int substitution.

    2) Module 'manila.share.drivers.hp.hp_3par_mediator' was using
    LOG.exception function when no traceback were exist it led to
    AttributeError on py34. So, replace all usages of 'LOG.exception'
    with 'LOG.error' where no raised exceptions exist.

    Change-Id: Ic5b37bfb9d939d03f6ff68bc53d134bf9e5f996e
    Closes-Bug: #1503969
    (cherry picked from commit f38b8d4efd1f68f4ea29747f7377e0936f61d89c)

    --

    Change-Id: I0f28f3c3fb2c7eec1bafc3a617344990f86810cf

tags: added: in-stable-liberty
Thierry Carrez (ttx)
Changed in manila:
status: Fix Committed → Fix Released
Thierry Carrez (ttx)
Changed in manila:
milestone: liberty-rc3 → 1.0.0
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to manila (master)

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

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to manila (master)
Download full text (11.9 KiB)

Reviewed: https://review.openstack.org/235328
Committed: https://git.openstack.org/cgit/openstack/manila/commit/?id=ec94d6929ea8e1b4ce10dc91cd4954ece808668c
Submitter: Jenkins
Branch: master

commit f1eded1fbcaf309e1c9a4be3f8a14bd25daa3e46
Author: Gaurang Tapase <email address hidden>
Date: Mon Oct 12 20:47:19 2015 +0530

    Fix usage of dependencies

    Manila is broken is threee places, so fix them:
    1) test 'test_misc' with WebOb 1.5

    WebOb 1.5 was released at 2015-10-11. With this new version,
    webob.exc.WSGIHTTPException() constructor now fails with a KeyError
    when the HTTP status code is 0.

    test_exceptions_raise() of test_misc tries to instantiate all
    exceptions of manila.exception. The problem is that
    ConvertedException uses a default HTTP status code of 0.

    Modify the default HTTP status code of ConvertedException to 400 to
    fix the unit tests.

    2) Add dependency for 'testresources' that is required by migration
    tests.

    3) Remove 2 unit tests related to testing of oslo.policy lib
    functionality that should not be tested in Manila. It started failing
    because under-the-hood behaviour was changed in new realese 0.12.0

    Closes-Bug: #1505153
    Closes-Bug: #1505374

    (cherry picked from commit 9c99814ce5943bd4c33bf3650b832666e31b3411)

    -- squashed with another change to get tests to pass on stable/liberty --

    Fix broken unit tests

    With release of six module version 1.10.0 several our unit tests
    started to fail because of usage of not strict constructions.

    Changes:
    1) Manila unit test
    "manila.tests.share.test_api.ShareAPITestCase.test_extend_quota_error"
    used str for int substitution. So, use int data for int substitution.

    2) Module 'manila.share.drivers.hp.hp_3par_mediator' was using
    LOG.exception function when no traceback were exist it led to
    AttributeError on py34. So, replace all usages of 'LOG.exception'
    with 'LOG.error' where no raised exceptions exist.

    Change-Id: Ic5b37bfb9d939d03f6ff68bc53d134bf9e5f996e
    Closes-Bug: #1503969
    (cherry picked from commit f38b8d4efd1f68f4ea29747f7377e0936f61d89c)

    --

    Change-Id: I0f28f3c3fb2c7eec1bafc3a617344990f86810cf

commit 151b691bb2d4baa436913924df60b8c197f91463
Author: Valeriy Ponomaryov <email address hidden>
Date: Thu Oct 1 12:42:05 2015 +0300

    Fix display of availability-zone for manila-manage command

    Commands "manila-manage service list" and "manila-manage host list"
    were displaying availability zone instance instead of its name.

    Such bug appeared after implementation of Availability zone model.
    So, fix it by providing 'name' field of availability zone model.

    Change-Id: I14c3451380df01853183aed265344b1783c95939
    Closes-Bug: #1499677

commit 77455a5ac6be828e8dfd3e75566eaff2823595d4
Author: Csaba Henk <email address hidden>
Date: Wed Sep 30 14:57:00 2015 +0200

    glusterfs_native: use dynamic-auth option if available

    With dynamic-auth restarting the volume is not necessary
    in deny_access.

    Change-Id: Ic25af1795c279b34370...

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Change abandoned on manila (stable/liberty)

Change abandoned by Ben Swartzlander (<email address hidden>) on branch: stable/liberty
Review: https://review.openstack.org/232535

Revision history for this message
Doug Hellmann (doug-hellmann) wrote : Fix included in openstack/manila 2.0.0.0b1

This issue was fixed in the openstack/manila 2.0.0.0b1 development milestone.

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.