feat: implement linting and testing
This commit is contained in:
35
tests/conftest.py
Normal file
35
tests/conftest.py
Normal file
@@ -0,0 +1,35 @@
|
||||
"""Shared test fixtures."""
|
||||
|
||||
from unittest.mock import MagicMock
|
||||
|
||||
|
||||
def make_mock_engine(select_rows: list[tuple] | None = None):
|
||||
"""Return a mock SQLAlchemy engine.
|
||||
|
||||
Args:
|
||||
select_rows: Rows to return from *connect()* (SELECT queries).
|
||||
Defaults to an empty list.
|
||||
"""
|
||||
select_rows = select_rows or []
|
||||
|
||||
engine = MagicMock()
|
||||
|
||||
# engine.begin() context manager → conn for DDL / writes
|
||||
write_conn = MagicMock()
|
||||
engine.begin.return_value.__enter__ = MagicMock(return_value=write_conn)
|
||||
engine.begin.return_value.__exit__ = MagicMock(return_value=False)
|
||||
|
||||
# engine.connect() context manager → conn for SELECTs
|
||||
read_conn = MagicMock()
|
||||
read_conn.execute.return_value = iter(select_rows)
|
||||
engine.connect.return_value.__enter__ = MagicMock(return_value=read_conn)
|
||||
engine.connect.return_value.__exit__ = MagicMock(return_value=False)
|
||||
|
||||
return engine, write_conn, read_conn
|
||||
|
||||
|
||||
def make_mock_listing(data: dict):
|
||||
"""Return a mock pyfunda Listing-like object."""
|
||||
listing = MagicMock()
|
||||
listing.to_dict.return_value = data
|
||||
return listing
|
||||
Reference in New Issue
Block a user