Przejdź do treści

Test TestIntegracyjnyRezerwacja

Test integracyjny sprawdzający poprawność procesu rezerwacji oraz płatności.
Obejmuje pełny przebieg: od dodania pokoju, przez rejestrację gościa, aż po stworzenie rezerwacji i potwierdzenie płatności.

Weryfikowane są: - poprawne dodanie pokoju do systemu, - rejestracja gościa i zapisanie jego danych, - przypisanie rezerwacji do gościa i pokoju w określonym terminie, - utworzenie obiektu płatności oraz zmiana jej statusu po potwierdzeniu.


Dokumentacja techniczna

Bases: TestCase

Test integracyjny sprawdzający proces rezerwacji oraz płatności: dodanie pokoju, rejestracja gościa, dokonanie rezerwacji oraz potwierdzenie płatności.

test_rezerwacja_i_platnosc(mock_input)

Test obejmuje: dodanie pokoju i weryfikację jego obecności w systemie, rejestrację gościa, dokonanie rezerwacji z przypisaną płatnością, potwierdzenie płatności i zmianę jej statusu.

Source code in tests/integration/test_integracyjny_rezerwacja_platnosc.py
@patch('builtins.input')
def test_rezerwacja_i_platnosc(self, mock_input):
    """ Test obejmuje:
            dodanie pokoju i weryfikację jego obecności w systemie,
            rejestrację gościa,
            dokonanie rezerwacji z przypisaną płatnością,
            potwierdzenie płatności i zmianę jej statusu. """

    dzisiaj = date.today()
    jutro = dzisiaj + timedelta(days=1)

    dane_wejsciowe = [
        "100",
        "single",
        "200",
        "1",
        "Jan",
        "Kowalski",
        "jankowalski@email.com",
        "123456789"
    ]

    mock_input.side_effect = dane_wejsciowe
    add_room()
    self.assertEqual(len(hotel.get_all_rooms()), 1)

    register_guest()
    self.assertEqual(len(guests), 1)

    lista_gosci = list(guests.keys())
    gosc_id = lista_gosci[0]

    mock_input.side_effect = [
        gosc_id,
        dzisiaj.strftime("%Y-%m-%d"),
        jutro.strftime("%Y-%m-%d"),
        "100",
        "karta"
    ]

    make_reservation()
    self.assertEqual(len(hotel.get_all_reservations()), 1)

    self.assertEqual(len(payments), 1)
    lista_platnosci = list(payments.values())
    platnosc = lista_platnosci[0]
    self.assertFalse(platnosc.paid)

    mock_input.side_effect = [platnosc.payment_id]
    confirm_payment()
    self.assertTrue(platnosc.paid)