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
=== modified file 'tests/test_assess_container_networking.py'
--- tests/test_assess_container_networking.py 2016-08-03 21:17:26 +0000
+++ tests/test_assess_container_networking.py 2016-08-11 20:49:16 +0000
@@ -340,14 +340,13 @@
340 jcnet.assess_internet_connection, self.client, targets)340 jcnet.assess_internet_connection, self.client, targets)
341341
342 def test_private_address(self):342 def test_private_address(self):
343 side_effect = ["default via 10.0.30.1 dev br-eth1",343 ssh_results = ["default via 10.0.30.1 dev br-eth1",
344 "5: br-eth1 inet 10.0.30.24/24 brd "344 "5: br-eth1 inet 10.0.30.24/24 brd "
345 "10.0.30.255 scope global br-eth1 "345 "10.0.30.255 scope global br-eth1 "
346 "valid_lft forever preferred_lft forever"]346 "valid_lft forever preferred_lft forever"]
347 fake_client = object()
347 with patch("assess_container_networking.ssh",348 with patch("assess_container_networking.ssh",
348 autospec=True) as mock_ssh:349 autospec=True, side_effect=ssh_results) as mock_ssh:
349 mock_ssh.side_effect = side_effect
350 fake_client = object()
351 result = jcnet.private_address(fake_client, "machine.test")350 result = jcnet.private_address(fake_client, "machine.test")
352 self.assertEqual(result, "10.0.30.24")351 self.assertEqual(result, "10.0.30.24")
353 self.assertEqual(mock_ssh.mock_calls,352 self.assertEqual(mock_ssh.mock_calls,

Subscribers

People subscribed via source and target branches