示例#1
0
 def __call__(self, form, field, submit=False, fields=None):
     if field.data:
         schemes = pidutils.detect_identifier_schemes(field.data)
         if schemes:
             getattr(form, self.set_field).data = schemes[0]
         else:
             getattr(form, self.set_field).data = ''
示例#2
0
 def test_detect_schemes(self):
     for i, expected_schemes, normalized_value, url_value in identifiers:
         schemes = pidutils.detect_identifier_schemes(i)
         self.assertEqual(
             schemes, expected_schemes,
             "Found %s for identifier %s, but expected %s" %
             (schemes, i, expected_schemes))
示例#3
0
 def __call__(self, form, field, submit=False, fields=None):
     if field.data:
         schemes = pidutils.detect_identifier_schemes(field.data)
         if schemes:
             getattr(form, self.set_field).data = schemes[0]
         else:
             getattr(form, self.set_field).data = ''
示例#4
0
文件: forms.py 项目: dset0x/zenodo
 def validate_orcid(form, field):
     if field.data:
         from invenio.utils import persistentid
         schemes = persistentid.detect_identifier_schemes(
             field.data or ''
         )
         if 'orcid' not in schemes:
             raise ValidationError("Not a valid ORCID-identifier.")
示例#5
0
 def validate_orcid(form, field):
     if field.data:
         from invenio.utils import persistentid
         schemes = persistentid.detect_identifier_schemes(
             field.data or ''
         )
         if 'orcid' not in schemes:
             raise ValidationError("Not a valid ORCID-identifier.")
示例#6
0
 def validate_scheme(form, field):
     """Set scheme based on value in identifier."""
     from invenio.utils import persistentid
     schemes = persistentid.detect_identifier_schemes(
         form.data.get('identifier') or '')
     if schemes:
         field.data = schemes[0]
     else:
         field.data = ''
示例#7
0
 def test_valueerror(self):
     # Many validators rely on a special length of the identifier before
     # testing further. This test, checks that the validators are still
     # well-behaved when the length matches, but the persistent identifier
     # is invalid.
     for i in range(20):
         nonsense_pid = "a" * i
         self.assertEqual(pidutils.detect_identifier_schemes(nonsense_pid),
                          [])
示例#8
0
    def validate_scheme(form, field):
        """Set scheme based on value in identifier."""
        from invenio.utils import persistentid

        schemes = persistentid.detect_identifier_schemes(form.data.get("identifier") or "")
        if schemes:
            field.data = schemes[0]
        else:
            field.data = ""
示例#9
0
 def test_detect_schemes(self):
     for i, expected_schemes, normalized_value in identifiers:
         schemes = pidutils.detect_identifier_schemes(i)
         self.assertEqual(
             schemes,
             expected_schemes,
             "Found %s for identifier %s, but expected %s" % (
                 schemes, i, expected_schemes
             )
         )
示例#10
0
 def test_valueerror(self):
     # Many validators rely on a special length of the identifier before
     # testing further. This test, checks that the validators are still
     # well-behaved when the length matches, but the persisitent identifier
     # is invalid.
     for i in range(20):
         nonsense_pid = "a" * i
         self.assertEqual(
             pidutils.detect_identifier_schemes(nonsense_pid),
             []
         )
示例#11
0
文件: forms.py 项目: egabancho/zenodo
 def validate_scheme(form, field):
     """
     Always set scheme based on value in identifier
     """
     from invenio.utils import persistentid
     schemes = persistentid.detect_identifier_schemes(
         form.data.get('identifier') or ''
     )
     if schemes:
         field.data = schemes[0]
     else:
         field.data = ''
示例#12
0
 def __call__(self, form, field, submit=False, fields=None):
     scheme = None
     if self.scheme_field:
         scheme = getattr(form, self.scheme_field).data
     elif self.scheme:
         scheme = self.scheme
     else:
         schemes = pidutils.detect_identifier_schemes(field.data)
         if schemes:
             scheme = schemes[0]
     if scheme:
         if field.data:
             field.data = pidutils.normalize_pid(field.data, scheme=scheme)
示例#13
0
 def __call__(self, form, field, submit=False, fields=None):
     scheme = None
     if self.scheme_field:
         scheme = getattr(form, self.scheme_field).data
     elif self.scheme:
         scheme = self.scheme
     else:
         schemes = pidutils.detect_identifier_schemes(field.data)
         if schemes:
             scheme = schemes[0]
     if scheme:
         if field.data:
             field.data = pidutils.normalize_pid(field.data, scheme=scheme)
示例#14
0
 def __call__(self, form, field):
     schemes = pidutils.detect_identifier_schemes(field.data)
     if not schemes:
         raise ValidationError(self.message)
示例#15
0
 def __call__(self, form, field):
     """Validate."""
     schemes = pidutils.detect_identifier_schemes(field.data)
     if not schemes:
         raise ValidationError(self.message)