diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/leap/base/checks.py | 11 | ||||
| -rw-r--r-- | src/leap/base/tests/test_auth.py | 58 | ||||
| -rw-r--r-- | src/leap/base/tests/test_checks.py | 16 | 
3 files changed, 81 insertions, 4 deletions
| diff --git a/src/leap/base/checks.py b/src/leap/base/checks.py index 23446f4a..dc2602c2 100644 --- a/src/leap/base/checks.py +++ b/src/leap/base/checks.py @@ -39,9 +39,6 @@ class LeapNetworkChecker(object):              # XXX remove this hardcoded random ip              # ping leap.se or eip provider instead...?              requests.get('http://216.172.161.165') - -        except (requests.HTTPError, requests.RequestException) as e: -            raise exceptions.NoInternetConnection(e.message)          except requests.ConnectionError as e:              error = "Unidentified Connection Error"              if e.message == "[Errno 113] No route to host": @@ -51,11 +48,17 @@ class LeapNetworkChecker(object):                      error = "Provider server appears to be down."              logger.error(error)              raise exceptions.NoInternetConnection(error) +        except (requests.HTTPError, requests.RequestException) as e: +            raise exceptions.NoInternetConnection(e.message)          logger.debug('Network appears to be up.')      def is_internet_up(self):          iface, gateway = self.get_default_interface_gateway() -        self.ping_gateway(self.provider_gateway) +        try: +            self.ping_gateway(self.provider_gateway) +        except exceptions.NoConnectionToGateway: +            return False +        return True      def check_tunnel_default_interface(self):          """ diff --git a/src/leap/base/tests/test_auth.py b/src/leap/base/tests/test_auth.py new file mode 100644 index 00000000..17b84b52 --- /dev/null +++ b/src/leap/base/tests/test_auth.py @@ -0,0 +1,58 @@ +from BaseHTTPServer import BaseHTTPRequestHandler +import urlparse +try: +    import unittest2 as unittest +except ImportError: +    import unittest + +import requests +#from mock import Mock + +from leap.base import auth +#from leap.base import exceptions +from leap.eip.tests.test_checks import NoLogRequestHandler +from leap.testing.basetest import BaseLeapTest +from leap.testing.https_server import BaseHTTPSServerTestCase + + +class LeapSRPRegisterTests(BaseHTTPSServerTestCase, BaseLeapTest): +    __name__ = "leap_srp_register_test" +    provider = "testprovider.example.org" + +    class request_handler(NoLogRequestHandler, BaseHTTPRequestHandler): +        responses = { +            '/': ['OK', '']} + +        def do_GET(self): +            path = urlparse.urlparse(self.path) +            message = '\n'.join(self.responses.get( +                path.path, None)) +            self.send_response(200) +            self.end_headers() +            self.wfile.write(message) + +    def setUp(self): +        pass + +    def tearDown(self): +        pass + +    def test_srp_auth_should_implement_check_methods(self): +        SERVER = "https://localhost:8443" +        srp_auth = auth.LeapSRPRegister(provider=SERVER, verify=False) + +        self.assertTrue(hasattr(srp_auth, "init_session"), +                        "missing meth") +        self.assertTrue(hasattr(srp_auth, "get_registration_uri"), +                        "missing meth") +        self.assertTrue(hasattr(srp_auth, "register_user"), +                        "missing meth") + +    def test_srp_auth_basic_functionality(self): +        SERVER = "https://localhost:8443" +        srp_auth = auth.LeapSRPRegister(provider=SERVER, verify=False) + +        self.assertIsInstance(srp_auth.session, requests.sessions.Session) +        self.assertEqual( +            srp_auth.get_registration_uri(), +            "https://localhost:8443/1/users.json") diff --git a/src/leap/base/tests/test_checks.py b/src/leap/base/tests/test_checks.py index 8d573b1e..7a694f89 100644 --- a/src/leap/base/tests/test_checks.py +++ b/src/leap/base/tests/test_checks.py @@ -118,6 +118,22 @@ class LeapNetworkCheckTest(BaseLeapTest):              with self.assertRaises(exceptions.NoInternetConnection):                  checker.check_internet_connection() +        with patch.object(requests, "get") as mocked_get: +            mocked_get.side_effect = requests.ConnectionError( +                "[Errno 113] No route to host") +            with self.assertRaises(exceptions.NoInternetConnection): +                with patch.object(checker, "ping_gateway") as mock_ping: +                    mock_ping.return_value = True +                    checker.check_internet_connection() + +        with patch.object(requests, "get") as mocked_get: +            mocked_get.side_effect = requests.ConnectionError( +                "[Errno 113] No route to host") +            with self.assertRaises(exceptions.NoInternetConnection): +                with patch.object(checker, "ping_gateway") as mock_ping: +                    mock_ping.side_effect = exceptions.NoConnectionToGateway +                    checker.check_internet_connection() +      @unittest.skipUnless(_uid == 0, "root only")      def test_ping_gateway(self):          checker = checks.LeapNetworkChecker() | 
