M8-T12: scope energy contracts
This commit is contained in:
@@ -14,8 +14,6 @@ from sqlalchemy import create_engine, event, inspect, text
|
||||
from sqlalchemy.orm import Session
|
||||
|
||||
from app.models.meter_source import MeterSourceChannel, WarmteLinkReading
|
||||
from scripts.app_db_adopt import APP_BASELINE_REVISION
|
||||
|
||||
REVISION_16 = "20260822_16_dsmr_source_adoption"
|
||||
REVISION_17 = "20260822_17_warmtelink_readings"
|
||||
|
||||
@@ -78,8 +76,8 @@ def _insert_reading(connection, channel_id: int, timestamp: datetime, value: Dec
|
||||
def test_empty_database_and_revision_16_upgrade_are_additive_and_idempotent(tmp_path: Path):
|
||||
empty_url = f"sqlite:///{tmp_path / 'warmtelink_empty.db'}"
|
||||
empty_config = _config(empty_url)
|
||||
command.upgrade(empty_config, "head")
|
||||
command.upgrade(empty_config, "head")
|
||||
command.upgrade(empty_config, REVISION_17)
|
||||
command.upgrade(empty_config, REVISION_17)
|
||||
empty_engine = _engine(empty_url)
|
||||
try:
|
||||
with empty_engine.connect() as connection:
|
||||
@@ -106,8 +104,8 @@ def test_empty_database_and_revision_16_upgrade_are_additive_and_idempotent(tmp_
|
||||
finally:
|
||||
engine.dispose()
|
||||
|
||||
command.upgrade(config, "head")
|
||||
command.upgrade(config, "head")
|
||||
command.upgrade(config, REVISION_17)
|
||||
command.upgrade(config, REVISION_17)
|
||||
engine = _engine(database_url)
|
||||
try:
|
||||
with engine.connect() as connection:
|
||||
@@ -125,7 +123,7 @@ def test_empty_database_and_revision_16_upgrade_are_additive_and_idempotent(tmp_
|
||||
def test_warmtelink_reading_constraints_indexes_and_decimal_round_trip(tmp_path: Path):
|
||||
database_url = f"sqlite:///{tmp_path / 'warmtelink_constraints.db'}"
|
||||
config = _config(database_url)
|
||||
command.upgrade(config, "head")
|
||||
command.upgrade(config, REVISION_17)
|
||||
timestamp = datetime(2026, 8, 22, 10, 30, tzinfo=timezone.utc)
|
||||
engine = _engine(database_url)
|
||||
try:
|
||||
@@ -233,13 +231,12 @@ def test_warmtelink_reading_model_uses_restrictive_relationship_and_aware_column
|
||||
assert "delete-orphan" not in relationship.cascade
|
||||
assert WarmteLinkReading.__table__.c.recorded_at.type.timezone is True
|
||||
assert WarmteLinkReading.__table__.c.received_at.type.timezone is True
|
||||
assert APP_BASELINE_REVISION == REVISION_17
|
||||
|
||||
|
||||
def test_warmtelink_reading_downgrade_is_schema_only_on_temporary_database(tmp_path: Path):
|
||||
database_url = f"sqlite:///{tmp_path / 'warmtelink_downgrade.db'}"
|
||||
config = _config(database_url)
|
||||
command.upgrade(config, "head")
|
||||
command.upgrade(config, REVISION_17)
|
||||
command.downgrade(config, REVISION_16)
|
||||
|
||||
engine = _engine(database_url)
|
||||
|
||||
Reference in New Issue
Block a user