Przejdź do treści

Test GuestTest

Test jednostkowy dla klasy Guest, weryfikujący poprawność tworzenia obiektów oraz działania metod publicznych klasy.

Sprawdzane są następujące aspekty: - poprawna inicjalizacja danych gościa (imię, nazwisko, e-mail, numer telefonu), - unikalność identyfikatora gościa (guest_id), - działanie metod get_full_name() oraz get_contact_info(), - reprezentacje tekstowe: __str__() i __repr__(), - obsługa błędów przy nieprawidłowych danych wejściowych (brak imienia/nazwiska, błędny e-mail, numer telefonu w złym formacie lub pusty).


Dokumentacja techniczna

Bases: TestCase

Test dla klasy Guest - weryfikuje poprawność tworzenia danych o gościu oraz działania metod klasy.

test_create_guest()

Test poprawności utworzenia obiektu gościa składającego się z takich danych jak: imię, nazwisko, adres e-mail, numer telefonu. Weryfikacja poprawności zapisania danych oraz nadania unikalnego ID.

Source code in tests/unit/Test_guest_class.py
def test_create_guest(self):
    """ Test poprawności utworzenia obiektu gościa składającego się z takich danych jak:
     imię, nazwisko, adres e-mail, numer telefonu. Weryfikacja poprawności zapisania danych oraz nadania unikalnego ID. """
    guest = Guest("Jan", "Kowalski", "jankowalski@email.com", "91123456789")
    self.assertIsInstance(guest.guest_id, str)
    self.assertEqual(guest.first_name, "Jan")
    self.assertEqual(guest.last_name, "Kowalski")
    self.assertEqual(guest.email, "jankowalski@email.com")
    self.assertEqual(guest.phone_number, "91123456789")

test_empty_first_name()

Weryfikacja czy program zwróci błąd ValueError, gdy nie zostanie podane imię gościa.

Source code in tests/unit/Test_guest_class.py
def test_empty_first_name(self):
    """ Weryfikacja czy program zwróci błąd ValueError, gdy nie zostanie podane imię gościa."""
    with self.assertRaises(ValueError):
        Guest("", "Nowakowski", "kazimierz@email.com", "443809091")

test_empty_last_name()

Weryfikacja czy program zwróci błąd ValueError, gdy nie zostanie podane nazwisko gościa.

Source code in tests/unit/Test_guest_class.py
def test_empty_last_name(self):
    """ Weryfikacja czy program zwróci błąd ValueError, gdy nie zostanie podane nazwisko gościa."""
    with self.assertRaises(ValueError):
        Guest("Adam", "", "adamnowak@email.com", "123456789")

test_empty_phone_number()

Weryfikacja czy program zwróci błąd ValueError, gdy nie zostanie podany numer telefonu.

Source code in tests/unit/Test_guest_class.py
def test_empty_phone_number(self):
    """Weryfikacja czy program zwróci błąd ValueError, gdy nie zostanie podany numer telefonu."""
    with self.assertRaises(ValueError):
        Guest("Joanna", "Niewiadomska", "joanna@email.com", "")

test_get_contact_info()

Test działania metody get_contact_info - czy zwraca dane dotyczące adresu e-mail oraz numeru telefonu gościa w formie słownika.

Source code in tests/unit/Test_guest_class.py
def test_get_contact_info(self):
    """ Test działania metody get_contact_info - czy zwraca dane dotyczące adresu e-mail oraz numeru telefonu gościa
    w formie słownika."""
    guest= Guest("Anna", "Kowalska", "annakowalska@email.com", "543871091")
    contact = guest.get_contact_info()
    self.assertEqual(contact["email"], "annakowalska@email.com")
    self.assertEqual(contact["phone_number"], "543871091")

test_get_full_name()

Test działania metody get_full_name - czy zwraca pełne imię i nazwisko gościa.

Source code in tests/unit/Test_guest_class.py
def test_get_full_name(self):
    """ Test działania metody get_full_name - czy zwraca pełne imię i nazwisko gościa."""
    guest = Guest("Adam", "Nowak", "adamnowak@email.com", "123456789")
    self.assertEqual(guest.get_full_name(), "Adam Nowak")

test_invalid_email()

Weryfikacja czy program zwróci błąd ValueError, gdy podany adres e-mail nie posiada poprawnego formatu adresu mailowego.

Source code in tests/unit/Test_guest_class.py
def test_invalid_email(self):
    """ Weryfikacja czy program zwróci błąd ValueError, gdy podany adres e-mail nie posiada poprawnego formatu adresu
    mailowego. """
    with self.assertRaises(ValueError):
        Guest("Anna", "Kowalska", "nomail", "543871091")

test_phone_number_not_string()

Weryfikacja czy program zwróci błąd ValueError, gdy numer telefonu nie zostanie podany w formie tekstowej (string).

Source code in tests/unit/Test_guest_class.py
def test_phone_number_not_string(self):
    """Weryfikacja czy program zwróci błąd ValueError, gdy numer telefonu nie zostanie podany w formie tekstowej (string)."""
    with self.assertRaises(ValueError):
        Guest("Jan", "Kowalski", "jankowalski@email.com", 123456789)

test_repr()

Weryfikacja czy techniczny opis obiektu zawiera pożądane informacje o gościu hotelu.

Source code in tests/unit/Test_guest_class.py
def test_repr(self):
    """ Weryfikacja czy techniczny opis obiektu zawiera pożądane informacje o gościu hotelu."""
    guest = Guest("Joanna", "Niewiadomska", "joanna@email.com", "777871091")
    rep = repr(guest)
    self.assertIn("Gość(ID=", rep)
    self.assertIn("imię='Joanna'", rep)
    self.assertIn("nazwisko='Niewiadomska'", rep)

test_str_representation()

Weryfikacja czy po wyświetleniu gościa widać jego imię i nazwisko.

Source code in tests/unit/Test_guest_class.py
def test_str_representation(self):
    """ Weryfikacja czy po wyświetleniu gościa widać jego imię i nazwisko. """
    guest = Guest("Kazimierz", "Nowakowski", "kazimierz@email.com", "443809091")
    self.assertIn("Gość: Kazimierz Nowakowski", str(guest))