Esempio n. 1
0
    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)
Esempio n. 2
0
    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)
Esempio n. 3
0
    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))
Esempio n. 4
0
    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)
Esempio n. 5
0
    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)
Esempio n. 6
0
    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')
Esempio n. 7
0
    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')
Esempio n. 8
0
    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')
Esempio n. 9
0
    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)
Esempio n. 10
0
    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")
Esempio n. 11
0
    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')
Esempio n. 12
0
    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)