Browse Source
* gnu/packages/patches/python-alembic-exceptions-cause.patch: New file. * gnu/local.mk (dist_patch_DATA): Adjust accordingly. * gnu/packages/databases.scm (python-alembic): Update to 1.4.1. [source](patches): New field. [arguments]: New field, override check phase.guile-daemon

3 changed files with 78 additions and 2 deletions
@ -0,0 +1,69 @@ |
|||
Fix a test failure with newer versions of SQLalchemy due to missing |
|||
"causes" for some exceptions. |
|||
|
|||
diff --git a/alembic/operations/ops.py b/alembic/operations/ops.py
|
|||
index 5ec2762..7129472 100644
|
|||
--- a/alembic/operations/ops.py
|
|||
+++ b/alembic/operations/ops.py
|
|||
@@ -108,6 +108,7 @@ def from_constraint(cls, constraint):
|
|||
"primary_key_constraint": "primary", |
|||
"check_constraint": "check", |
|||
"column_check_constraint": "check", |
|||
+ "table_or_column_check_constraint": "check",
|
|||
} |
|||
|
|||
constraint_table = sqla_compat._table_for_constraint(constraint) |
|||
@@ -707,6 +708,7 @@ def batch_create_foreign_key(
|
|||
"create_check_constraint", "batch_create_check_constraint" |
|||
) |
|||
@AddConstraintOp.register_add_constraint("check_constraint") |
|||
+@AddConstraintOp.register_add_constraint("table_or_column_check_constraint")
|
|||
@AddConstraintOp.register_add_constraint("column_check_constraint") |
|||
class CreateCheckConstraintOp(AddConstraintOp): |
|||
"""Represent a create check constraint operation.""" |
|||
diff --git a/alembic/testing/assertions.py b/alembic/testing/assertions.py
|
|||
index 3dc08f0..a78e5e8 100644
|
|||
--- a/alembic/testing/assertions.py
|
|||
+++ b/alembic/testing/assertions.py
|
|||
@@ -2,10 +2,9 @@
|
|||
|
|||
import re |
|||
|
|||
+from sqlalchemy import util
|
|||
from sqlalchemy.engine import default |
|||
from sqlalchemy.testing.assertions import _expect_warnings |
|||
-from sqlalchemy.testing.assertions import assert_raises # noqa
|
|||
-from sqlalchemy.testing.assertions import assert_raises_message # noqa
|
|||
from sqlalchemy.testing.assertions import eq_ # noqa |
|||
from sqlalchemy.testing.assertions import is_ # noqa |
|||
from sqlalchemy.testing.assertions import is_false # noqa |
|||
@@ -17,6 +16,29 @@
|
|||
from ..util.compat import py3k |
|||
|
|||
|
|||
+def assert_raises(except_cls, callable_, *args, **kw):
|
|||
+ try:
|
|||
+ callable_(*args, **kw)
|
|||
+ success = False
|
|||
+ except except_cls:
|
|||
+ success = True
|
|||
+
|
|||
+ # assert outside the block so it works for AssertionError too !
|
|||
+ assert success, "Callable did not raise an exception"
|
|||
+
|
|||
+
|
|||
+def assert_raises_message(except_cls, msg, callable_, *args, **kwargs):
|
|||
+ try:
|
|||
+ callable_(*args, **kwargs)
|
|||
+ assert False, "Callable did not raise an exception"
|
|||
+ except except_cls as e:
|
|||
+ assert re.search(msg, util.text_type(e), re.UNICODE), "%r !~ %s" % (
|
|||
+ msg,
|
|||
+ e,
|
|||
+ )
|
|||
+ print(util.text_type(e).encode("utf-8"))
|
|||
+
|
|||
+
|
|||
def eq_ignore_whitespace(a, b, msg=None): |
|||
# sqlalchemy.testing.assertion has this function |
|||
# but not with the special "!U" detection part |
Loading…
Reference in new issue