cuenca-validations 2.1.3.dev1__py3-none-any.whl → 2.1.4.dev1__py3-none-any.whl
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.
- cuenca_validations/types/__init__.py +2 -2
- cuenca_validations/types/enums.py +5 -0
- cuenca_validations/types/general.py +4 -0
- cuenca_validations/types/requests.py +22 -10
- cuenca_validations/version.py +1 -1
- {cuenca_validations-2.1.3.dev1.dist-info → cuenca_validations-2.1.4.dev1.dist-info}/METADATA +1 -1
- {cuenca_validations-2.1.3.dev1.dist-info → cuenca_validations-2.1.4.dev1.dist-info}/RECORD +11 -11
- {cuenca_validations-2.1.3.dev1.dist-info → cuenca_validations-2.1.4.dev1.dist-info}/WHEEL +1 -1
- tests/test_types.py +41 -3
- {cuenca_validations-2.1.3.dev1.dist-info → cuenca_validations-2.1.4.dev1.dist-info}/LICENSE +0 -0
- {cuenca_validations-2.1.3.dev1.dist-info → cuenca_validations-2.1.4.dev1.dist-info}/top_level.txt +0 -0
|
@@ -46,7 +46,7 @@ __all__ = [
|
|
|
46
46
|
'KYCFile',
|
|
47
47
|
'KYCFileType',
|
|
48
48
|
'KYCValidationRequest',
|
|
49
|
-
'
|
|
49
|
+
'KYCValidationType',
|
|
50
50
|
'Language',
|
|
51
51
|
'LimitedWalletRequest',
|
|
52
52
|
'PartnerRequest',
|
|
@@ -130,6 +130,7 @@ from .enums import (
|
|
|
130
130
|
Gender,
|
|
131
131
|
IssuerNetwork,
|
|
132
132
|
KYCFileType,
|
|
133
|
+
KYCValidationType,
|
|
133
134
|
Language,
|
|
134
135
|
PlatformType,
|
|
135
136
|
PosCapability,
|
|
@@ -201,7 +202,6 @@ from .requests import (
|
|
|
201
202
|
FileRequest,
|
|
202
203
|
FileUploadRequest,
|
|
203
204
|
KYCValidationRequest,
|
|
204
|
-
KYCVerificationUpdateRequest,
|
|
205
205
|
LimitedWalletRequest,
|
|
206
206
|
PartnerRequest,
|
|
207
207
|
PartnerUpdateRequest,
|
|
@@ -22,6 +22,10 @@ SerializableIPvAnyAddress = Annotated[
|
|
|
22
22
|
IPvAnyAddress, PlainSerializer(str, return_type=str)
|
|
23
23
|
]
|
|
24
24
|
|
|
25
|
+
NonEmptyStr = Annotated[
|
|
26
|
+
str, StringConstraints(strip_whitespace=True, min_length=1)
|
|
27
|
+
]
|
|
28
|
+
|
|
25
29
|
|
|
26
30
|
class SantizedDict(dict):
|
|
27
31
|
def __init__(self, *args, **kwargs):
|
|
@@ -28,6 +28,7 @@ from ..types.enums import (
|
|
|
28
28
|
Gender,
|
|
29
29
|
IssuerNetwork,
|
|
30
30
|
KYCFileType,
|
|
31
|
+
KYCValidationType,
|
|
31
32
|
PlatformType,
|
|
32
33
|
PosCapability,
|
|
33
34
|
SavingCategory,
|
|
@@ -55,6 +56,7 @@ from .card import (
|
|
|
55
56
|
)
|
|
56
57
|
from .general import (
|
|
57
58
|
LogConfig,
|
|
59
|
+
NonEmptyStr,
|
|
58
60
|
SerializableAnyUrl,
|
|
59
61
|
SerializableHttpUrl,
|
|
60
62
|
SerializableIPvAnyAddress,
|
|
@@ -421,7 +423,7 @@ class UserRequest(BaseModel):
|
|
|
421
423
|
description='Status that the user will have when created. '
|
|
422
424
|
'Defined by platform',
|
|
423
425
|
)
|
|
424
|
-
required_level: Optional[Annotated[int, Field(ge=-1, le=
|
|
426
|
+
required_level: Optional[Annotated[int, Field(ge=-1, le=3)]] = Field(
|
|
425
427
|
None,
|
|
426
428
|
description='Maximum level a User can reach. ' 'Defined by platform',
|
|
427
429
|
)
|
|
@@ -596,10 +598,6 @@ class LimitedWalletRequest(BaseRequest):
|
|
|
596
598
|
allowed_rfc: Optional[Rfc] = None
|
|
597
599
|
|
|
598
600
|
|
|
599
|
-
class KYCVerificationUpdateRequest(BaseRequest):
|
|
600
|
-
curp: Curp
|
|
601
|
-
|
|
602
|
-
|
|
603
601
|
class PlatformRequest(BaseModel):
|
|
604
602
|
name: str
|
|
605
603
|
rfc: Optional[str] = None
|
|
@@ -621,6 +619,7 @@ class WebhookRequest(BaseModel):
|
|
|
621
619
|
|
|
622
620
|
class KYCValidationRequest(BaseRequest):
|
|
623
621
|
user_id: str
|
|
622
|
+
validation_type: KYCValidationType
|
|
624
623
|
force: bool = False
|
|
625
624
|
documents: list[KYCFile] = []
|
|
626
625
|
|
|
@@ -635,19 +634,32 @@ class UserListsRequest(BaseModel):
|
|
|
635
634
|
account_number: Optional[Union[Clabe, PaymentCardNumber]] = Field(
|
|
636
635
|
None, description='Account to review on lists'
|
|
637
636
|
)
|
|
638
|
-
names: Optional[
|
|
637
|
+
names: Optional[NonEmptyStr] = Field(
|
|
639
638
|
None, description='Names of the user to review on lists'
|
|
640
639
|
)
|
|
641
|
-
first_surname: Optional[
|
|
642
|
-
None, description='
|
|
640
|
+
first_surname: Optional[NonEmptyStr] = Field(
|
|
641
|
+
None, description='First surname of the user to review on lists'
|
|
643
642
|
)
|
|
644
|
-
second_surname: Optional[
|
|
645
|
-
None, description='
|
|
643
|
+
second_surname: Optional[NonEmptyStr] = Field(
|
|
644
|
+
None, description='Second surname of the user to review on lists'
|
|
646
645
|
)
|
|
647
646
|
|
|
648
647
|
@model_validator(mode='before')
|
|
649
648
|
@classmethod
|
|
650
649
|
def check_request(cls, values):
|
|
650
|
+
if (
|
|
651
|
+
values.get('first_surname') or values.get('second_surname')
|
|
652
|
+
) and not values.get('names'):
|
|
653
|
+
raise ValueError(
|
|
654
|
+
'names is required when first_surname or second_surname '
|
|
655
|
+
'is provided'
|
|
656
|
+
)
|
|
657
|
+
|
|
658
|
+
if values.get('names') and not values.get('first_surname'):
|
|
659
|
+
raise ValueError(
|
|
660
|
+
'first_surname is required when names is provided'
|
|
661
|
+
)
|
|
662
|
+
|
|
651
663
|
has_name = all(values.get(f) for f in ['names', 'first_surname'])
|
|
652
664
|
curp, account, rfc = (
|
|
653
665
|
values.get('curp'),
|
cuenca_validations/version.py
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
__version__ = '2.1.
|
|
1
|
+
__version__ = '2.1.4.dev1'
|
|
@@ -4,25 +4,25 @@ cuenca_validations/errors.py,sha256=OtM8EgiKqYdz9Hn66AbBO96orL1or7efkyt0vh0Zxbs,
|
|
|
4
4
|
cuenca_validations/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
5
5
|
cuenca_validations/typing.py,sha256=1QCu81IbVZZpyInjyeAuO-nF36gpT5Gi4o6V9PozuOU,204
|
|
6
6
|
cuenca_validations/validators.py,sha256=wzwLnJ4wHggZvqp3mearbFkzvDERGeTNvJkuofQnuMc,1484
|
|
7
|
-
cuenca_validations/version.py,sha256=
|
|
8
|
-
cuenca_validations/types/__init__.py,sha256=
|
|
7
|
+
cuenca_validations/version.py,sha256=hwzC3uALn41nafbMnIIuEeMkfrVVjUMNhsr-ZrGuDho,27
|
|
8
|
+
cuenca_validations/types/__init__.py,sha256=y1PckFtn4yL6xiDWc5UEI_9kioMTDeegV2CcaM8RJZs,4761
|
|
9
9
|
cuenca_validations/types/card.py,sha256=UGzz8NTFAverUmdUKAK1oGHnOnjSNTpIRUm93vKSSGY,1295
|
|
10
|
-
cuenca_validations/types/enums.py,sha256=
|
|
10
|
+
cuenca_validations/types/enums.py,sha256=0bpkp156ijHe_iKJmpzpHcDhHzxT_K2YfUR_jIppePY,18953
|
|
11
11
|
cuenca_validations/types/files.py,sha256=2CszbwF9ytXV9suFFwyDjYG4XxY8UhCjRw3HttVXXNw,269
|
|
12
|
-
cuenca_validations/types/general.py,sha256=
|
|
12
|
+
cuenca_validations/types/general.py,sha256=vJmQBD_Iv_hsxD8x3_Bip-NlYAiE2rmXSPQKj4kTtto,2621
|
|
13
13
|
cuenca_validations/types/helpers.py,sha256=6rHUhwoQ7jJZtGcW3LX-W5ZDl42PWE1RoBpGme7KCkk,610
|
|
14
14
|
cuenca_validations/types/identities.py,sha256=-TWRDRpmIaCI4nE4hVy1FQtQtlxuErtmEtzJW1FBzec,4956
|
|
15
15
|
cuenca_validations/types/morals.py,sha256=m8kAedevmwfSPTA9GYe03l7pkgipynwYgKfejyVtnuI,1813
|
|
16
16
|
cuenca_validations/types/queries.py,sha256=KCRx0sPzWDtDDbZysmFGVgANgfqil17EITWaG7tGQ-A,4700
|
|
17
|
-
cuenca_validations/types/requests.py,sha256=
|
|
17
|
+
cuenca_validations/types/requests.py,sha256=39jHgeYNeGPQ-YXKzkdThYgwSvP6Z12eEnLxqZgXAS8,21238
|
|
18
18
|
tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
19
19
|
tests/test_card.py,sha256=QAfRz7e11gWICPnFJZ2tiYgUsFV3C9TwzJXrDnDNXFw,1202
|
|
20
20
|
tests/test_errors.py,sha256=ixiIgEuBuzfsL5p4uCFdF32XqFRtTPF6EVhGJ0keOrI,930
|
|
21
21
|
tests/test_helpers.py,sha256=ubzpi1UXCryLQdgsT_Zm2IX-XE_4L0dnHnhLwH06xK8,748
|
|
22
22
|
tests/test_statement.py,sha256=IOE0rRRBgBZSJv_FLaETEyn5NzzXKMNTqgjv99GX-68,1436
|
|
23
|
-
tests/test_types.py,sha256=
|
|
24
|
-
cuenca_validations-2.1.
|
|
25
|
-
cuenca_validations-2.1.
|
|
26
|
-
cuenca_validations-2.1.
|
|
27
|
-
cuenca_validations-2.1.
|
|
28
|
-
cuenca_validations-2.1.
|
|
23
|
+
tests/test_types.py,sha256=K_YNFz0Kac3k8fJNeXuYGkL1hjXDQu084jCX6xEMEE4,19348
|
|
24
|
+
cuenca_validations-2.1.4.dev1.dist-info/LICENSE,sha256=wR76FmxBbfnQpwELkkE5iMF8sFIafEMgXLTE4N4WPTc,1063
|
|
25
|
+
cuenca_validations-2.1.4.dev1.dist-info/METADATA,sha256=CUH1Wslqkeq3A7ldwfiKdGwSIzz2I2ahiMJXYEbmw_M,1577
|
|
26
|
+
cuenca_validations-2.1.4.dev1.dist-info/WHEEL,sha256=52BFRY2Up02UkjOa29eZOS2VxUrpPORXg1pkohGGUS8,91
|
|
27
|
+
cuenca_validations-2.1.4.dev1.dist-info/top_level.txt,sha256=4233xdOs2HtuT-GFRjcDcwK0IwdwvWdczOtk0fPB6Gw,25
|
|
28
|
+
cuenca_validations-2.1.4.dev1.dist-info/RECORD,,
|
tests/test_types.py
CHANGED
|
@@ -583,9 +583,47 @@ def test_user_lists_request_valid_params(input_data):
|
|
|
583
583
|
UserListsRequest(**input_data)
|
|
584
584
|
|
|
585
585
|
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
586
|
+
@pytest.mark.parametrize(
|
|
587
|
+
'input_data,expected_error',
|
|
588
|
+
[
|
|
589
|
+
(
|
|
590
|
+
{'first_surname': 'Paramo'},
|
|
591
|
+
(
|
|
592
|
+
'names is required when first_surname or second_surname '
|
|
593
|
+
'is provided'
|
|
594
|
+
),
|
|
595
|
+
),
|
|
596
|
+
(
|
|
597
|
+
{'second_surname': 'Paramo'},
|
|
598
|
+
(
|
|
599
|
+
'names is required when first_surname or second_surname '
|
|
600
|
+
'is provided'
|
|
601
|
+
),
|
|
602
|
+
),
|
|
603
|
+
(
|
|
604
|
+
{'first_surname': 'Paramo', 'second_surname': 'Paramo'},
|
|
605
|
+
(
|
|
606
|
+
'names is required when first_surname or second_surname '
|
|
607
|
+
'is provided'
|
|
608
|
+
),
|
|
609
|
+
),
|
|
610
|
+
(
|
|
611
|
+
{'names': 'Juan'},
|
|
612
|
+
'first_surname is required when names is provided',
|
|
613
|
+
),
|
|
614
|
+
(
|
|
615
|
+
{'first_surname': 'Paramo', 'curp': 'GOCG650418HVZNML08'},
|
|
616
|
+
(
|
|
617
|
+
'names is required when first_surname or second_surname '
|
|
618
|
+
'is provided'
|
|
619
|
+
),
|
|
620
|
+
),
|
|
621
|
+
({}, 'At least 1 param is required'),
|
|
622
|
+
],
|
|
623
|
+
)
|
|
624
|
+
def test_user_lists_request_invalid_params(input_data, expected_error):
|
|
625
|
+
with pytest.raises(ValueError, match=expected_error):
|
|
626
|
+
UserListsRequest(**input_data)
|
|
589
627
|
|
|
590
628
|
|
|
591
629
|
class IntModel(BaseModel):
|
|
File without changes
|
{cuenca_validations-2.1.3.dev1.dist-info → cuenca_validations-2.1.4.dev1.dist-info}/top_level.txt
RENAMED
|
File without changes
|