diff options
author | Angel Velásquez <angvp@archlinux.org> | 2017-05-23 14:15:12 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-05-23 14:15:12 -0700 |
commit | 97205d474396abe4aa442ada41e7823d1b075b5a (patch) | |
tree | 71038b346a64f3ea4a13b7bd5396cba374713cb4 | |
parent | 08eef67d6aaf5a56c8df7ad4e692b319543c375c (diff) | |
parent | ab84d3f9459a6c536da9ee315f2284c77f60caf2 (diff) | |
download | archweb-97205d474396abe4aa442ada41e7823d1b075b5a.tar.gz archweb-97205d474396abe4aa442ada41e7823d1b075b5a.zip |
Merge pull request #18 from jelly/mirror_tests
mirrors: add simple test for mirror stats
-rw-r--r-- | mirrors/tests.py | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/mirrors/tests.py b/mirrors/tests.py new file mode 100644 index 00000000..30b2d730 --- /dev/null +++ b/mirrors/tests.py @@ -0,0 +1,62 @@ +import json + +from django.test import TestCase + +from models import MirrorUrl, MirrorProtocol, Mirror + +def create_mirror_url(): + mirror = Mirror.objects.create(name='mirror1', admin_email='admin@archlinux.org') + mirror_protocol = MirrorProtocol.objects.create(protocol='http') + mirror_url = MirrorUrl.objects.create(url='https://archlinux.org', protocol=mirror_protocol, + mirror=mirror, country='US') + return mirror_url + +class MirrorUrlTest(TestCase): + def setUp(self): + self.mirror_url = create_mirror_url() + + def testAddressFamilies(self): + self.assertEqual(self.mirror_url.address_families(), [2, 10]) + + def testHostname(self): + self.assertEqual(self.mirror_url.hostname, 'archlinux.org') + + def testGetAbsoluteUrl(self): + absolute_url = self.mirror_url.get_absolute_url() + expected = '/mirrors/%s/%d/' % (self.mirror_url.mirror.name, self.mirror_url.pk) + self.assertEqual(absolute_url, expected) + + def testClean(self): + # TODO: add test for self.mirror_url.clean() + pass + + def tearDown(self): + self.mirror_url.delete() + +class MirrorStatusTest(TestCase): + def test_status(self): + response = self.client.get('/mirrors/status/') + self.assertEqual(response.status_code, 200) + + def test_json_endpoint(self): + response = self.client.get('/mirrors/status/json/') + self.assertEqual(response.status_code, 200) + data = json.loads(response.content) + self.assertEqual(data['urls'], []) + + mirror_url = create_mirror_url() + + # Verify that the cache works + response = self.client.get('/mirrors/status/json/') + self.assertEqual(response.status_code, 200) + data = json.loads(response.content) + + # Disables the cache_function's cache + with self.settings(CACHES={'default': {'BACKEND': 'django.core.cache.backends.dummy.DummyCache'}}): + response = self.client.get('/mirrors/status/json/') + self.assertEqual(response.status_code, 200) + data = json.loads(response.content) + + self.assertEqual(len(data['urls']), 1) + mirror = data['urls'][0] + self.assertEqual(mirror['url'], mirror_url.url) |