• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

vantage6 / vantage6 / 14877653111

07 May 2025 07:27AM UTC coverage: 73.562% (-3.2%) from 76.779%
14877653111

push

github

web-flow
Merge pull request #1814 from vantage6/253-feature-request-improved-node-diagnostic-tools

Feature/#253 Improved node diagnostic tools

32 of 88 new or added lines in 5 files covered. (36.36%)

31 existing lines in 5 files now uncovered.

1522 of 2069 relevant lines covered (73.56%)

0.74 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

96.12
/vantage6/tests_cli/test_server_cli.py
1
import unittest
1✔
2

3
from unittest.mock import MagicMock, patch
1✔
4
from pathlib import Path
1✔
5
from click.testing import CliRunner
1✔
6

7
from vantage6.common.globals import APPNAME, InstanceType
1✔
8
from vantage6.cli.server.start import cli_server_start
1✔
9
from vantage6.cli.server.list import cli_server_configuration_list
1✔
10
from vantage6.cli.server.files import cli_server_files
1✔
11
from vantage6.cli.server.import_ import cli_server_import
1✔
12
from vantage6.cli.server.new import cli_server_new
1✔
13
from vantage6.cli.server.stop import cli_server_stop
1✔
14
from vantage6.cli.server.attach import cli_server_attach
1✔
15

16

17
class ServerCLITest(unittest.TestCase):
1✔
18
    @patch("vantage6.cli.server.start.NetworkManager")
1✔
19
    @patch("vantage6.cli.server.start.docker.types.Mount")
1✔
20
    @patch("os.makedirs")
1✔
21
    @patch("vantage6.cli.server.start.pull_infra_image")
1✔
22
    @patch("vantage6.cli.common.decorator.get_context")
1✔
23
    @patch("vantage6.cli.server.start.docker.from_env")
1✔
24
    @patch("vantage6.cli.common.start.check_docker_running", return_value=True)
1✔
25
    def test_start(
1✔
26
        self,
27
        docker_check,
28
        containers,
29
        context,
30
        pull,
31
        os_makedirs,
32
        mount,
33
        network_manager,
34
    ):
35
        """Start server without errors"""
36
        container1 = MagicMock()
1✔
37
        container1.containers.name = f"{APPNAME}-iknl-system"
1✔
38
        containers.containers.list.return_value = [container1]
1✔
39
        containers.containers.run.return_value = True
1✔
40

41
        # mount.types.Mount.return_value = MagicMock()
42

43
        ctx = MagicMock(
1✔
44
            config={"uri": "sqlite:///file.db", "port": 9999},
45
            config_file="/config.yaml",
46
            data_dir=Path("."),
47
        )
48
        ctx.config_exists.return_value = True
1✔
49
        ctx.name = "not-running"
1✔
50
        context.return_value = ctx
1✔
51

52
        runner = CliRunner()
1✔
53
        result = runner.invoke(cli_server_start, ["--name", "not-running"])
1✔
54

55
        self.assertEqual(result.exit_code, 0)
1✔
56

57
    @patch("vantage6.cli.server.common.ServerContext")
1✔
58
    @patch("docker.DockerClient.containers")
1✔
59
    @patch("vantage6.cli.server.list.check_docker_running", return_value=True)
1✔
60
    def test_configuration_list(self, docker_check, containers, context):
1✔
61
        """Configuration list without errors."""
62
        container1 = MagicMock()
1✔
63
        container1.name = f"{APPNAME}-iknl-system"
1✔
64
        containers.list.return_value = [container1]
1✔
65

66
        config = MagicMock()
1✔
67
        config.name = "iknl"
1✔
68
        context.available_configurations.return_value = ([config], [])
1✔
69

70
        runner = CliRunner()
1✔
71
        result = runner.invoke(cli_server_configuration_list)
1✔
72

73
        self.assertEqual(result.exit_code, 0)
1✔
74
        self.assertIsNone(result.exception)
1✔
75

76
    @patch("vantage6.cli.common.decorator.get_context")
1✔
77
    def test_files(self, context):
