Skip to content

Commit

Permalink
Increases minimum savalidation version to 0.4.0.
Browse files Browse the repository at this point in the history
  • Loading branch information
jfinkels committed Jul 1, 2016
1 parent e5751f7 commit 012c6ad
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 13 deletions.
6 changes: 4 additions & 2 deletions flask_restless/views/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -666,8 +666,10 @@ def extract_error_messages(exception):
# 'errors' comes from sqlalchemy_elixir_validations
if hasattr(exception, 'errors'):
return exception.errors
# 'message' comes from savalidation
if hasattr(exception, 'message'):
# 'invalid_instances' indicates a ValidationError from savalidation.
# 'message' also comes from savalidation.
if hasattr(exception, 'invalid_instances') or \
hasattr(exception, 'message'):
# TODO this works only if there is one validation error
try:
left, right = str(exception).rsplit(':', 1)
Expand Down
2 changes: 1 addition & 1 deletion requirements-test.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
-r requirements.txt
savalidation
savalidation>=0.4.0
unittest2

# For testing PostgreSQL specific operations...
Expand Down
19 changes: 9 additions & 10 deletions tests/test_validation.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,14 +29,14 @@
from sqlalchemy.orm import relationship
from sqlalchemy.orm import validates

# for SAValidation package on pypi.python.org
try:
import savalidation as _sav
import savalidation.validators as sav
from savalidation import ValidationError
from savalidation import ValidationMixin
from savalidation.validators import validates_presence_of
from savalidation.validators import validates_email
except:
has_savalidation = False
else:
sav_version = tuple(int(n) for n in _sav.VERSION.split('.'))
has_savalidation = True

from .helpers import check_sole_error
Expand Down Expand Up @@ -255,8 +255,7 @@ def test_updating_relationship_invalid(self):
assert person.articles == []


@skip_unless(has_savalidation and sav_version >= (0, 2) and
sys.version_info < (3, ), 'savalidation not found.')
@skip_unless(has_savalidation, 'savalidation not found.')
class TestSAValidation(ManagerTestBase):
"""Tests for validation errors raised by the ``savalidation`` package. For
more information about this package, see `its PyPI page
Expand All @@ -268,17 +267,17 @@ def setUp(self):
"""Create APIs for the validated models."""
super(TestSAValidation, self).setUp()

class Person(self.Base, _sav.ValidationMixin):
class Person(self.Base, ValidationMixin):
__tablename__ = 'person'
id = Column(Integer, primary_key=True)
email = Column(Unicode)

sav.validates_presence_of('email')
sav.validates_email('email')
validates_presence_of('email')
validates_email('email')

self.Person = Person
self.Base.metadata.create_all()
exceptions = [_sav.ValidationError]
exceptions = [ValidationError]
self.manager.create_api(Person, methods=['POST', 'PATCH'],
validation_exceptions=exceptions)

Expand Down

0 comments on commit 012c6ad

Please sign in to comment.