test: expand unit tests for ml and dagster resources
This commit is contained in:
87
tests/test_assets_elo.py
Normal file
87
tests/test_assets_elo.py
Normal file
@@ -0,0 +1,87 @@
|
||||
"""Tests for ELO rating and comparison assets."""
|
||||
|
||||
from unittest.mock import MagicMock, patch
|
||||
|
||||
from dagster import build_asset_context
|
||||
|
||||
from data_platform.assets.elo.elo import _ensure_schema, elo_comparisons, elo_ratings
|
||||
|
||||
|
||||
class TestEnsureSchema:
|
||||
def test_executes_create_schema_sql(self):
|
||||
conn = MagicMock()
|
||||
with patch(
|
||||
"data_platform.assets.elo.elo.render_sql",
|
||||
return_value="CREATE SCHEMA IF NOT EXISTS elo",
|
||||
):
|
||||
_ensure_schema(conn)
|
||||
conn.execute.assert_called_once()
|
||||
|
||||
|
||||
class TestEloRatings:
|
||||
@patch(
|
||||
"data_platform.assets.elo.elo.render_sql",
|
||||
return_value="CREATE TABLE IF NOT EXISTS elo.ratings ()",
|
||||
)
|
||||
def test_creates_table_and_returns_metadata(self, mock_render):
|
||||
postgres = MagicMock()
|
||||
engine = MagicMock()
|
||||
conn = MagicMock()
|
||||
engine.begin.return_value.__enter__ = MagicMock(return_value=conn)
|
||||
engine.begin.return_value.__exit__ = MagicMock(return_value=False)
|
||||
postgres.get_engine.return_value = engine
|
||||
|
||||
context = build_asset_context()
|
||||
result = elo_ratings(context, postgres)
|
||||
|
||||
assert result.metadata["schema"].value == "elo"
|
||||
assert result.metadata["table"].value == "ratings"
|
||||
# Two calls: _ensure_schema + create table
|
||||
assert conn.execute.call_count == 2
|
||||
|
||||
@patch("data_platform.assets.elo.elo.render_sql", return_value="SQL")
|
||||
def test_calls_get_engine(self, mock_render):
|
||||
postgres = MagicMock()
|
||||
engine = MagicMock()
|
||||
conn = MagicMock()
|
||||
engine.begin.return_value.__enter__ = MagicMock(return_value=conn)
|
||||
engine.begin.return_value.__exit__ = MagicMock(return_value=False)
|
||||
postgres.get_engine.return_value = engine
|
||||
|
||||
context = build_asset_context()
|
||||
elo_ratings(context, postgres)
|
||||
postgres.get_engine.assert_called_once()
|
||||
|
||||
|
||||
class TestEloComparisons:
|
||||
@patch(
|
||||
"data_platform.assets.elo.elo.render_sql",
|
||||
return_value="CREATE TABLE IF NOT EXISTS elo.comparisons ()",
|
||||
)
|
||||
def test_creates_table_and_returns_metadata(self, mock_render):
|
||||
postgres = MagicMock()
|
||||
engine = MagicMock()
|
||||
conn = MagicMock()
|
||||
engine.begin.return_value.__enter__ = MagicMock(return_value=conn)
|
||||
engine.begin.return_value.__exit__ = MagicMock(return_value=False)
|
||||
postgres.get_engine.return_value = engine
|
||||
|
||||
context = build_asset_context()
|
||||
result = elo_comparisons(context, postgres)
|
||||
|
||||
assert result.metadata["schema"].value == "elo"
|
||||
assert result.metadata["table"].value == "comparisons"
|
||||
assert conn.execute.call_count == 2
|
||||
|
||||
@patch("data_platform.assets.elo.elo.render_sql", return_value="SQL")
|
||||
def test_calls_get_engine(self, mock_render):
|
||||
postgres = MagicMock()
|
||||
engine = MagicMock()
|
||||
conn = MagicMock()
|
||||
engine.begin.return_value.__enter__ = MagicMock(return_value=conn)
|
||||
engine.begin.return_value.__exit__ = MagicMock(return_value=False)
|
||||
postgres.get_engine.return_value = engine
|
||||
|
||||
context = build_asset_context()
|
||||
elo_comparisons(context, postgres)
|
||||
postgres.get_engine.assert_called_once()
|
||||
Reference in New Issue
Block a user