summaryrefslogtreecommitdiff
path: root/src/leap/eip/tests/test_checks.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/leap/eip/tests/test_checks.py')
-rw-r--r--src/leap/eip/tests/test_checks.py61
1 files changed, 59 insertions, 2 deletions
diff --git a/src/leap/eip/tests/test_checks.py b/src/leap/eip/tests/test_checks.py
index 0a87f573..bc7db79c 100644
--- a/src/leap/eip/tests/test_checks.py
+++ b/src/leap/eip/tests/test_checks.py
@@ -8,8 +8,10 @@ except ImportError:
import os
import urlparse
-from mock import patch, Mock
+from StringIO import StringIO
+from mock import (patch, Mock)
+import ping
import requests
from leap.base import config as baseconfig
@@ -23,6 +25,8 @@ from leap.testing.basetest import BaseLeapTest
from leap.testing.https_server import BaseHTTPSServerTestCase
from leap.testing.https_server import where as where_cert
+_uid = os.getuid()
+
class NoLogRequestHandler:
def log_message(self, *args):
@@ -33,6 +37,60 @@ class NoLogRequestHandler:
return ''
+class LeapNetworkCheckTest(BaseLeapTest):
+ # XXX to be moved to base.checks
+
+ __name__ = "leap_network_check_tests"
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def test_checker_should_implement_check_methods(self):
+ checker = eipchecks.LeapNetworkChecker()
+
+ self.assertTrue(hasattr(checker, "test_internet_connection"),
+ "missing meth")
+ self.assertTrue(hasattr(checker, "is_internet_up"),
+ "missing meth")
+ self.assertTrue(hasattr(checker, "ping_gateway"),
+ "missing meth")
+
+ def test_checker_should_actually_call_all_tests(self):
+ checker = eipchecks.LeapNetworkChecker()
+
+ mc = Mock()
+ checker.run_all(checker=mc)
+ self.assertTrue(mc.test_internet_connection.called, "not called")
+ self.assertTrue(mc.ping_gateway.called, "not called")
+ self.assertTrue(mc.is_internet_up.called,
+ "not called")
+
+ def test_get_default_interface_no_interface(self):
+ checker = eipchecks.LeapNetworkChecker()
+ with patch('leap.eip.checks.open', create=True) as mock_open:
+ with self.assertRaises(eipexceptions.NoDefaultInterfaceFoundError):
+ mock_open.return_value = StringIO(
+ "Iface\tDestination Gateway\t"
+ "Flags\tRefCntd\tUse\tMetric\t"
+ "Mask\tMTU\tWindow\tIRTT")
+ checker.get_default_interface_gateway()
+
+ def test_ping_gateway_fail(self):
+ checker = eipchecks.LeapNetworkChecker()
+ with patch.object(ping, "quiet_ping") as mocked_ping:
+ with self.assertRaises(eipexceptions.NoConnectionToGateway):
+ mocked_ping.return_value = [11, "", ""]
+ checker.ping_gateway("4.2.2.2")
+
+ @unittest.skipUnless(_uid == 0, "root only")
+ def test_ping_gateway(self):
+ checker = eipchecks.LeapNetworkChecker()
+ checker.ping_gateway("4.2.2.2")
+
+
class EIPCheckTest(BaseLeapTest):
__name__ = "eip_check_tests"
@@ -57,7 +115,6 @@ class EIPCheckTest(BaseLeapTest):
"missing meth")
self.assertTrue(hasattr(checker, "check_complete_eip_config"),
"missing meth")
- self.assertTrue(hasattr(checker, "ping_gateway"), "missing meth")
def test_checker_should_actually_call_all_tests(self):
checker = eipchecks.EIPConfigChecker()