lab-testing-maksktl created by GitHub Classroom
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

48 lines
2.0 KiB

# - In this file, you have to add your tests on Customer module.
# - See, app/customer.py
# - Test customer creation, loading, updating and deletion
# - Use mocks
from app.customer import Customer
from app.database import Database
import pytest
from unittest.mock import patch
@pytest.fixture
def db():
return Database('')
@patch('app.database.Database')
def test_customer_initialization(mock_db_class):
mock_db_instance = mock_db_class.return_value
mock_db_instance.add_customer.return_value = 26
customer = Customer(mock_db_instance, name='Maks', address='Universitetskaya 1')
assert customer.customer_id is not None
mock_db_instance.add_customer.assert_called_once_with('Maks', 'Universitetskaya 1')
@patch('app.database.Database')
def test_customer_loading(mock_db_class):
mock_db_instance = mock_db_class.return_value
customer_id = 26
mock_db_instance.get_customer.return_value = (customer_id, 'Maks', 'Universitetskaya 1')
customer = Customer(mock_db_instance, customer_id=customer_id)
assert customer.name == 'Maks'
assert customer.address == 'Universitetskaya 1'
@patch('app.database.Database')
def test_update_customer_details(mock_db_class):
mock_db_instance = mock_db_class.return_value
customer_id = 26
mock_db_instance.add_customer.return_value = customer_id
customer = Customer(mock_db_instance, customer_id=customer_id, name='Maks', address='Universitetskaya 1')
customer.update_details('Maks New', 'Universitetskaya 1/3')
mock_db_instance.update_customer.assert_called_once_with(customer_id, 'Maks New', 'Universitetskaya 1/3')
@patch('app.database.Database')
def test_delete_customer(mock_db_class):
mock_db_instance = mock_db_class.return_value
customer_id = 26
mock_db_instance.add_customer.return_value = customer_id
customer = Customer(mock_db_instance, customer_id=customer_id)
customer.delete_customer()
mock_db_instance.delete_customer.assert_called_once_with(customer_id)