source: branches/exodus-admin/tests.py@ 6390

Last change on this file since 6390 was 6382, checked in by roland, 16 years ago

Added new branch, for admin interface

  • Property svn:mergeinfo set to
File size: 6.3 KB
Line 
1import unittest
2
3class 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
68class 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
183def suite():
184 s = unittest.TestSuite()
185 s.addTest(unittest.makeSuite(AddTest))
186 s.addTest(unittest.makeSuite(wllogic))
187
188 return s
Note: See TracBrowser for help on using the repository browser.