Exemplo n.º 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 = ''
Exemplo n.º 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))
Exemplo n.º 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 = ''
Exemplo n.º 4
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.")
Exemplo n.º 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.")
Exemplo n.º 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 = ''
Exemplo n.º 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),
                          [])
Exemplo n.º 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 = ""
Exemplo n.º 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
             )
         )
Exemplo n.º 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),
             []
         )
Exemplo n.º 11
0
 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 = ''
Exemplo n.º 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)
Exemplo n.º 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)
Exemplo n.º 14
0
 def __call__(self, form, field):
     schemes = pidutils.detect_identifier_schemes(field.data)
     if not schemes:
         raise ValidationError(self.message)
Exemplo n.º 15
0
 def __call__(self, form, field):
     """Validate."""
     schemes = pidutils.detect_identifier_schemes(field.data)
     if not schemes:
         raise ValidationError(self.message)