1 | import unittest
|
---|
2 |
|
---|
3 | class AddTest(unittest.TestCase):
|
---|
4 | def setUp(self):
|
---|
5 | #Set up the client
|
---|
6 | from django.test.client import Client
|
---|
7 | self.client = Client()
|
---|
8 |
|
---|
9 | #Set up the database
|
---|
10 | from exodus import settings
|
---|
11 | self.olddbname = settings.DATABASE_NAME
|
---|
12 | from django.db import connection
|
---|
13 | self.dbname = connection.creation.create_test_db(0)
|
---|
14 |
|
---|
15 | from exodus.models import Location
|
---|
16 |
|
---|
17 | self.location = Location(description = 'Hooigracht', \
|
---|
18 | longitude = '45.675433', latitude = '56.543332')
|
---|
19 | self.location.save()
|
---|
20 |
|
---|
21 | def tearDown(self):
|
---|
22 | from django.db import connection
|
---|
23 | connection.creation.destroy_test_db(self.olddbname, 0)
|
---|
24 |
|
---|
25 | def test_addlocation(self):
|
---|
26 | post_data = {'description': 'JohnLaan2', 'longitude': '34.55', \
|
---|
27 | 'latitude' : '44.55', 'proceed': 'OK, proceed'}
|
---|
28 | response = self.client.post('/add/location/new/', post_data)
|
---|
29 |
|
---|
30 | self.failUnlessEqual(response.status_code, 302)
|
---|
31 | self.failUnlessEqual(response['Location'], \
|
---|
32 | 'http://testserver/add/node/new/?location=2')
|
---|
33 |
|
---|
34 | from exodus.models import Location
|
---|
35 |
|
---|
36 | l = Location.objects.get(description = 'JohnLaan2')
|
---|
37 | self.failUnless(str(l.longitude), '34.55')
|
---|
38 | self.failUnless(str(l.latitude), '44.55')
|
---|
39 |
|
---|
40 | def test_addnode(self):
|
---|
41 | post_data = {'name' : 'Tabitha', 'location' : 1, \
|
---|
42 | 'status' : 'up', 'network' : 1, 'proceed': 'OK, proceed'}
|
---|
43 | response = self.client.post('/add/node/new/', post_data)
|
---|
44 |
|
---|
45 | self.failUnlessEqual(response.status_code, 302)
|
---|
46 | self.failUnlessEqual(response['Location'], \
|
---|
47 | 'http://testserver/view/node/Tabitha/')
|
---|
48 |
|
---|
49 | from exodus.models import Node
|
---|
50 |
|
---|
51 | try:
|
---|
52 | n = Node.objects.get(name = 'Tabitha')
|
---|
53 | except Node.DoesNotExist:
|
---|
54 | self.fail("Node wasn't added.")
|
---|
55 |
|
---|
56 | node = n
|
---|
57 | self.failUnlessEqual(n.location.id, 1)
|
---|
58 | self.failUnlessEqual(n.status, 'up')
|
---|
59 | self.failUnlessEqual(n.network.id, 1)
|
---|
60 |
|
---|
61 | c = {}
|
---|
62 |
|
---|
63 | for i in n.as_list():
|
---|
64 | c[i[0]] = i[1]
|
---|
65 |
|
---|
66 | self.failUnless(c.has_key('masterip'))
|
---|
67 |
|
---|
68 | class wllogic(unittest.TestCase):
|
---|
69 | def setUp(self):
|
---|
70 | #Set up the client
|
---|
71 | from django.test.client import Client
|
---|
72 | self.client = Client()
|
---|
73 |
|
---|
74 | #Set up the database
|
---|
75 | from django.db import connection
|
---|
76 | from exodus import settings
|
---|
77 | self.olddbname = settings.DATABASE_NAME
|
---|
78 | self.dbname = connection.creation.create_test_db(0)
|
---|
79 |
|
---|
80 | def tearDown(self):
|
---|
81 | from django.db import connection
|
---|
82 | connection.creation.destroy_test_db(self.olddbname, 0)
|
---|
83 |
|
---|
84 | def test_new_SSID_name(self):
|
---|
85 | class node(object):
|
---|
86 | name = 'CeTIM'
|
---|
87 | class network(object):
|
---|
88 | name = 'wleiden.net'
|
---|
89 | nic = 'ath0'
|
---|
90 | desc = '2cope'
|
---|
91 | from exodus.wllogic import newSSIDName
|
---|
92 | ssid = newSSIDName(node(), nic, desc)
|
---|
93 |
|
---|
94 | self.failUnless(ssid, '2cope-ath0.CeTIM.wleiden.net')
|
---|
95 |
|
---|
96 | def test_parse_show_addr(self):
|
---|
97 | ip = '172.16.2.0'
|
---|
98 | from exodus.wllogic import parse_addr
|
---|
99 | parsed = parse_addr(ip)
|
---|
100 | self.failUnlessEqual(str(parsed), '2886730240')
|
---|
101 |
|
---|
102 | from exodus.wllogic import show_addr
|
---|
103 | o_ip = show_addr(parsed)
|
---|
104 | self.failUnlessEqual(o_ip, ip)
|
---|
105 |
|
---|
106 | # when using an address larger then 256, move 1 address up.
|
---|
107 | ip = '172.16.2.256'
|
---|
108 | o_ip = show_addr(parse_addr(ip))
|
---|
109 | self.failUnlessEqual(o_ip, '172.16.3.0')
|
---|
110 |
|
---|
111 | def test_netmask2subnet(self):
|
---|
112 | from wllogic import netmask2subnet
|
---|
113 |
|
---|
114 | self.failUnlessRaises(ValueError, netmask2subnet, 33)
|
---|
115 | self.failUnlessRaises(ValueError, netmask2subnet, -1)
|
---|
116 |
|
---|
117 | valid_subnet = netmask2subnet(30)
|
---|
118 | self.failUnlessEqual(str(valid_subnet), '17179869180')
|
---|
119 |
|
---|
120 | def test_getSubnet(self):
|
---|
121 | from wllogic import getSubnet
|
---|
122 | self.failUnlessRaises(ValueError, getSubnet, -1)
|
---|
123 | self.failUnlessRaises(ValueError, getSubnet, 33)
|
---|
124 |
|
---|
125 | valid_netmask = getSubnet(30)
|
---|
126 | self.failUnless(valid_netmask, '255.255.255.252')
|
---|
127 |
|
---|
128 | def test_network(self):
|
---|
129 | from wllogic import network
|
---|
130 | from wllogic import show_addr
|
---|
131 | network_addr = show_addr(network('172.18.5.10', 24))
|
---|
132 | self.failUnlessEqual(network_addr, '172.18.5.0')
|
---|
133 |
|
---|
134 | def test_broadcast(self):
|
---|
135 | from wllogic import broadcast
|
---|
136 | from wllogic import show_addr
|
---|
137 |
|
---|
138 | broadcast_addr = show_addr(broadcast('172.16.5.232', 24))
|
---|
139 | self.failUnlessEqual(broadcast_addr, '172.16.5.255')
|
---|
140 |
|
---|
141 | self.failUnlessRaises(ValueError, broadcast, '172.16.5.1', -1)
|
---|
142 | self.failUnlessRaises(ValueError, broadcast, '172.16.5.1', 33)
|
---|
143 |
|
---|
144 | def test_getNetwork(self):
|
---|
145 | from wllogic import getNetwork
|
---|
146 | network_addr = getNetwork('172.17.2.2', 30)
|
---|
147 | self. failUnlessEqual(network_addr, '172.17.2.0')
|
---|
148 |
|
---|
149 | self.failUnlessRaises(ValueError, getNetwork, '172.17.2.0', -1)
|
---|
150 | self.failUnlessRaises(ValueError, getNetwork, '172.17.2.0', 33)
|
---|
151 |
|
---|
152 | def test_getBroadcast(self):
|
---|
153 | from wllogic import getBroadcast
|
---|
154 | broadcast_addr = getBroadcast('172.17.2.2', 24)
|
---|
155 | self.failUnlessEqual(broadcast_addr, '172.17.2.255')
|
---|
156 |
|
---|
157 | self.failUnlessRaises(ValueError, getBroadcast, '172.17.2.0', -1)
|
---|
158 | self.failUnlessRaises(ValueError, getBroadcast, '172.17.2.0', 33)
|
---|
159 |
|
---|
160 | def test_free_masterip(self):
|
---|
161 | from wllogic import free_masterip
|
---|
162 | from exodus.models import Node, Network
|
---|
163 |
|
---|
164 | node = Node.objects.create(location_id = 1, \
|
---|
165 | masterip = '172.16.0.1', name = 'testnode')
|
---|
166 | network = Network.objects.get(pk=1)
|
---|
167 | ip = free_masterip(network)
|
---|
168 | self.failIfEqual(ip, '172.16.0.1')
|
---|
169 | self.failUnlessEqual(ip, '172.16.1.1')
|
---|
170 |
|
---|
171 | def test_freePublicAPIP(self):
|
---|
172 | from wllogic import freePublicAPIP
|
---|
173 | self.fail('test not implemented')
|
---|
174 |
|
---|
175 | def test_freeInterlinkIP(self):
|
---|
176 | from wllogic import freeInterlinkIP
|
---|
177 | self.fail('Test not implemented')
|
---|
178 |
|
---|
179 | def test_addInterlinkIP(self):
|
---|
180 | from wllogic import addInterlinkIP
|
---|
181 | self.fail('Test not implemented')
|
---|
182 |
|
---|
183 | def suite():
|
---|
184 | s = unittest.TestSuite()
|
---|
185 | s.addTest(unittest.makeSuite(AddTest))
|
---|
186 | s.addTest(unittest.makeSuite(wllogic))
|
---|
187 |
|
---|
188 | return s
|
---|