diff options
author | Jelle van der Waa <jelle@vdwaa.nl> | 2018-07-22 23:57:20 +0200 |
---|---|---|
committer | Jelle van der Waa <jelle@vdwaa.nl> | 2018-07-22 23:57:20 +0200 |
commit | d1abef2064cb293b2418726ea82b2c0c7c107b7f (patch) | |
tree | 861db0e3b7a38175b0ec1e91182c0b6695c7c62d /mirrors | |
parent | a1b14a417342116ac31ec937ef1f4dea91ce62f4 (diff) | |
download | archweb-d1abef2064cb293b2418726ea82b2c0c7c107b7f.tar.gz archweb-d1abef2064cb293b2418726ea82b2c0c7c107b7f.zip |
mirrors: add test for mirrorresolv code
Diffstat (limited to 'mirrors')
-rw-r--r-- | mirrors/models.py | 3 | ||||
-rw-r--r-- | mirrors/tests/test_mirrorresolv.py | 44 |
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) |