diff options
Diffstat (limited to 'src/leap/eip/tests/test_eipconnection.py')
| -rw-r--r-- | src/leap/eip/tests/test_eipconnection.py | 39 | 
1 files changed, 35 insertions, 4 deletions
diff --git a/src/leap/eip/tests/test_eipconnection.py b/src/leap/eip/tests/test_eipconnection.py index bb643ae0..163f8d45 100644 --- a/src/leap/eip/tests/test_eipconnection.py +++ b/src/leap/eip/tests/test_eipconnection.py @@ -1,6 +1,8 @@ +import glob  import logging  import platform -import os +#import os +import shutil  logging.basicConfig()  logger = logging.getLogger(name=__name__) @@ -19,6 +21,8 @@ from leap.testing.basetest import BaseLeapTest  _system = platform.system() +PROVIDER = "testprovider.example.org" +  class NotImplementedError(Exception):      pass @@ -27,6 +31,7 @@ class NotImplementedError(Exception):  @patch('OpenVPNConnection._get_or_create_config')  @patch('OpenVPNConnection._set_ovpn_command')  class MockedEIPConnection(EIPConnection): +      def _set_ovpn_command(self):          self.command = "mock_command"          self.args = [1, 2, 3] @@ -35,6 +40,7 @@ class MockedEIPConnection(EIPConnection):  class EIPConductorTest(BaseLeapTest):      __name__ = "eip_conductor_tests" +    provider = PROVIDER      def setUp(self):          # XXX there's a conceptual/design @@ -51,8 +57,8 @@ class EIPConductorTest(BaseLeapTest):          # XXX change to keys_checker invocation          # (see config_checker) -        keyfiles = (eipspecs.provider_ca_path(), -                    eipspecs.client_cert_path()) +        keyfiles = (eipspecs.provider_ca_path(domain=self.provider), +                    eipspecs.client_cert_path(domain=self.provider))          for filepath in keyfiles:              self.touch(filepath)              self.chmod600(filepath) @@ -61,11 +67,27 @@ class EIPConductorTest(BaseLeapTest):          # some methods mocked          self.manager = Mock(name="openvpnmanager_mock")          self.con = MockedEIPConnection() +        self.con.provider = self.provider + +        # XXX watch out. This sometimes is throwing the following error: +        # NoSuchProcess: process no longer exists (pid=6571) +        # because of a bad implementation of _check_if_running_instance +          self.con.run_openvpn_checks()      def tearDown(self): +        pass + +    def doCleanups(self): +        super(BaseLeapTest, self).doCleanups() +        self.cleanupSocketDir()          del self.con +    def cleanupSocketDir(self): +        ptt = ('/tmp/leap-tmp*') +        for tmpdir in glob.glob(ptt): +            shutil.rmtree(tmpdir) +      #      # tests      # @@ -76,6 +98,7 @@ class EIPConductorTest(BaseLeapTest):          """          con = self.con          self.assertEqual(con.autostart, True) +        # XXX moar!      def test_ovpn_command(self):          """ @@ -93,6 +116,7 @@ class EIPConductorTest(BaseLeapTest):          # needed to run tests. (roughly 3 secs for this only)          # We should modularize and inject Mocks on more places. +        oldcon = self.con          del(self.con)          config_checker = Mock()          self.con = MockedEIPConnection(config_checker=config_checker) @@ -102,6 +126,7 @@ class EIPConductorTest(BaseLeapTest):              skip_download=False)          # XXX test for cert_checker also +        self.con = oldcon      # connect/disconnect calls @@ -118,8 +143,14 @@ class EIPConductorTest(BaseLeapTest):                           self.con.status.CONNECTED)          # disconnect +        self.con.terminate_openvpn_connection = Mock()          self.con.disconnect() -        self.con._disconnect.assert_called_once_with() +        self.con.terminate_openvpn_connection.assert_called_once_with( +            shutdown=False) +        self.con.terminate_openvpn_connection = Mock() +        self.con.disconnect(shutdown=True) +        self.con.terminate_openvpn_connection.assert_called_once_with( +            shutdown=True)          # new status should be disconnected          # XXX this should evolve and check no errors  | 
