Skip to content
This repository was archived by the owner on Jun 27, 2020. It is now read-only.

Commit 5f7a2be

Browse files
authored
Merge pull request #105 from pawelplsi/tests_issue
[tests] Mocked time library in tests #84
2 parents a16cc00 + 4a1a9d4 commit 5f7a2be

2 files changed

Lines changed: 35 additions & 31 deletions

File tree

django_netjsongraph/tests/base/test_topology.py

Lines changed: 34 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1-
from time import sleep
1+
from datetime import timedelta
22

33
import responses
44
import six
55
from django.core.exceptions import ValidationError
6+
from freezegun import freeze_time
67
from netdiff import OlsrParser
78

89
from ..utils import LoadMixin
@@ -318,29 +319,30 @@ def test_multiple_receive_changed(self):
318319
self._test_receive_changed(expiration_time=50)
319320

320321
def test_multiple_receive_removed(self):
321-
t = self._set_receive(expiration_time=0.1)
322-
data = self._load('static/netjson-2-links.json')
323-
for sleep_time in [0, 0.2, 0.1]:
324-
sleep(sleep_time)
322+
with freeze_time() as frozen_time:
323+
t = self._set_receive(expiration_time=0.1)
324+
data = self._load('static/netjson-2-links.json')
325+
for sleep_time in [0, 0.2, 0.1]:
326+
frozen_time.tick(timedelta(seconds=sleep_time))
327+
t.receive(data)
328+
self.assertEqual(self.node_model.objects.count(), 3)
329+
self.assertEqual(self.link_model.objects.count(), 2)
330+
self.assertEqual(self.link_model.objects.filter(status='down').count(), 0)
331+
# receive change
332+
data = self._load('static/netjson-1-link.json')
325333
t.receive(data)
326334
self.assertEqual(self.node_model.objects.count(), 3)
327335
self.assertEqual(self.link_model.objects.count(), 2)
336+
# expiration_time has not expired
328337
self.assertEqual(self.link_model.objects.filter(status='down').count(), 0)
329-
# receive change
330-
data = self._load('static/netjson-1-link.json')
331-
t.receive(data)
332-
self.assertEqual(self.node_model.objects.count(), 3)
333-
self.assertEqual(self.link_model.objects.count(), 2)
334-
# expiration_time has not expired
335-
self.assertEqual(self.link_model.objects.filter(status='down').count(), 0)
336-
# expiration_time has now expired for 1 link
337-
sleep(0.2)
338-
t.receive(data)
339-
self.assertEqual(self.link_model.objects.filter(status='down').count(), 1)
340-
link = self.link_model.objects.filter(status='down').first()
341-
self.assertIn('192.168.0.3', [link.source.netjson_id,
342-
link.target.netjson_id])
343-
self.assertEqual(link.cost, 2.0)
338+
# expiration_time has now expired for 1 link
339+
frozen_time.tick(timedelta(seconds=0.2))
340+
t.receive(data)
341+
self.assertEqual(self.link_model.objects.filter(status='down').count(), 1)
342+
link = self.link_model.objects.filter(status='down').first()
343+
self.assertIn('192.168.0.3', [link.source.netjson_id,
344+
link.target.netjson_id])
345+
self.assertEqual(link.cost, 2.0)
344346

345347
def test_multiple_receive_split_network(self):
346348
def _assert_split_topology(self, topology):
@@ -355,20 +357,21 @@ def _assert_split_topology(self, topology):
355357
self.assertIsNotNone(link)
356358
self.assertEqual(link.status, 'up')
357359
self.assertEqual(link.cost, 1.1)
358-
self.node_model.objects.all().delete()
359-
t = self._set_receive(expiration_time=0.5)
360-
network1 = self._load('static/netjson-1-link.json')
361-
network2 = self._load('static/split-network.json')
362-
t.receive(network1)
363-
t.receive(network2)
364-
_assert_split_topology(self, t)
365-
for sleep_time in [0.1, 0.25, 0.3]:
366-
sleep(sleep_time)
360+
with freeze_time() as frozen_time:
361+
self.node_model.objects.all().delete()
362+
t = self._set_receive(expiration_time=0.5)
363+
network1 = self._load('static/netjson-1-link.json')
364+
network2 = self._load('static/split-network.json')
367365
t.receive(network1)
368-
_assert_split_topology(self, t)
369-
sleep(sleep_time)
370366
t.receive(network2)
371367
_assert_split_topology(self, t)
368+
for sleep_time in [0.1, 0.25, 0.3]:
369+
frozen_time.tick(timedelta(seconds=sleep_time))
370+
t.receive(network1)
371+
_assert_split_topology(self, t)
372+
frozen_time.tick(timedelta(seconds=sleep_time))
373+
t.receive(network2)
374+
_assert_split_topology(self, t)
372375

373376
def test_very_long_addresses(self):
374377
"""

requirements-test.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
coveralls
22
responses
3+
freezegun
34
openwisp-utils[qa]>=0.2.1

0 commit comments

Comments
 (0)