summaryrefslogtreecommitdiffstats
path: root/mirrors
diff options
context:
space:
mode:
authorJelle van der Waa <jelle@vdwaa.nl>2018-07-22 23:57:20 +0200
committerJelle van der Waa <jelle@vdwaa.nl>2018-07-22 23:57:20 +0200
commitd1abef2064cb293b2418726ea82b2c0c7c107b7f (patch)
tree861db0e3b7a38175b0ec1e91182c0b6695c7c62d /mirrors
parenta1b14a417342116ac31ec937ef1f4dea91ce62f4 (diff)
downloadarchweb-d1abef2064cb293b2418726ea82b2c0c7c107b7f.tar.gz
archweb-d1abef2064cb293b2418726ea82b2c0c7c107b7f.zip
mirrors: add test for mirrorresolv code
Diffstat (limited to 'mirrors')
-rw-r--r--mirrors/models.py3
-rw-r--r--mirrors/tests/test_mirrorresolv.py44
2 files changed, 45 insertions, 2 deletions
diff --git a/mirrors/models.py b/mirrors/models.py
index 795d0294..35347e7d 100644
--- a/mirrors/models.py
+++ b/mirrors/models.py
@@ -150,8 +150,7 @@ class CheckLocation(models.Model):
@property
def family(self):
- info = socket.getaddrinfo(self.source_ip, None, 0, 0, 0,
- socket.AI_NUMERICHOST)
+ info = socket.getaddrinfo(self.source_ip, None, 0, 0, 0, socket.AI_NUMERICHOST)
families = [x[0] for x in info]
return families[0]
diff --git a/mirrors/tests/test_mirrorresolv.py b/mirrors/tests/test_mirrorresolv.py
new file mode 100644
index 00000000..8b37e764
--- /dev/null
+++ b/mirrors/tests/test_mirrorresolv.py
@@ -0,0 +1,44 @@
+import mock
+
+from django.test import TestCase
+from django.core.management import call_command
+
+from mirrors.tests import create_mirror_url
+
+
+class MirrorCheckTest(TestCase):
+ def setUp(self):
+ self.mirror_url = create_mirror_url()
+
+ def tearDown(self):
+ self.mirror_url.delete()
+
+ @mock.patch('socket.getaddrinfo')
+ def test_ip4_ip6(self, getaddrinfo):
+ getaddrinfo.return_value = [(2, 1, 6, '', ('1.1.1.1', 0)), (10, 1, 6, '', ('1a01:3f8:132:1d96::1', 0, 0, 0))]
+ call_command('mirrorresolv')
+ self.mirror_url.refresh_from_db()
+ self.assertEqual(self.mirror_url.has_ipv4, True)
+ self.assertEqual(self.mirror_url.has_ipv6, True)
+
+ @mock.patch('socket.getaddrinfo')
+ def test_ip4_only(self, getaddrinfo):
+ getaddrinfo.return_value = [(2, 1, 6, '', ('1.1.1.1', 0))]
+ call_command('mirrorresolv')
+ self.mirror_url.refresh_from_db()
+ self.assertEqual(self.mirror_url.has_ipv4, True)
+ self.assertEqual(self.mirror_url.has_ipv6, False)
+
+ @mock.patch('socket.getaddrinfo')
+ def test_running_twice(self, getaddrinfo):
+ getaddrinfo.return_value = [(2, 1, 6, '', ('1.1.1.1', 0)), (10, 1, 6, '', ('1a01:3f8:132:1d96::1', 0, 0, 0))]
+
+ # Check if values changed
+ with mock.patch('mirrors.management.commands.mirrorresolv.logger') as logger:
+ call_command('mirrorresolv', '-v3')
+ self.assertEqual(logger.debug.call_count, 4)
+
+ # running again does not change any values.
+ with mock.patch('mirrors.management.commands.mirrorresolv.logger') as logger:
+ call_command('mirrorresolv', '-v3')
+ self.assertEqual(logger.debug.call_count, 3)