diff --git a/gns3/graphics_view.py b/gns3/graphics_view.py index 50ac987a..3b050650 100644 --- a/gns3/graphics_view.py +++ b/gns3/graphics_view.py @@ -979,6 +979,11 @@ class GraphicsView(QtWidgets.QGraphicsView): # returns True to ignore this node. return True + # TightVNC has lack support of IPv6 host at this moment + if "vncviewer" in node.consoleCommand() and ":" in node.consoleHost(): + QtWidgets.QMessageBox.warning( + self, "TightVNC", "TightVNC (vncviewer) may not start because of lack of IPv6 support.") + try: node.openConsole(aux=aux) except (OSError, ValueError) as e: diff --git a/tests/test_graphics_view.py b/tests/test_graphics_view.py new file mode 100644 index 00000000..5c2c04ed --- /dev/null +++ b/tests/test_graphics_view.py @@ -0,0 +1,34 @@ +#!/usr/bin/env python +# +# Copyright (C) 2017 GNS3 Technologies Inc. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +from unittest.mock import MagicMock, patch +from gns3.graphics_view import GraphicsView +from gns3.node import Node + + +def test_console_to_node_vncviewer_and_ipv6(): + node = MagicMock( + initialized=MagicMock(return_value=True), + status=MagicMock(return_value=Node.started), + consoleCommand=MagicMock(return_value="vncviewer"), + consoleHost=MagicMock(return_value="::1") + ) + view = GraphicsView.__new__(GraphicsView) + with patch('gns3.qt.QtWidgets.QMessageBox.warning') as warning_mock: + view.consoleToNode(node) + assert warning_mock.called + assert warning_mock.call_args[0][1] == 'TightVNC'