cuenca-validations 2.1.16.dev11__tar.gz → 2.1.17.dev1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. {cuenca_validations-2.1.16.dev11 → cuenca_validations-2.1.17.dev1}/PKG-INFO +1 -1
  2. {cuenca_validations-2.1.16.dev11 → cuenca_validations-2.1.17.dev1}/cuenca_validations/types/enums.py +1 -0
  3. {cuenca_validations-2.1.16.dev11 → cuenca_validations-2.1.17.dev1}/cuenca_validations/types/requests.py +16 -2
  4. cuenca_validations-2.1.17.dev1/cuenca_validations/version.py +1 -0
  5. {cuenca_validations-2.1.16.dev11 → cuenca_validations-2.1.17.dev1}/cuenca_validations.egg-info/PKG-INFO +1 -1
  6. cuenca_validations-2.1.17.dev1/tests/test_requests.py +70 -0
  7. cuenca_validations-2.1.16.dev11/cuenca_validations/version.py +0 -1
  8. cuenca_validations-2.1.16.dev11/tests/test_requests.py +0 -31
  9. {cuenca_validations-2.1.16.dev11 → cuenca_validations-2.1.17.dev1}/LICENSE +0 -0
  10. {cuenca_validations-2.1.16.dev11 → cuenca_validations-2.1.17.dev1}/README.md +0 -0
  11. {cuenca_validations-2.1.16.dev11 → cuenca_validations-2.1.17.dev1}/cuenca_validations/__init__.py +0 -0
  12. {cuenca_validations-2.1.16.dev11 → cuenca_validations-2.1.17.dev1}/cuenca_validations/card_bins.py +0 -0
  13. {cuenca_validations-2.1.16.dev11 → cuenca_validations-2.1.17.dev1}/cuenca_validations/errors.py +0 -0
  14. {cuenca_validations-2.1.16.dev11 → cuenca_validations-2.1.17.dev1}/cuenca_validations/py.typed +0 -0
  15. {cuenca_validations-2.1.16.dev11 → cuenca_validations-2.1.17.dev1}/cuenca_validations/types/__init__.py +0 -0
  16. {cuenca_validations-2.1.16.dev11 → cuenca_validations-2.1.17.dev1}/cuenca_validations/types/card.py +0 -0
  17. {cuenca_validations-2.1.16.dev11 → cuenca_validations-2.1.17.dev1}/cuenca_validations/types/files.py +0 -0
  18. {cuenca_validations-2.1.16.dev11 → cuenca_validations-2.1.17.dev1}/cuenca_validations/types/general.py +0 -0
  19. {cuenca_validations-2.1.16.dev11 → cuenca_validations-2.1.17.dev1}/cuenca_validations/types/helpers.py +0 -0
  20. {cuenca_validations-2.1.16.dev11 → cuenca_validations-2.1.17.dev1}/cuenca_validations/types/identities.py +0 -0
  21. {cuenca_validations-2.1.16.dev11 → cuenca_validations-2.1.17.dev1}/cuenca_validations/types/morals.py +0 -0
  22. {cuenca_validations-2.1.16.dev11 → cuenca_validations-2.1.17.dev1}/cuenca_validations/types/queries.py +0 -0
  23. {cuenca_validations-2.1.16.dev11 → cuenca_validations-2.1.17.dev1}/cuenca_validations/typing.py +0 -0
  24. {cuenca_validations-2.1.16.dev11 → cuenca_validations-2.1.17.dev1}/cuenca_validations/validators.py +0 -0
  25. {cuenca_validations-2.1.16.dev11 → cuenca_validations-2.1.17.dev1}/cuenca_validations.egg-info/SOURCES.txt +0 -0
  26. {cuenca_validations-2.1.16.dev11 → cuenca_validations-2.1.17.dev1}/cuenca_validations.egg-info/dependency_links.txt +0 -0
  27. {cuenca_validations-2.1.16.dev11 → cuenca_validations-2.1.17.dev1}/cuenca_validations.egg-info/requires.txt +0 -0
  28. {cuenca_validations-2.1.16.dev11 → cuenca_validations-2.1.17.dev1}/cuenca_validations.egg-info/top_level.txt +0 -0
  29. {cuenca_validations-2.1.16.dev11 → cuenca_validations-2.1.17.dev1}/setup.cfg +0 -0
  30. {cuenca_validations-2.1.16.dev11 → cuenca_validations-2.1.17.dev1}/setup.py +0 -0
  31. {cuenca_validations-2.1.16.dev11 → cuenca_validations-2.1.17.dev1}/tests/__init__.py +0 -0
  32. {cuenca_validations-2.1.16.dev11 → cuenca_validations-2.1.17.dev1}/tests/test_card.py +0 -0
  33. {cuenca_validations-2.1.16.dev11 → cuenca_validations-2.1.17.dev1}/tests/test_errors.py +0 -0
  34. {cuenca_validations-2.1.16.dev11 → cuenca_validations-2.1.17.dev1}/tests/test_helpers.py +0 -0
  35. {cuenca_validations-2.1.16.dev11 → cuenca_validations-2.1.17.dev1}/tests/test_statement.py +0 -0
  36. {cuenca_validations-2.1.16.dev11 → cuenca_validations-2.1.17.dev1}/tests/test_types.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cuenca_validations
