summaryrefslogtreecommitdiff
path: root/tests/test_script_production.py
diff options
context:
space:
mode:
authorCaselIT <cfederico87@gmail.com>2021-06-15 22:32:05 +0200
committerCaselIT <cfederico87@gmail.com>2021-06-15 23:38:07 +0200
commit7756b35e23ec11b64a1ac37afcb41dda3ca29913 (patch)
treea2c46870a195f22c7489bface5a890cf90acff5c /tests/test_script_production.py
parentc0f0a3238fe1ec8029d66ad6ac518b60c78c36ed (diff)
downloadalembic-7756b35e23ec11b64a1ac37afcb41dda3ca29913.tar.gz
Revendor editor and make dateutil optional
Re-implemented the ``python-editor`` dependency as a small internal function to avoid the need for external dependencies. The implementation is based on the original version in 7b91b325ff43a0e9235e0f15b57391fa92352626. Make the ``python-dateutil`` library an optional dependency. This library is only required if the ``timezone`` option is used in the Alembic configuration. An extra require named ``tz`` is available with ``pip install alembic[tz]`` to install it. Fixes: #674 Fixes: #856 Change-Id: I07f17b2fea01e3a3d677ce95333fe3e8d8d438fd
Diffstat (limited to 'tests/test_script_production.py')
-rw-r--r--tests/test_script_production.py16
1 files changed, 16 insertions, 0 deletions
diff --git a/tests/test_script_production.py b/tests/test_script_production.py
index 15d9366..2edae26 100644
--- a/tests/test_script_production.py
+++ b/tests/test_script_production.py
@@ -15,6 +15,7 @@ from alembic.script import ScriptDirectory
from alembic.testing import assert_raises_message
from alembic.testing import assertions
from alembic.testing import eq_
+from alembic.testing import expect_raises_message
from alembic.testing import is_
from alembic.testing import mock
from alembic.testing import ne_
@@ -34,6 +35,10 @@ from alembic.testing.env import write_script
from alembic.testing.fixtures import TestBase
from alembic.util import CommandError
+try:
+ from unittest.mock import patch
+except ImportError:
+ from mock import patch # noqa
env, abc, def_ = None, None, None
@@ -250,6 +255,17 @@ class ScriptNamingTest(TestBase):
datetime.datetime(2012, 7, 25, 15, 8, 5),
)
+ def test_no_dateutil_module(self):
+ with patch("alembic.script.base.tz", new=None):
+ with expect_raises_message(
+ CommandError, "The library 'python-dateutil' is required"
+ ):
+ self._test_tz(
+ "utc",
+ datetime.datetime(2012, 7, 25, 15, 8, 5),
+ datetime.datetime(2012, 7, 25, 15, 8, 5),
+ )
+
class RevisionCommandTest(TestBase):
def setUp(self):