mirror of
https://github.com/GSA/notifications-api.git
synced 2026-02-23 03:22:53 -05:00
81 lines
2.1 KiB
Python
81 lines
2.1 KiB
Python
from unittest.mock import MagicMock
|
|
|
|
from app.history_meta import (
|
|
_get_bases_for_versioned_class,
|
|
_handle_single_table_inheritance,
|
|
)
|
|
|
|
|
|
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,
|
|
)
|
|
|
|
assert bases == (object,)
|
|
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
|
|
|
|
|
|
def test_handle_single_table_inheritance():
|
|
col1 = MagicMock()
|
|
col1.key = "id"
|
|
col1.name = "name_col1"
|
|
col2 = MagicMock()
|
|
col2.key = "new_column"
|
|
col2.name = "name_col2"
|
|
|
|
local_mapper = MagicMock()
|
|
local_mapper.local_table.c = [col1, col2]
|
|
|
|
super_history_mapper = MagicMock()
|
|
super_history_mapper.local_table.c = {"id": col1}
|
|
super_history_mapper.local_table.append_column = col2
|
|
|
|
_handle_single_table_inheritance(local_mapper, super_history_mapper)
|
|
|
|
super_history_mapper.local_table.append_column.assert_called_once()
|