]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
cephadm: Add test_command_list_networks 42699/head
authorSebastian Wagner <sewagner@redhat.com>
Mon, 23 Aug 2021 10:07:30 +0000 (12:07 +0200)
committerSebastian Wagner <sewagner@redhat.com>
Mon, 23 Aug 2021 10:12:24 +0000 (12:12 +0200)
Signed-off-by: Sebastian Wagner <sewagner@redhat.com>
src/cephadm/tests/fixtures.py
src/cephadm/tests/test_networks.py

index 348568379bc5c22c400d3dd0c15d543ea7123713..ed1e73766722d11a8486a12ac5cf02ec13db9ab8 100644 (file)
@@ -95,8 +95,6 @@ def with_cephadm_ctx(
     :param list_networks: mock 'list-networks' return
     :param hostname: mock 'socket.gethostname' return
     """
-    if not list_networks:
-        list_networks = {}
     if not hostname:
         hostname = 'host1'
 
@@ -106,8 +104,12 @@ def with_cephadm_ctx(
          mock.patch('cephadm.find_executable', return_value='foo'), \
          mock.patch('cephadm.is_available', return_value=True), \
          mock.patch('cephadm.json_loads_retry', return_value={'epoch' : 1}), \
-         mock.patch('cephadm.list_networks', return_value=list_networks), \
          mock.patch('socket.gethostname', return_value=hostname):
-             ctx: cd.CephadmContext = cd.cephadm_init_ctx(cmd)
-             ctx.container_engine = container_engine
-             yield ctx
+        ctx: cd.CephadmContext = cd.cephadm_init_ctx(cmd)
+        ctx.container_engine = container_engine
+        if list_networks is not None:
+            with mock.patch('cephadm.list_networks', return_value=list_networks):
+                yield ctx
+        else:
+            yield ctx
+
index 6429c985282c89b3e1fccd7fb0e19ad80055dc47..f7bd44eb89260413c73a3619e22a456093f91611 100644 (file)
@@ -1,8 +1,11 @@
+import json
 from textwrap import dedent
 from unittest import mock
 
 import pytest
 
+from tests.fixtures import with_cephadm_ctx, cephadm_fs
+
 with mock.patch('builtins.open', create=True):
     from importlib.machinery import SourceFileLoader
     cd = SourceFileLoader('cephadm', 'cephadm').load_module()
@@ -188,3 +191,11 @@ class TestCommandListNetworks:
     ])
     def test_parse_ipv6_route(self, test_routes, test_ips, expected):
         assert cd._parse_ipv6_route(test_routes, test_ips) == expected
+
+    @mock.patch.object(cd, 'call_throws', return_value=('10.4.0.1 dev tun0 proto kernel scope link src 10.4.0.2 metric 50\n', '', ''))
+    def test_command_list_networks(self, cephadm_fs, capsys):
+        with with_cephadm_ctx([]) as ctx:
+            cd.command_list_networks(ctx)
+            assert json.loads(capsys.readouterr().out) == {
+                '10.4.0.1': {'tun0': ['10.4.0.2']}
+            }
\ No newline at end of file