diff options
Diffstat (limited to 'lib/sqlalchemy/testing')
| -rw-r--r-- | lib/sqlalchemy/testing/assertsql.py | 4 | ||||
| -rw-r--r-- | lib/sqlalchemy/testing/entities.py | 5 |
2 files changed, 9 insertions, 0 deletions
diff --git a/lib/sqlalchemy/testing/assertsql.py b/lib/sqlalchemy/testing/assertsql.py index b3a71dbff..2fda1e9cb 100644 --- a/lib/sqlalchemy/testing/assertsql.py +++ b/lib/sqlalchemy/testing/assertsql.py @@ -371,6 +371,10 @@ class EachOf(AssertRule): self.rules = list(rules) def process_statement(self, execute_observed): + if not self.rules: + self.is_consumed = True + self.consume_statement = False + while self.rules: rule = self.rules[0] rule.process_statement(execute_observed) diff --git a/lib/sqlalchemy/testing/entities.py b/lib/sqlalchemy/testing/entities.py index cf3138835..15352c8c8 100644 --- a/lib/sqlalchemy/testing/entities.py +++ b/lib/sqlalchemy/testing/entities.py @@ -11,6 +11,7 @@ from __future__ import annotations import sqlalchemy as sa from .. import exc as sa_exc +from ..orm.writeonly import WriteOnlyCollection _repr_stack = set() @@ -82,8 +83,12 @@ class ComparableMixin: for attr in list(a.__dict__): if attr.startswith("_"): continue + value = getattr(a, attr) + if isinstance(value, WriteOnlyCollection): + continue + try: # handle lazy loader errors battr = getattr(b, attr) |
