Advertisement
Guest User

Multi-Agent Fingerprint Testing Suite - V Ultimate

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