3
- Version: 2.1.16.dev11
3
+ Version: 2.1.17.dev1
4
4
  Summary: Cuenca common validations
5
5
  Home-page: https://github.com/cuenca-mx/cuenca-validations
6
6
  Author: Cuenca
@@ -588,6 +588,7 @@ class SessionType(str, Enum):
588
588
  account_entries = 'session.account_entries'
589
589
  download_file = 'session.download_file'
590
590
  upload_file = 'session.upload_file'
591
+ metamap_verification = 'session.metamap_verification'
591
592
 
592
593
 
593
594
  class WebhookObject(str, Enum):
@@ -491,7 +491,7 @@ class UserRequest(BaseModel):
491
491
  @classmethod
492
492
  def validate_profession(cls, profession: Profession) -> Profession:
493
493
  if profession == Profession.otro:
494
- raise ValueError('Profession "otro" is not allowed for this model')
494
+ raise ValueError('Profession "otro" is not allowed')
495
495
  return profession
496
496
 
497
497
 
@@ -528,7 +528,7 @@ class UserUpdateRequest(BaseModel):
528
528
  @classmethod
529
529
  def validate_profession(cls, profession: Profession) -> Profession:
530
530
  if profession == Profession.otro:
531
- raise ValueError('Profession "otro" is not allowed for this model')
531
+ raise ValueError('Profession "otro" is not allowed')
532
532
  return profession
533
533
 
534
534
 
@@ -547,6 +547,19 @@ class SessionRequest(BaseRequest):
547
547
  type: SessionType
548
548
  success_url: Optional[SerializableAnyUrl] = None
549
549
  failure_url: Optional[SerializableAnyUrl] = None
550
+ resource_id: Optional[str] = None
551
+
552
+ @model_validator(mode='before')
553
+ @classmethod
554
+ def validate_metadata(cls, values: dict) -> dict:
555
+ if values[
556
+ 'type'
557
+ ] == SessionType.metamap_verification and not values.get(
558
+ 'resource_id'
559
+ ):
560
+ raise ValueError('Resource id expected for this session')
561
+ return values
562
+
550
563
  model_config = ConfigDict(
551
564
  json_schema_extra={
552
565
  'example': {
@@ -554,6 +567,7 @@ class SessionRequest(BaseRequest):
554
567
  'type': 'session.registration',
555
568
  'success_url': 'http://example_success.com',
556
569
  'failure_url': 'http://example_failure.com',
570
+ 'resource_id': 'some_resource_id',
557
571
  }
558
572
  }
559
573
  )
@@ -0,0 +1 @@
1
+ __version__ = '2.1.17.dev1'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cuenca_validations
3
- Version: 2.1.16.dev11
3
+ Version: 2.1.17.dev1
4
4
  Summary: Cuenca common validations
5
5
  Home-page: https://github.com/cuenca-mx/cuenca-validations
6
6
  Author: Cuenca
