def test_list_users_booked_on_flights_endpoint(self): flight = FlightFactory.build() flight_seat1 = FlightSeatFactory.build(flight_id=flight.id, is_available=False) flight_seat2 = FlightSeatFactory.build(flight_id=flight.id, is_available=False) user1 = UserFactory.build() user2 = UserFactory.build() db.session.add(flight) db.session.add(flight_seat1) db.session.add(flight_seat2) db.session.add(user1) db.session.add(user2) db.session.commit() ticket1 = TicketFactory.build(flight_seat_id=flight_seat1.id, user_id=user1.id, status="PaidFor") ticket2 = TicketFactory.build(flight_seat_id=flight_seat2.id, user_id=user2.id, status="PaidFor") db.session.add(ticket1) db.session.add(ticket2) db.session.commit() response = self.client().get(self.make_url( '/flight/reserved/{}/'.format(flight.id)), headers=self.headers()) response_json = self.decode_from_json_string( response.data.decode('utf-8')) payload = response_json['payload'] print(response_json) self.assertJSONKeyPresent(response_json, 'payload') self.assertEqual(len(payload['flightSeats']), 2)
def test_get_specific_card_enpoint(self): user = UserFactory.build() db.session.add(user) db.session.commit() card = CardFactory.build(user_id=user.id) db.session.add(card) db.session.commit() response = self.client().get(self.make_url('/card/{}/'.format( card.id)), headers=self.headers()) response_json = self.decode_from_json_string( response.data.decode('utf-8')) payload = response_json['payload'] self.assert200(response) self.assertJSONKeyPresent(payload, 'cardDetail') self.assertJSONKeysPresent(payload['cardDetail'], 'cardNumber', 'securiyNumber') self.assertEqual(int(payload['cardDetail']['id']), card.id) self.assertEqual(payload['cardDetail']['securiyNumber'], int(card.securiy_number)) self.assertEqual(payload['cardDetail']['cardNumber'], card.card_number)
def test_create_card_endpoint(self): user = UserFactory.build() print(user.first_name) db.session.add(user) db.session.commit() card = CardFactory.build(user_id=user.id) data = { 'cardNumber': card.card_number, 'expiryMonth': card.expiry_month, 'expiryYear': card.expiry_year, 'securityNumber': card.securiy_number, 'userId': user.id } response = self.client().post(self.make_url('/card/'), data=self.encode_to_json_string(data), headers=self.headers()) response_json = self.decode_from_json_string( response.data.decode('utf-8')) print(response_json) payload = response_json['payload'] self.assertJSONKeyPresent(response_json, 'payload') self.assertEqual(payload['cardDetail']['cardNumber'], card.card_number) self.assertEqual(payload['cardDetail']['securiyNumber'], int(card.securiy_number))
def test_update_card_endpoint(self): user = UserFactory.build() db.session.add(user) db.session.commit() card = CardFactory.build(user_id=user.id) db.session.add(card) db.session.commit() data = data = { 'cardNumber': '1234567890987665', 'expiryMonth': '3', 'expiryYear': '2026', 'securityNumber': '123' } response = self.client().put(self.make_url('/card/{}/'.format( card.id)), data=self.encode_to_json_string(data), headers=self.headers()) response_json = self.decode_from_json_string( response.data.decode('utf-8')) payload = response_json['payload'] self.assert200(response) self.assertEqual(payload['cardDetail']['securiyNumber'], int(card.securiy_number)) self.assertEqual(payload['cardDetail']['cardNumber'], card.card_number) '''Test invalid update request''' # User arbitrary value of 100 as the location ID response = self.client().put(self.make_url('/card/100/'), data=self.encode_to_json_string(data), headers=self.headers()) self.assert400(response)
def test_get_ticket_endpoint(self): flight = FlightFactory.build() flight_seat = FlightSeatFactory.build(flight_id=flight.id) user = UserFactory.build() db.session.add(flight) db.session.add(flight_seat) db.session.add(user) db.session.commit() ticket1 = TicketFactory.build(flight_seat_id=flight_seat.id, user_id=user.id, status="Booked") ticket2 = TicketFactory.build(flight_seat_id=flight_seat.id, user_id=user.id, status="PaidFor") db.session.add(ticket1) db.session.add(ticket2) db.session.commit() response = self.client().get(self.make_url('/ticket/{}/'.format( ticket1.id)), headers=self.headers()) response_json = self.decode_from_json_string( response.data.decode('utf-8')) payload = response_json['payload'] print(payload['ticket']) self.assertJSONKeyPresent(response_json, 'payload') self.assertEqual(payload['ticket']['ticketNo'], ticket1.ticket_no)
def test_create_ticket_endpoint(self): flight = FlightFactory.build() flight_seat = FlightSeatFactory.build(flight_id=flight.id) user = UserFactory.build() ticket = TicketFactory.build() db.session.add(flight) db.session.add(flight_seat) db.session.add(user) db.session.commit() data = { 'flightSeatId': flight_seat.id, 'status': ticket.status, 'userId': user.id } response = self.client().post(self.make_url('/ticket/'), data=self.encode_to_json_string(data), headers=self.headers()) response_json = self.decode_from_json_string( response.data.decode('utf-8')) payload = response_json['payload'] self.assertJSONKeyPresent(response_json, 'payload') self.assertJSONKeyPresent(payload['ticket'], 'flightSeatId') self.assertJSONKeyPresent(payload['ticket'], 'ticketNo')
def test_delete_ticket_endpoint(self): flight = FlightFactory.build() flight_seat = FlightSeatFactory.build(flight_id=flight.id) user = UserFactory.build() db.session.add(flight) db.session.add(flight_seat) db.session.add(user) db.session.commit() ticket1 = TicketFactory.build(flight_seat_id=flight_seat.id, user_id=user.id, status="Reserved") db.session.add(ticket1) db.session.commit() data = { 'flightSeatId': flight_seat.id, 'status': 'Booked', 'userId': user.id } response = self.client().delete(self.make_url('/ticket/{}/'.format( ticket1.id)), headers=self.headers()) response_json = self.decode_from_json_string( response.data.decode('utf-8')) payload = response_json['payload'] self.assertJSONKeyPresent(response_json, 'payload') self.assertEqual(payload['status'], 'success')
def test_create_user_weak_password_endpoint(self): user = UserFactory.build() data = {'firstName': user.first_name, 'lastName': user.last_name, 'middleName': user.middle_name, 'emailAddress': user.email_address, 'password': '******'} response = self.client().post(self.make_url('/user/'), data=self.encode_to_json_string(data), headers=self.headers()) response_json = self.decode_from_json_string(response.data.decode('utf-8')) payload = response_json['msg'] self.assertJSONKeyPresent(response_json, 'msg') self.assertEqual(payload, 'Bad Request - password not strong enough')
def test_create_user_endpoint(self): user = UserFactory.build() data = {'firstName': user.first_name, 'lastName': user.last_name, 'middleName': user.middle_name, 'emailAddress': user.email_address, 'password': user.password} response = self.client().post(self.make_url('/user/'), data=self.encode_to_json_string(data), headers=self.headers()) response_json = self.decode_from_json_string(response.data.decode('utf-8')) payload = response_json['payload'] self.assertJSONKeyPresent(response_json, 'payload') self.assertEqual(payload['user']['firstName'], user.first_name) self.assertEqual(payload['user']['lastName'], user.last_name) self.assertEqual(payload['user']['middleName'], user.middle_name) self.assertEqual(payload['user']['emailAddress'], user.email_address)
def test_delete_card_endpoint(self): user = UserFactory.build() db.session.add(user) db.session.commit() card = CardFactory.build(user_id=user.id) db.session.add(card) db.session.commit() response = self.client().delete(self.make_url('/card/{}/'.format( card.id)), headers=self.headers()) response_json = self.decode_from_json_string( response.data.decode('utf-8')) payload = response_json['payload'] self.assert200(response) self.assertEqual(payload['status'], "success")
def test_list_card_endpoint(self): user = UserFactory.build() db.session.add(user) db.session.commit() card1 = CardFactory.build(user_id=user.id) card2 = CardFactory.build(user_id=user.id) db.session.add(card1) db.session.add(card2) db.session.commit() response = self.client().get(self.make_url('/card/'), headers=self.headers()) response_json = self.decode_from_json_string( response.data.decode('utf-8')) payload = response_json['payload'] self.assert200(response) self.assertEqual(len(payload['cardDetails']), 2) self.assertJSONKeysPresent(payload['cardDetails'][0], 'cardNumber', 'expiryMonth')
def test_create_card_validation_endpoint(self): user = UserFactory.build() print(user.first_name) db.session.add(user) db.session.commit() card = CardFactory.build(user_id=user.id) data = { 'cardNumber': 2, 'expiryMonth': 'card.expiry_month', 'expiryYear': 'card.expiry_year', 'securityNumber': card.securiy_number, 'userId': user.id } response = self.client().post(self.make_url('/card/'), data=self.encode_to_json_string(data), headers=self.headers()) response_json = self.decode_from_json_string( response.data.decode('utf-8')) self.assert400(response)