1✔
78
        """Configuration files without errors."""
79

80
        ctx = context.return_value = MagicMock(
1✔
81
            log_file="/log_file.log", config_file="/iknl.yaml"
82
        )
83
        ctx.get_database_uri.return_value = "sqlite:///test.db"
1✔
84

85
        runner = CliRunner()
1✔
86
        result = runner.invoke(cli_server_files, ["--name", "iknl"])
1✔
87

88
        self.assertIsNone(result.exception)
1✔
89
        self.assertEqual(result.exit_code, 0)
1✔
90

91
    @patch("docker.DockerClient.containers")
1✔
92
    @patch("vantage6.cli.server.import_.print_log_worker")
1✔
93
    @patch("vantage6.cli.server.import_.click.Path")
1✔
94
    @patch("vantage6.cli.server.import_.pull_image")
1✔
95
    @patch("vantage6.cli.server.import_.check_docker_running", return_value=True)
1✔
96
    @patch("vantage6.cli.common.decorator.get_context")
1✔
97
    def test_import(self, context, docker_check, pull, click_path, log, containers):
1✔
98
        """Import entities without errors."""
99
        click_path.return_value = MagicMock()
1✔
100

101
        ctx = MagicMock()
1✔
102
        ctx.name = "some-name"
1✔
103
        context.return_value = ctx
1✔
104

105
        runner = CliRunner()
1✔
106
        with runner.isolated_filesystem():
1✔
107
            with open("some.yaml", "w") as fp:
1✔
108
                fp.write("does-not-matter")
1✔
109
            result = runner.invoke(cli_server_import, ["--name", "iknl", "some.yaml"])
1✔
110

UNCOV
111
        self.assertIsNone(result.exception)
×
UNCOV
112
        self.assertEqual(result.exit_code, 0)
×
113

114
    @patch("vantage6.cli.server.new.configuration_wizard")
1✔
115
    @patch("vantage6.cli.server.new.ensure_config_dir_writable")
1✔
116
    @patch("vantage6.cli.server.new.ServerContext")
1✔
117
    def test_new(self, context, permissions, wizard):
1✔
118
        """New configuration without errors."""
119

120
        context.config_exists.return_value = False
1✔
121
        permissions.return_value = True
1✔
122
        wizard.return_value = "/some/file.yaml"
1✔
123

124
        runner = CliRunner()
1✔
125
        result = runner.invoke(cli_server_new, ["--name", "iknl"])
1✔
126

127
        self.assertIsNone(result.exception)
1✔
128
        self.assertEqual(result.exit_code, 0)
1✔
129

130
    @patch("vantage6.cli.server.stop.docker.from_env")
1✔
131
    def test_stop(self, containers):
1✔
132
        """Stop server without errors."""
133

134
        container1 = MagicMock()
1✔
135
        container1.name = f"{APPNAME}-iknl-system-{InstanceType.SERVER.value}"
1✔
136
        containers.containers.list.return_value = [container1]
1✔
137

138
        runner = CliRunner()
1✔
139
        result = runner.invoke(cli_server_stop, ["--name", "iknl"])
1✔
140

141
        self.assertIsNone(result.exception)
1✔
142
        self.assertEqual(result.exit_code, 0)
1✔
143

144
    @patch("vantage6.cli.server.attach.time.sleep")
1✔
145
    @patch("docker.DockerClient.containers")
1✔
146
    def test_attach(self, containers, sleep):
1✔
147
        """Attach log to the console without errors."""
148
        container1 = MagicMock()
1✔
149
        container1.name = f"{APPNAME}-iknl-system-{InstanceType.SERVER.value}"
1✔
150
        containers.list.return_value = [container1]
1✔
151

152
        sleep.side_effect = KeyboardInterrupt("Boom!")
1✔
153

154
        runner = CliRunner()
1✔
155
        result = runner.invoke(cli_server_attach, ["--name", "iknl"])
1✔
156

UNCOV
157
        self.assertIsNone(result.exception)
×
UNCOV
158
        self.assertEqual(result.exit_code, 0)
×
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc