summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/orm/mapper.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2016-08-26 12:56:01 -0400
committerMike Bayer <mike_mp@zzzcomputing.com>2016-08-26 12:56:01 -0400
commit117997cd5b849a236208cf9ea16f0f09c6962804 (patch)
tree76205a8974aadf03a944a853389ccf66f81e2866 /lib/sqlalchemy/orm/mapper.py
parentf10eba00ea7c92315b4b39c69627058ad4931448 (diff)
downloadsqlalchemy-117997cd5b849a236208cf9ea16f0f09c6962804.tar.gz
Raise when two validators conflict
Two @validates decorators that make use of the same name is not supported. Raise an exception. Change-Id: Ia3e89ffdc9ef345a0de258e2ac0ac5e0bd421c61 Fixes: #3776
Diffstat (limited to 'lib/sqlalchemy/orm/mapper.py')
-rw-r--r--lib/sqlalchemy/orm/mapper.py5
1 files changed, 5 insertions, 0 deletions
diff --git a/lib/sqlalchemy/orm/mapper.py b/lib/sqlalchemy/orm/mapper.py
index b76a6f727..e8aa08541 100644
--- a/lib/sqlalchemy/orm/mapper.py
+++ b/lib/sqlalchemy/orm/mapper.py
@@ -1204,6 +1204,11 @@ class Mapper(InspectionAttr):
elif hasattr(method, '__sa_validators__'):
validation_opts = method.__sa_validation_opts__
for name in method.__sa_validators__:
+ if name in self.validators:
+ raise sa_exc.InvalidRequestError(
+ "A validation function for mapped "
+ "attribute %r on mapper %s already exists." %
+ (name, self))
self.validators = self.validators.union(
{name: (method, validation_opts)}
)