예제 #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)