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
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) |