Пример #1
0
def auto_fakesleep():
    fakesleep.monkey_patch()
    yield
    fakesleep.monkey_restore()
Пример #2
0
 def tearDownClass(cls):
     fakesleep.monkey_restore()
     if os.path.exists(cls._db_filename):
         os.remove(cls._db_filename)
Пример #3
0
 def tearDownClass(cls):
     fakesleep.monkey_restore()
Пример #4
0
 def tearDownClass(cls):
     super(SchedulingTest, cls).tearDownClass()
     fakesleep.monkey_restore()
Пример #5
0
 def tearDown(self):
     fakesleep.monkey_restore()
Пример #6
0
    def test_heartbeat(self):
        events = []
        VPNServiceTest._get_task_executor(events)

        heartbeat = HeartbeatService(url='https://foobar')

        with mock.patch.object(Config, 'get_entry', return_value=False):
            heartbeat._beat()
            tasks = heartbeat._task_executor._tasks.pop()
            self.assertEqual(
                {
                    'events': [(OMBusEvents.VPN_OPEN, False),
                               (OMBusEvents.CLOUD_REACHABLE, False)],
                    'open_vpn':
                    False
                }, tasks)
            self.assertEqual(DEFAULT_SLEEP_TIME, heartbeat._sleep_time)

        with mock.patch.object(Config, 'get_entry', return_value=True):
            try:
                fakesleep.monkey_patch()
                now = time.time()

                response = {'success': False}
                with mock.patch.object(
                        requests,
                        'post',
                        return_value=VPNServiceTest._fake_response(response)):
                    heartbeat._beat()
                    tasks = heartbeat._task_executor._tasks.pop()
                    self.assertEqual(
                        {
                            'connectivity': now,
                            'events': [(OMBusEvents.CLOUD_REACHABLE, True)],
                            'open_vpn': True
                        }, tasks)
                    self.assertEqual(DEFAULT_SLEEP_TIME, heartbeat._sleep_time)
                    self.assertEqual(now, heartbeat._last_successful_heartbeat)

                time.sleep(5)
                now += 5
                response = {'success': True}
                with mock.patch.object(
                        requests,
                        'post',
                        return_value=VPNServiceTest._fake_response(response)):
                    heartbeat._beat()
                    tasks = heartbeat._task_executor._tasks.pop()
                    self.assertEqual(
                        {
                            'connectivity': now,
                            'events': [(OMBusEvents.CLOUD_REACHABLE, True)],
                            'open_vpn': True
                        }, tasks)
                    self.assertEqual(DEFAULT_SLEEP_TIME, heartbeat._sleep_time)
                    self.assertEqual(now, heartbeat._last_successful_heartbeat)

                time.sleep(5)
                now += 5

                for collector in heartbeat._collectors.values():
                    collector._data = collector._collector_thread._name
                debug_collector = mock.Mock(DebugDumpDataCollector)
                debug_collector.data = {}, [123]
                heartbeat._debug_collector = debug_collector

                response = {
                    'success': True,
                    'sleep_time': 2,
                    'intervals': {
                        'foo': 0
                    },
                    'configuration': {
                        'foo': 1
                    }
                }
                with mock.patch.object(
                        requests,
                        'post',
                        return_value=VPNServiceTest._fake_response(
                            response)) as post:
                    heartbeat._beat()
                    tasks = heartbeat._task_executor._tasks.pop()
                    self.assertEqual(
                        {
                            'connectivity': now,
                            'events': [(OMBusEvents.CLOUD_REACHABLE, True)],
                            'intervals': {
                                'foo': 0
                            },
                            'configuration': {
                                'foo': 1
                            },
                            'open_vpn': True
                        }, tasks)
                    self.assertEqual(2, heartbeat._sleep_time)
                    self.assertEqual(now, heartbeat._last_successful_heartbeat)
                    post.assert_called_once_with(
                        'https://foobar',
                        data={
                            'extra_data':
                            json.dumps(
                                {
                                    'errors': 'errorscoll',
                                    'local_ip': 'ip addresscoll',
                                    'debug': {}
                                },
                                sort_keys=True)
                        },
                        timeout=10.0)
                    debug_collector.clear.assert_called_once_with([123])

            finally:
                fakesleep.monkey_restore()
Пример #7
0
 def tearDownClass(cls):
     fakesleep.monkey_restore()