From 9b9534c2f25cf2f14eafe3f389287705f1a61111 Mon Sep 17 00:00:00 2001 From: Takashi Kajinami Date: Wed, 27 Nov 2024 02:25:20 +0900 Subject: [PATCH] Add unit test coverage of get_machine_ips This is follow-up of change If9268cab8c2b3098d757571c6cab07d13d34a2c2 and adds the missing test coverage of the utility method. Change-Id: I5e30e351d87475a0b56c3facbbe3c9c858e2783a --- nova/tests/unit/compute/test_utils.py | 28 +++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/nova/tests/unit/compute/test_utils.py b/nova/tests/unit/compute/test_utils.py index 2470f3a9a0..3f1ab11451 100644 --- a/nova/tests/unit/compute/test_utils.py +++ b/nova/tests/unit/compute/test_utils.py @@ -16,8 +16,10 @@ """Tests For miscellaneous util methods used with compute.""" +import collections import copy import datetime +import socket import string from unittest import mock @@ -1155,6 +1157,32 @@ class ComputeUtilsTestCase(test.NoDBTestCase): self.assertRaises(test.TestingException, self._test_event_reporter_graceful_exit, error) + @mock.patch('psutil.net_if_addrs') + def test_get_machine_ips(self, mock_addrs): + fakeaddr = collections.namedtuple('fakeaddr', ['family', 'address']) + mock_addrs.return_value = { + 'eth0': [ + fakeaddr(family=socket.AF_INET, address='192.0.2.2'), + fakeaddr(family=socket.AF_INET6, address='2001:db8::10'), + fakeaddr(family=socket.AF_PACKET, address='10:00:00:00:00:10') + ], + 'eth1': [ + fakeaddr(family=socket.AF_INET, address='192.0.2.130'), + fakeaddr(family=socket.AF_INET6, + address='2001:db8::f010%eth1'), + fakeaddr(family=socket.AF_PACKET, address='10:00:00:00:00:11') + ] + } + self.assertEqual( + [ + '192.0.2.2', + '2001:db8::10', + '192.0.2.130', + '2001:db8::f010' + ], + compute_utils.get_machine_ips() + ) + @mock.patch('nova.compute.utils.notify_about_instance_action') @mock.patch('nova.compute.utils.notify_about_instance_usage') @mock.patch('nova.objects.Instance.destroy')