Files
notifications-api/tests/app/test_history_meta.py

81 lines
2.1 KiB
Python
Raw Permalink Normal View History

2025-07-07 13:57:53 -07:00
from unittest.mock import MagicMock
2025-07-07 14:25:20 -07:00
from app.history_meta import (
_get_bases_for_versioned_class,
_handle_single_table_inheritance,
)
2025-07-07 13:57:53 -07:00
def test_get_bases_with_super_history_and_table():
mock_super_mapper = MagicMock()
mock_super_mapper.class_ = object
mock_super_mapper.attrs.changed.columns = ["col1", "col2"]
mock_table = MagicMock()
mock_table.c.changed = "changed_col"
properties = {}
bases = _get_bases_for_versioned_class(
super_history_mapper=mock_super_mapper,
table=mock_table,
properties=properties,
local_mapper=None,
)
2025-07-07 14:07:01 -07:00
assert bases == (object,)
2025-07-07 13:57:53 -07:00
assert properties["changed"] == ("changed_col", "col1", "col2")
def test_get_bases_with_super_history_and_no_table():
mock_super_mapper = MagicMock()
mock_super_mapper.class_ = int
properties = {}
bases = _get_bases_for_versioned_class(
super_history_mapper=mock_super_mapper,
table=None,
properties=properties,
local_mapper=None,
)
assert bases == (int,)
assert "changed" not in properties
def test_get_bases_without_super_history():
class Base:
pass
class_ = type("Dummy", (Base,), {})
local_mapper = MagicMock()
local_mapper.base_mapper.class_ = class_
properties = {}
bases = _get_bases_for_versioned_class(
super_history_mapper=None,
table=None,
properties=properties,
local_mapper=local_mapper,
)
assert bases == (Base,)
assert "changed" not in properties
2025-07-07 14:25:20 -07:00
def test_handle_single_table_inheritance():
col1 = MagicMock()
col1.key = "id"
2025-07-07 14:38:14 -07:00
col1.name = "name_col1"
2025-07-07 14:25:20 -07:00
col2 = MagicMock()
col2.key = "new_column"
2025-07-07 14:38:14 -07:00
col2.name = "name_col2"
2025-07-07 14:25:20 -07:00
local_mapper = MagicMock()
local_mapper.local_table.c = [col1, col2]
super_history_mapper = MagicMock()
super_history_mapper.local_table.c = {"id": col1}
2025-07-07 14:38:14 -07:00
super_history_mapper.local_table.append_column = col2
2025-07-07 14:25:20 -07:00
_handle_single_table_inheritance(local_mapper, super_history_mapper)
2025-07-07 14:55:20 -07:00
super_history_mapper.local_table.append_column.assert_called_once()