mirror of
https://gitlab.crans.org/mediatek/med.git
synced 2025-07-07 07:04:00 +02:00
More testing
This commit is contained in:
@ -8,7 +8,6 @@ Based on https://github.com/secnot/django-isbn-field
|
||||
|
||||
from django.core.exceptions import ValidationError
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
from six import string_types
|
||||
from stdnum import isbn
|
||||
|
||||
|
||||
@ -16,16 +15,16 @@ def isbn_validator(raw_isbn):
|
||||
"""Check string is a valid ISBN number"""
|
||||
isbn_to_check = raw_isbn.replace('-', '').replace(' ', '')
|
||||
|
||||
if not isinstance(isbn_to_check, string_types):
|
||||
raise ValidationError(_(u'Invalid ISBN: Not a string'))
|
||||
if not isinstance(isbn_to_check, str):
|
||||
raise ValidationError(_('Invalid ISBN: Not a string'))
|
||||
|
||||
if len(isbn_to_check) != 10 and len(isbn_to_check) != 13:
|
||||
raise ValidationError(_(u'Invalid ISBN: Wrong length'))
|
||||
raise ValidationError(_('Invalid ISBN: Wrong length'))
|
||||
|
||||
if not isbn.is_valid(isbn_to_check):
|
||||
raise ValidationError(_(u'Invalid ISBN: Failed checksum'))
|
||||
raise ValidationError(_('Invalid ISBN: Failed checksum'))
|
||||
|
||||
if isbn_to_check != isbn_to_check.upper():
|
||||
raise ValidationError(_(u'Invalid ISBN: Only upper case allowed'))
|
||||
raise ValidationError(_('Invalid ISBN: Only upper case allowed'))
|
||||
|
||||
return True
|
||||
|
Reference in New Issue
Block a user