Advertisement
Guest User

Multi-Agent Fingerprint Testing Suite

a guest
Feb 18th, 2020
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.44 KB | None | 0 0
  1. from numpy import sort
  2.  
  3. import flight
  4. from application import *
  5. import hashlib
  6. import json
  7. import requests
  8.  
  9. ###
  10. # SETUP INSTRUCTIONS:
  11. # STEP 1: In Folder 'starter_code' > create a folder > ulitmate_testing_suite_a1 > Save this file underneath it as
  12. # 'Test_Multi_Agent_Fingerprint_Suite.py'
  13. # STEP 2: Add your tester name
  14. ###
  15.  
  16. tester_name = 'Rahul'
  17.  
  18.  
  19. # Validated Fingerprint -> f0f3bfc00f29ccd3b60f52716895dff0
  20. def deep_fingerprint_create_airport():
  21. test_id = 10
  22. input_data = import_data('../data/airports.csv', '../data/customers.csv','../data/segments_small.csv', '../data/trips_small.csv')
  23. input_data_2 = import_data('../data/airports.csv', '../data/customers.csv','../data/segments.csv', '../data/trips.csv')
  24. fingerprint_string = ''
  25.  
  26.  
  27. for element in [input_data, input_data_2]:
  28. airports = create_airports(element[0])
  29. for airport in airports:
  30. fingerprint_string += airport.get_airport_id() + airport.get_name() + str(airport.get_location())
  31.  
  32. fingerprint = hashlib.md5(fingerprint_string.encode('utf-8')).hexdigest()
  33. print("Create Airport MD5 Fingerprint : " + fingerprint)
  34. e_sender(test_id, fingerprint)
  35. return fingerprint
  36.  
  37.  
  38. # Validated Fingerprint -> 52d594b0ec3c2f0509b6bc01e5375f04
  39. def deep_fingerprint_create_customers():
  40. test_id = 11
  41.  
  42. input_data = import_data('../data/airports.csv', '../data/customers.csv','../data/segments_small.csv', '../data/trips_small.csv')
  43. input_data_2 = import_data('../data/airports.csv', '../data/customers.csv','../data/segments.csv', '../data/trips.csv')
  44. fingerprint_string = ''
  45.  
  46. for element in [input_data, input_data_2]:
  47. customers = create_customers(element[2])
  48. fingerprint_string += str(len(customers))
  49. for cid in customers:
  50. fingerprint_string += \
  51. customers[cid].name +\
  52. str(customers[cid].age) +\
  53. customers[cid].nationality +\
  54. str(customers[cid].get_total_flight_costs()) + \
  55. str(customers[cid].get_id()) +\
  56. str(customers[cid].get_ff_status()) +\
  57. str(customers[cid].get_miles())
  58.  
  59. for trip in customers[cid].get_trips():
  60. fingerprint_string += str(trip.get_reservation_id()) +\
  61. str(trip.customer_id) +\
  62. str(trip.trip_departure) +\
  63. str(trip.get_in_flight_time()) +\
  64. str(trip.get_total_trip_time())
  65.  
  66. for seg in trip.get_flight_segments():
  67. fingerprint_string += json.dumps(seg.seat_capacity) +\
  68. json.dumps(seg.seat_availability) +\
  69. seg._flight_id + str(seg._time) +\
  70. str(seg._base_fare_cost) + str(seg._flight_duration) + str(seg._flight_length) + str(seg._long_lat) + str(seg._manifest) + seg._dep_loc + seg._arr_loc
  71. fingerprint = hashlib.md5(fingerprint_string.encode('utf-8')).hexdigest()
  72. print("Create Customer MD5 Fingerprint : " + fingerprint)
  73. e_sender(test_id, fingerprint)
  74. return fingerprint
  75.  
  76.  
  77. def deep_fingerprint_create_flight_segments():
  78. test_id = 12
  79. input_data = import_data('../data/airports.csv', '../data/customers.csv','../data/segments_small.csv', '../data/trips_small.csv')
  80. input_data_2 = import_data('../data/airports.csv', '../data/customers.csv','../data/segments.csv', '../data/trips.csv')
  81. fingerprint_string = ''
  82.  
  83. for element in [input_data, input_data_2]:
  84. flights = create_flight_segments(element[1])
  85. for date in flights:
  86. for seg in flights[date]:
  87. seg._manifest.sort()
  88. fingerprint_string += json.dumps(seg.seat_capacity) + '\n' +\
  89. json.dumps(seg.seat_availability) + '\n' +\
  90. seg._flight_id + str(seg._time) + '\n' +\
  91. str(int(seg._base_fare_cost)) + '\n' +\
  92. str(seg._flight_duration) + '\n' +\
  93. str(seg._flight_length) + '\n' +\
  94. str(seg._long_lat) + '\n' +\
  95. str(seg._manifest) + '\n' +\
  96. seg._dep_loc + '\n' +\
  97. seg._arr_loc
  98. fingerprint = hashlib.md5(fingerprint_string.encode('utf-8')).hexdigest()
  99. print("Create Flight Segment MD5 Fingerprint : " + fingerprint)
  100.  
  101. a = open('fs_info', 'w')
  102. a.write(fingerprint_string)
  103.  
  104. e_sender(test_id, fingerprint)
  105. return fingerprint
  106.  
  107.  
  108. def deep_fingerprint_trip_1():
  109. input_data_small = import_data('../data/airports.csv',
  110. '../data/customers.csv',
  111. '../data/segments_small.csv',
  112. '../data/trips_small.csv')
  113. input_data_big = import_data('../data/airports.csv',
  114. '../data/customers.csv',
  115. '../data/segments.csv', '../data/trips.csv')
  116. small_string = ''
  117. big_sting = ''
  118. airports = create_airports(input_data_small[0])
  119. customers = create_customers(input_data_small[2])
  120.  
  121. flights_small = create_flight_segments(input_data_small[1])
  122. trips_small = load_trips(input_data_small[3], customers, flights_small)
  123.  
  124. flights_big = create_flight_segments(input_data_big[1])
  125. trips_big = load_trips(input_data_big[3], customers, flights_big)
  126.  
  127. for t in trips_small:
  128. small_string += t.get_reservation_id() + str(t.trip_departure) + f'{t.get_in_flight_time()}{t.get_in_flight_time()}{round(t.get_total_trip_time())}'
  129. for s in t.get_flight_segments():
  130. small_string += str(s.seat_availability)
  131. for element in s._manifest:
  132. small_string += str(element)
  133.  
  134. for t in trips_big:
  135. big_sting += t.get_reservation_id() + str(t.trip_departure) + f'{t.get_in_flight_time()}{t.get_in_flight_time()}{round(t.get_total_trip_time())}'
  136. for s in t.get_flight_segments():
  137. big_sting += str(s.seat_availability)
  138. for element in s._manifest:
  139. big_sting += str(element)
  140.  
  141. c_info = ''
  142. for cid, cust in customers.items():
  143. c_info += f'{cid}{cust.get_miles()}{cust.get_ff_status()}{round(cust.all_flight_costs)}'
  144. fingerprint = hashlib.md5((small_string+big_sting).encode('utf-8')).hexdigest()
  145. e_sender(13, fingerprint)
  146. print('Trips 1 MD5 Fingerprints : ' + fingerprint)
  147.  
  148.  
  149. def deep_fingerprint_trip_2():
  150. input_data_small = import_data('../data/airports.csv',
  151. '../data/customers.csv',
  152. '../data/segments_small.csv',
  153. '../data/trips_small.csv')
  154. input_data_big = import_data('../data/airports.csv',
  155. '../data/customers.csv',
  156. '../data/segments.csv', '../data/trips.csv')
  157. small_limited = ''
  158. big_limited = ''
  159. airports = create_airports(input_data_small[0])
  160. customers = create_customers(input_data_small[2]) # type: Dict[int, Customer]
  161.  
  162. flight.AIRPLANE_CAPACITY = {"Economy": 2, "Business": 1}
  163. flights_small = create_flight_segments(input_data_small[1])
  164. trips_small = load_trips(input_data_small[3], customers, flights_small)
  165.  
  166. flights_big = create_flight_segments(input_data_big[1])
  167. trips_big = load_trips(input_data_big[3], customers, flights_big)
  168.  
  169. for t in trips_small:
  170. small_limited += t.get_reservation_id() + str(t.trip_departure) + f'{t.get_in_flight_time()}{t.get_in_flight_time()}{round(t.get_total_trip_time())}'
  171. for s in t.get_flight_segments():
  172. small_limited += str(s.seat_availability)
  173. for element in s._manifest:
  174. small_limited += str(element)
  175.  
  176. for t in trips_big:
  177. big_limited += t.get_reservation_id() + str(t.trip_departure) + f'{t.get_in_flight_time()}{t.get_in_flight_time()}{round(t.get_total_trip_time())}'
  178. for s in t.get_flight_segments():
  179. big_limited += str(s.seat_availability)
  180. for element in s._manifest:
  181. big_limited += str(element)
  182.  
  183. c_info_limited = ''
  184. for cid, cust in customers.items():
  185. c_info_limited += f'{cid}{cust.get_miles()}{cust.get_ff_status()}{round(cust.all_flight_costs)}'
  186.  
  187. fingerprint = hashlib.md5((small_limited+big_limited).encode('utf-8')).hexdigest()
  188. e_sender(14, fingerprint)
  189. print('Trips 2 MD5 Fingerprints : ' + fingerprint)
  190.  
  191.  
  192. def e_sender(test_id, fingerprint):
  193. r = requests.post(
  194. "http://backendless.io/user/ceac10a0309e60457d2567b349fa872bc913dc2958b9b0a86052f8a2c0752e6e/api/edfce9b7c7992fb/fingerprint_tester.php",
  195. data={
  196. 'test_id': test_id,
  197. 'tester': tester_name,
  198. 'hash': fingerprint,
  199. 'debug_log': 'NONE'
  200. }
  201. )
  202. print(
  203. 'Fingerprint sending status: ' +
  204. str(r.status_code) +
  205. ' : ' +
  206. str(r.reason)
  207. )
  208.  
  209.  
  210. if __name__ == "__main__":
  211. deep_fingerprint_create_airport()
  212. deep_fingerprint_create_customers()
  213. deep_fingerprint_create_flight_segments()
  214. deep_fingerprint_trip_1()
  215. deep_fingerprint_trip_2()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement