Matteo Scandolo | a665842 | 2016-04-06 14:44:56 -0700 | [diff] [blame] | 1 | import dredd_hooks as hooks |
| 2 | import sys |
Matteo Scandolo | a665842 | 2016-04-06 14:44:56 -0700 | [diff] [blame] | 3 | |
teone | 7d1c127 | 2016-04-07 13:43:33 -0400 | [diff] [blame] | 4 | # HELPERS |
Matteo Scandolo | c916b5e | 2016-04-07 14:38:54 -0700 | [diff] [blame] | 5 | # NOTE move in separated module |
| 6 | import os |
| 7 | import sys |
| 8 | sys.path.append("/opt/xos") |
| 9 | os.environ.setdefault("DJANGO_SETTINGS_MODULE", "xos.settings") |
| 10 | import django |
| 11 | from core.models import * |
| 12 | from services.cord.models import * |
Matteo Scandolo | 336dda1 | 2016-04-07 16:36:23 -0700 | [diff] [blame] | 13 | from services.vtr.models import * |
Matteo Scandolo | af4c238 | 2016-04-08 14:22:39 -0700 | [diff] [blame] | 14 | import urllib2 |
| 15 | import json |
Matteo Scandolo | c916b5e | 2016-04-07 14:38:54 -0700 | [diff] [blame] | 16 | django.setup() |
Matteo Scandolo | a665842 | 2016-04-06 14:44:56 -0700 | [diff] [blame] | 17 | |
Matteo Scandolo | c916b5e | 2016-04-07 14:38:54 -0700 | [diff] [blame] | 18 | |
Matteo Scandolo | af4c238 | 2016-04-08 14:22:39 -0700 | [diff] [blame] | 19 | def doLogin(username, password): |
| 20 | url = "http://127.0.0.1:8000/xoslib/login?username=%s&password=%s" % (username, password) |
| 21 | res = urllib2.urlopen(url).read() |
| 22 | parsed = json.loads(res) |
| 23 | return {'token': parsed['xoscsrftoken'], 'sessionid': parsed['xossessionid']} |
| 24 | |
| 25 | |
Matteo Scandolo | c916b5e | 2016-04-07 14:38:54 -0700 | [diff] [blame] | 26 | def cleanDB(): |
| 27 | # deleting all subscribers |
| 28 | for s in CordSubscriberRoot.objects.all(): |
| 29 | s.delete(purge=True) |
| 30 | |
| 31 | # deleting all slices |
| 32 | for s in Slice.objects.all(): |
| 33 | s.delete(purge=True) |
| 34 | |
| 35 | # deleting all Services |
| 36 | for s in Service.objects.all(): |
| 37 | s.delete(purge=True) |
| 38 | |
| 39 | # deleting all Tenants |
| 40 | for s in Tenant.objects.all(): |
| 41 | s.delete(purge=True) |
| 42 | |
| 43 | # deleting all Networks |
| 44 | for s in Network.objects.all(): |
| 45 | s.delete(purge=True) |
| 46 | |
| 47 | # deleting all NetworkTemplates |
| 48 | for s in NetworkTemplate.objects.all(): |
| 49 | s.delete(purge=True) |
| 50 | |
| 51 | for s in NetworkSlice.objects.all(): |
| 52 | s.delete(purge=True) |
| 53 | |
Matteo Scandolo | f2bb559 | 2016-04-11 09:59:23 -0700 | [diff] [blame^] | 54 | # print 'DB Cleaned' |
Matteo Scandolo | af4c238 | 2016-04-08 14:22:39 -0700 | [diff] [blame] | 55 | |
Matteo Scandolo | c916b5e | 2016-04-07 14:38:54 -0700 | [diff] [blame] | 56 | |
| 57 | def createTestSubscriber(): |
| 58 | |
| 59 | cleanDB() |
| 60 | |
| 61 | # load user |
| 62 | user = User.objects.get(email="padmin@vicci.org") |
| 63 | |
| 64 | # network template |
| 65 | private_template = NetworkTemplate() |
| 66 | private_template.name = 'Private Network' |
| 67 | private_template.save() |
| 68 | |
| 69 | # creating the test subscriber |
| 70 | subscriber = CordSubscriberRoot(name='Test Subscriber 1', id=1) |
| 71 | subscriber.save() |
| 72 | |
| 73 | # Site |
| 74 | site = Site.objects.get(name='MySite') |
| 75 | |
| 76 | # vSG service |
| 77 | vsg_service = VSGService() |
| 78 | vsg_service.name = 'service_vsg' |
| 79 | |
| 80 | # vSG slice |
| 81 | vsg_slice = Slice() |
| 82 | vsg_slice.name = site.login_base + "_testVsg" |
| 83 | vsg_slice.service = vsg_service.id |
| 84 | vsg_slice.site = site |
| 85 | vsg_slice.caller = user |
| 86 | |
| 87 | vsg_slice.save() |
| 88 | |
| 89 | vsg_service.save() |
| 90 | |
| 91 | # volt service |
| 92 | volt_service = VOLTService() |
| 93 | volt_service.name = 'service_volt' |
| 94 | volt_service.save() |
| 95 | |
| 96 | # vcpe slice |
| 97 | vcpe_slice = Slice() |
| 98 | vcpe_slice.name = site.login_base + "_testVcpe" |
| 99 | vcpe_slice.service = Service.objects.get(kind='vCPE') |
| 100 | vcpe_slice.site = site |
| 101 | vcpe_slice.caller = user |
| 102 | vcpe_slice.save() |
| 103 | |
Matteo Scandolo | f2bb559 | 2016-04-11 09:59:23 -0700 | [diff] [blame^] | 104 | # print 'vcpe_slice created' |
Matteo Scandolo | c916b5e | 2016-04-07 14:38:54 -0700 | [diff] [blame] | 105 | |
| 106 | # create a lan network |
| 107 | lan_net = Network() |
| 108 | lan_net.name = 'lan_network' |
| 109 | lan_net.owner = vcpe_slice |
| 110 | lan_net.template = private_template |
| 111 | lan_net.save() |
| 112 | |
Matteo Scandolo | f2bb559 | 2016-04-11 09:59:23 -0700 | [diff] [blame^] | 113 | # print 'lan_network created' |
Matteo Scandolo | c916b5e | 2016-04-07 14:38:54 -0700 | [diff] [blame] | 114 | |
| 115 | # add relation between vcpe slice and lan network |
| 116 | vcpe_network = NetworkSlice() |
| 117 | vcpe_network.network = lan_net |
| 118 | vcpe_network.slice = vcpe_slice |
| 119 | vcpe_network.save() |
| 120 | |
Matteo Scandolo | f2bb559 | 2016-04-11 09:59:23 -0700 | [diff] [blame^] | 121 | # print 'vcpe network relation added' |
Matteo Scandolo | c916b5e | 2016-04-07 14:38:54 -0700 | [diff] [blame] | 122 | |
| 123 | # vbng service |
| 124 | vbng_service = VBNGService() |
| 125 | vbng_service.name = 'service_vbng' |
| 126 | vbng_service.save() |
| 127 | |
Matteo Scandolo | f2bb559 | 2016-04-11 09:59:23 -0700 | [diff] [blame^] | 128 | # print 'vbng_service creater' |
Matteo Scandolo | b94d7ab | 2016-04-08 16:38:15 -0700 | [diff] [blame] | 129 | |
Matteo Scandolo | c916b5e | 2016-04-07 14:38:54 -0700 | [diff] [blame] | 130 | # volt tenant |
| 131 | vt = VOLTTenant(subscriber=subscriber.id, id=1) |
| 132 | vt.s_tag = "222" |
| 133 | vt.c_tag = "432" |
| 134 | vt.provider_service_id = volt_service.id |
| 135 | vt.caller = user |
| 136 | vt.save() |
| 137 | |
Matteo Scandolo | f2bb559 | 2016-04-11 09:59:23 -0700 | [diff] [blame^] | 138 | # print "Subscriber Created" |
Matteo Scandolo | c916b5e | 2016-04-07 14:38:54 -0700 | [diff] [blame] | 139 | |
Matteo Scandolo | a665842 | 2016-04-06 14:44:56 -0700 | [diff] [blame] | 140 | |
Matteo Scandolo | 336dda1 | 2016-04-07 16:36:23 -0700 | [diff] [blame] | 141 | def deleteTruckrolls(): |
| 142 | for s in VTRTenant.objects.all(): |
| 143 | s.delete(purge=True) |
| 144 | |
| 145 | |
| 146 | def setUpTruckroll(): |
| 147 | service_vtr = VTRService() |
| 148 | service_vtr.name = 'service_vtr' |
| 149 | service_vtr.save() |
| 150 | |
| 151 | |
| 152 | def createTruckroll(): |
| 153 | setUpTruckroll() |
| 154 | tn = VTRTenant(id=1) |
| 155 | tn.save() |
| 156 | |
| 157 | |
Matteo Scandolo | b94d7ab | 2016-04-08 16:38:15 -0700 | [diff] [blame] | 158 | @hooks.before_all |
| 159 | def my_before_all_hook(transactions): |
Matteo Scandolo | f2bb559 | 2016-04-11 09:59:23 -0700 | [diff] [blame^] | 160 | # print "-------------------------------- Before All Hook --------------------------------" |
Matteo Scandolo | b94d7ab | 2016-04-08 16:38:15 -0700 | [diff] [blame] | 161 | cleanDB() |
| 162 | |
| 163 | |
Matteo Scandolo | a665842 | 2016-04-06 14:44:56 -0700 | [diff] [blame] | 164 | @hooks.before_each |
| 165 | def my_before_each_hook(transaction): |
Matteo Scandolo | f2bb559 | 2016-04-11 09:59:23 -0700 | [diff] [blame^] | 166 | # print "-------------------------------- Before Each Hook --------------------------------" |
Matteo Scandolo | af4c238 | 2016-04-08 14:22:39 -0700 | [diff] [blame] | 167 | auth = doLogin('padmin@vicci.org', 'letmein') |
| 168 | transaction['request']['headers']['X-CSRFToken'] = auth['token'] |
| 169 | transaction['request']['headers']['Cookie'] = "xossessionid=%s; xoscsrftoken=%s" % (auth['sessionid'], auth['token']) |
Matteo Scandolo | c916b5e | 2016-04-07 14:38:54 -0700 | [diff] [blame] | 170 | createTestSubscriber() |
Matteo Scandolo | a665842 | 2016-04-06 14:44:56 -0700 | [diff] [blame] | 171 | sys.stdout.flush() |
| 172 | |
| 173 | |
| 174 | @hooks.before("Truckroll > Truckroll Collection > Create a Truckroll") |
Matteo Scandolo | 336dda1 | 2016-04-07 16:36:23 -0700 | [diff] [blame] | 175 | def test1(transaction): |
| 176 | setUpTruckroll() |
Matteo Scandolo | a665842 | 2016-04-06 14:44:56 -0700 | [diff] [blame] | 177 | |
| 178 | |
| 179 | @hooks.before("Truckroll > Truckroll Detail > View a Truckroll Detail") |
Matteo Scandolo | 336dda1 | 2016-04-07 16:36:23 -0700 | [diff] [blame] | 180 | def test2(transaction): |
| 181 | deleteTruckrolls() |
| 182 | createTruckroll() |
Matteo Scandolo | a665842 | 2016-04-06 14:44:56 -0700 | [diff] [blame] | 183 | |
| 184 | |
| 185 | @hooks.before("Truckroll > Truckroll Detail > Delete a Truckroll Detail") |
Matteo Scandolo | 336dda1 | 2016-04-07 16:36:23 -0700 | [diff] [blame] | 186 | def test3(transaction): |
| 187 | deleteTruckrolls() |
| 188 | createTruckroll() |
Matteo Scandolo | a665842 | 2016-04-06 14:44:56 -0700 | [diff] [blame] | 189 | |
| 190 | |
| 191 | @hooks.before("vOLT > vOLT Collection > Create a vOLT") |
Matteo Scandolo | 336dda1 | 2016-04-07 16:36:23 -0700 | [diff] [blame] | 192 | def test4(transaction): |
Matteo Scandolo | af4c238 | 2016-04-08 14:22:39 -0700 | [diff] [blame] | 193 | # transaction['skip'] = True |
| 194 | VOLTTenant.objects.get(kind='vOLT').delete() |