Merge lp:~gz/juju-ci-tools/tweak_test_networking into lp:juju-ci-tools

Proposed by Martin Packman
Status: Merged
Approved by: Martin Packman
Approved revision: 1546
Merged at revision: 1546
Proposed branch: lp:~gz/juju-ci-tools/tweak_test_networking
Merge into: lp:juju-ci-tools
Diff against target: 21 lines (+3/-4)
1 file modified
tests/test_assess_container_networking.py (+3/-4)
To merge this branch: bzr merge lp:~gz/juju-ci-tools/tweak_test_networking
Reviewer Review Type Date Requested Status
Curtis Hovey (community) code Approve
Review via email: mp+302727@code.launchpad.net

Description of the change

Tweak how test_private_address uses mock side_effect

This avoids a failure I see with older mock versions:

======================================================================
ERROR: test_private_address (test_assess_container_networking.TestContainerNetworking)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/ubuntu/juju-ci-tools/tests/test_assess_container_networking.py", line 351, in test_private_address
    result = jcnet.private_address(fake_client, "machine.test")
  File "assess_container_networking.py", line 256, in private_address
    default_route = ssh(client, host, 'ip -4 -o route list 0/0')
  File "<string>", line 3, in ssh
  File "/usr/lib/python2.7/dist-packages/mock.py", line 964, in __call__
    return _mock_self._mock_call(*args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/mock.py", line 1022, in _mock_call
    result = next(effect)
TypeError: list object is not an iterator

To post a comment you must log in.
Revision history for this message
Curtis Hovey (sinzui) wrote :

Thank you.

review: Approve (code)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'tests/test_assess_container_networking.py'
2--- tests/test_assess_container_networking.py 2016-08-03 21:17:26 +0000
3+++ tests/test_assess_container_networking.py 2016-08-11 20:49:16 +0000
4@@ -340,14 +340,13 @@
5 jcnet.assess_internet_connection, self.client, targets)
6
7 def test_private_address(self):
8- side_effect = ["default via 10.0.30.1 dev br-eth1",
9+ ssh_results = ["default via 10.0.30.1 dev br-eth1",
10 "5: br-eth1 inet 10.0.30.24/24 brd "
11 "10.0.30.255 scope global br-eth1 "
12 "valid_lft forever preferred_lft forever"]
13+ fake_client = object()
14 with patch("assess_container_networking.ssh",
15- autospec=True) as mock_ssh:
16- mock_ssh.side_effect = side_effect
17- fake_client = object()
18+ autospec=True, side_effect=ssh_results) as mock_ssh:
19 result = jcnet.private_address(fake_client, "machine.test")
20 self.assertEqual(result, "10.0.30.24")
21 self.assertEqual(mock_ssh.mock_calls,

Subscribers

People subscribed via source and target branches