@@ -0,0 +1,70 @@
1
+ import pytest
2
+ from pydantic import ValidationError
3
+
4
+ from cuenca_validations.types.enums import SessionType
5
+ from cuenca_validations.types.requests import (
6
+ SessionRequest,
7
+ UserTOSAgreementRequest,
8
+ )
9
+ from cuenca_validations.typing import DictStrAny
10
+
11
+
12
+ @pytest.mark.parametrize('environment', ['stage', 'sandbox', 'api'])
13
+ def test_file_cuenca_url(environment: str) -> None:
14
+ request_data: DictStrAny = dict(
15
+ tos_id='TS67dcae8e74e81bba5a77bf47',
16
+ location=(19.432607, -99.133209),
17
+ signature_image_url=(
18
+ f'https://{environment}.cuenca.com/files/EFQL8_ohvoRp-PkOTYgvQYFA'
19
+ ),
20
+ )
21
+ utos = UserTOSAgreementRequest(**request_data)
22
+ assert utos.signature_image_url is not None
23
+ assert utos.signature_image_url.file_id == 'EFQL8_ohvoRp-PkOTYgvQYFA'
24
+
25
+
26
+ def test_file_cuenca_url_invalid() -> None:
27
+ request_data: DictStrAny = dict(
28
+ tos_id='TS67dcae8e74e81bba5a77bf47',
29
+ location=(19.432607, -99.133209),
30
+ signature_image_url=(
31
+ 'https://cuenca.com/files/EFQL87ohvoRp-PkOTYgvQYFA/invalid'
32
+ ),
33
+ )
34
+ with pytest.raises(ValidationError):
35
+ UserTOSAgreementRequest(**request_data)
36
+
37
+
38
+ def test_session_request_without_metadata():
39
+ request_data = {
40
+ 'user_id': 'USWqY5cvkISJOxHyEKjAKf8w',
41
+ 'type': 'session.curp_validation',
42
+ }
43
+ request = SessionRequest(**request_data)
44
+ assert request.type == SessionType.curp_validation
45
+ assert request.user_id == 'USWqY5cvkISJOxHyEKjAKf8w'
46
+
47
+
48
+ def test_session_request_with_resource_id():
49
+ request_data = {
50
+ 'user_id': 'USWqY5cvkISJOxHyEKjAKf8w',
51
+ 'type': 'session.metamap_verification',
52
+ 'resource_id': 'some_verification_id',
53
+ }
54
+ request = SessionRequest(**request_data)
55
+ assert request.type == SessionType.metamap_verification
56
+ assert request.user_id == 'USWqY5cvkISJOxHyEKjAKf8w'
57
+ assert request.resource_id
58
+ assert request.resource_id == 'some_verification_id'
59
+
60
+
61
+ def test_metamap_session_request_without_metadata():
62
+ request_data = {
63
+ 'user_id': 'USWqY5cvkISJOxHyEKjAKf8w',
64
+ 'type': 'session.metamap_verification',
65
+ }
66
+
67
+ with pytest.raises(ValidationError) as exception:
68
+ SessionRequest(**request_data)
69
+
70
+ assert 'Resource id expected for this session' in str(exception)
@@ -1 +0,0 @@
1
- __version__ = '2.1.16.dev11'
@@ -1,31 +0,0 @@
1
- import pytest
2
- from pydantic import ValidationError
3
-
4
- from cuenca_validations.types.requests import UserTOSAgreementRequest
5
- from cuenca_validations.typing import DictStrAny
6
-
7
-
8
- @pytest.mark.parametrize('environment', ['stage', 'sandbox', 'api'])
9
- def test_file_cuenca_url(environment: str) -> None:
10
- request_data: DictStrAny = dict(
11
- tos_id='TS67dcae8e74e81bba5a77bf47',
12
- location=(19.432607, -99.133209),
13
- signature_image_url=(
14
- f'https://{environment}.cuenca.com/files/EFQL8_ohvoRp-PkOTYgvQYFA'
15
- ),
16
- )
17
- utos = UserTOSAgreementRequest(**request_data)
18
- assert utos.signature_image_url is not None
19
- assert utos.signature_image_url.file_id == 'EFQL8_ohvoRp-PkOTYgvQYFA'
20
-
21
-
22
- def test_file_cuenca_url_invalid() -> None:
23
- request_data: DictStrAny = dict(
24
- tos_id='TS67dcae8e74e81bba5a77bf47',
25
- location=(19.432607, -99.133209),
26
- signature_image_url=(
27
- 'https://cuenca.com/files/EFQL87ohvoRp-PkOTYgvQYFA/invalid'
28
- ),
29
- )
30
- with pytest.raises(ValidationError):
31
- UserTOSAgreementRequest(**request_data)