summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAngel Velásquez <angvp@archlinux.org>2017-05-23 14:15:12 -0700
committerGitHub <noreply@github.com>2017-05-23 14:15:12 -0700
commit97205d474396abe4aa442ada41e7823d1b075b5a (patch)
tree71038b346a64f3ea4a13b7bd5396cba374713cb4
parent08eef67d6aaf5a56c8df7ad4e692b319543c375c (diff)
parentab84d3f9459a6c536da9ee315f2284c77f60caf2 (diff)
downloadarchweb-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.py62
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)