+from contextlib import nullcontext
+
import sqlalchemy as sa
from sqlalchemy import Column
from sqlalchemy import Integer
from ._autogen_fixtures import AutogenFixtureTest
from ... import testing
+from ...testing import config
from ...testing import eq_
+from ...testing import expect_warnings
from ...testing import is_
from ...testing import is_true
from ...testing import mock
__requires__ = ("computed_columns",)
__backend__ = True
+ def _fixture_ctx(self):
+ if config.requirements.computed_columns_warn_no_persisted.enabled:
+ ctx = expect_warnings()
+ else:
+ ctx = nullcontext()
+ return ctx
+
def test_add_computed_column(self):
m1 = MetaData()
m2 = MetaData()
Column("foo", Integer, sa.Computed("5")),
)
- diffs = self._fixture(m1, m2)
+ with self._fixture_ctx():
+ diffs = self._fixture(m1, m2)
eq_(diffs[0][0], "add_column")
eq_(diffs[0][2], "user")
Table("user", m2, Column("id", Integer, primary_key=True))
- diffs = self._fixture(m1, m2)
+ with self._fixture_ctx():
+ diffs = self._fixture(m1, m2)
eq_(diffs[0][0], "remove_column")
eq_(diffs[0][2], "user")
Column("foo", Integer, *arg_after),
)
- with mock.patch("alembic.util.warn") as mock_warn:
+ with mock.patch("alembic.util.warn") as mock_warn, self._fixture_ctx():
diffs = self._fixture(m1, m2)
eq_(
Column("foo", Integer, *arg_after),
)
- with mock.patch("alembic.util.warn") as mock_warn:
+ with mock.patch("alembic.util.warn") as mock_warn, self._fixture_ctx():
diffs = self._fixture(m1, m2)
eq_(mock_warn.mock_calls, [])