OSC unit fails with os-client-config 1.27.0

Bug #1703783 reported by Akihiro Motoki
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
python-openstackclient
Fix Released
Undecided
Akihiro Motoki

Bug Description

openstackclient.tests.unit.integ.cli.test_shell.TestIntegShellCliPrecedenceOCC.test_shell_args_precedence_1 and 2 fails with os-client-config 1.27.0.

Revision history for this message
Akihiro Motoki (amotoki) wrote :
Changed in python-openstackclient:
assignee: nobody → Akihiro Motoki (amotoki)
status: New → In Progress
Revision history for this message
Julie Pichon (jpichon) wrote :

I think this may be a duplicate of bug 1694937. The other bug had more information but no patch - not sure which to mark as duplicate! Thank you for looking into this and finding a fix.

Revision history for this message
Akihiro Motoki (amotoki) wrote :

Yeah, you're right. It is a duplicated of bug 1694937.

Bumping the upper-constraints.txt causes two failure mode (osc-lib and os-client-config).
I was lazy enough not to search existing one :(

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to python-openstackclient (master)

Reviewed: https://review.openstack.org/482880
Committed: https://git.openstack.org/cgit/openstack/python-openstackclient/commit/?id=3cba09e767c6af3f715828966f0d0fa21edc00a8
Submitter: Jenkins
Branch: master

commit 3cba09e767c6af3f715828966f0d0fa21edc00a8
Author: Akihiro Motoki <email address hidden>
Date: Wed Jul 12 09:42:28 2017 +0000

    Fix unit test failures related to new os-client-config and osc-lib

    [breakage related to os-client-config 1.28.0]
    os-client-config 1.28.0 add a check if filebased and envvars are
    both used. This check causes OSC unit test failure.

    OSC now instantiates OpenStackConfig twice as a workaround.
    The unit test mocks _load_config_file() and it returns a config dict,
    but os-client-config OpenStackConfig.__init__ updates the dict returned.
    As a result, when OpenStackConfig is instantiated second time,
    the mock of _load_config_file returns a modified version of the config
    dict. This hits the new check in os-client-config 1.28.0.

    This commit changes the mock to use side_effect rather than return_value
    to ensure the original dict is used.

    [breakage related to osc-lib 1.7.0]
    The change in osc-lib 1.7.0 added "if" logic to avoid calling get() twice.
    In tests.unit.volume.test_find_resource, kwargs is empty dict in find_resource(),
    so the second call to get() is NOT called now.
    Removing the second elements of side_effect addresses the unit failure.

    Co-Authored-By: Rui Chen <email address hidden>
    Change-Id: Ib9d14661b2755bbd6619e15c0d9023fbc9d27d70
    Closes-Bug: #1703782
    Closes-Bug: #1703783

Changed in python-openstackclient:
status: In Progress → Fix Released
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/python-openstackclient 3.12.0

This issue was fixed in the openstack/python-openstackclient 3.12.0 release.

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.