summaryrefslogtreecommitdiffstats
path: root/mirrors/tests/test_models.py
blob: 1e1eafec3e9bbb22927ebde886f23dbb1ee3bcd0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
from django.test import TestCase

from mirrors.models import Mirror, CheckLocation
from mirrors.tests import create_mirror_url


class MirrorUrlTest(TestCase):
    def setUp(self):
        self.mirror_url = create_mirror_url()

    def testAddressFamilies(self):
        self.assertIsNotNone(self.mirror_url.address_families())

    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 test_mirror_overview(self):
        response = self.client.get('/mirrors/')
        self.assertEqual(response.status_code, 200)
        self.assertIn(self.mirror_url.mirror.name, response.content)

    def testClean(self):
        # TODO: add test for self.mirror_url.clean()
        pass

    def tearDown(self):
        self.mirror_url.delete()


class MirrorTest(TestCase):
    def setUp(self):
        self.mirror = Mirror.objects.create(name='mirror1',
                                            admin_email='admin@archlinux.org')

    def tearDown(self):
        self.mirror.delete()

    def test_downstream(self):
        self.assertEqual(list(self.mirror.downstream()), [])

    def test_get_absolute_url(self):
        absolute_url = self.mirror.get_absolute_url()
        expected = '/mirrors/{}/'.format(self.mirror.name)
        self.assertEqual(absolute_url, expected)

    def test_get_full_url(self):
        self.assertIn(self.mirror.get_absolute_url(), self.mirror.get_full_url())
        self.assertIn('http', self.mirror.get_full_url('http'))


class CheckLocationTest(TestCase):
    def setUp(self):
        self.checkloc = CheckLocation.objects.create(hostname='arch.org',
                                                     source_ip='127.0.0.1',
                                                     country='US')

    def tearDown(self):
        self.checkloc.delete()

    def test_family(self):
        # TODO: mock socket.getaddrinfo in CheckLocation.family
        self.assertIsInstance(self.checkloc.family, int)

    def test_ip_version(self):
        self.assertIsInstance(self.checkloc.ip_version, int)