bmc_hub/tests/test_contact_hardware_scope.py

27 lines
1.1 KiB
Python
Raw Normal View History

"""The contact card must not present all company equipment as personal hardware."""
import asyncio
from unittest.mock import Mock
from app.modules.hardware.backend import router
def test_direct_only_excludes_company_equipment(monkeypatch):
query = Mock(side_effect=[[{'id': 1, 'model': 'Personal PC'}], [{'id': 2, 'model': 'Other employee PC'}]])
monkeypatch.setattr(router, 'execute_query', query)
rows = asyncio.run(router.list_hardware_by_contact(1565, direct_only=True))
assert rows == [{'id': 1, 'model': 'Personal PC'}]
assert query.call_count == 1
assert query.call_args.args[1] == (1565,)
def test_no_direct_hardware_stays_empty(monkeypatch):
monkeypatch.setattr(router, 'execute_query', Mock(return_value=[]))
assert asyncio.run(router.list_hardware_by_contact(1565, direct_only=True)) == []
def test_existing_case_callers_keep_company_hardware(monkeypatch):
monkeypatch.setattr(router, 'execute_query', Mock(side_effect=[
[{'id': 1}], [{'id': 1}, {'id': 2}]
]))
assert asyncio.run(router.list_hardware_by_contact(1565)) == [{'id': 1}, {'id': 2}]