cuenca-validations 2.1.10.dev4__tar.gz → 2.1.11.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.
- {cuenca_validations-2.1.10.dev4 → cuenca_validations-2.1.11.dev1}/PKG-INFO +1 -1
- {cuenca_validations-2.1.10.dev4 → cuenca_validations-2.1.11.dev1}/cuenca_validations/types/queries.py +0 -1
- {cuenca_validations-2.1.10.dev4 → cuenca_validations-2.1.11.dev1}/cuenca_validations/types/requests.py +23 -2
- cuenca_validations-2.1.11.dev1/cuenca_validations/version.py +1 -0
- {cuenca_validations-2.1.10.dev4 → cuenca_validations-2.1.11.dev1}/cuenca_validations.egg-info/PKG-INFO +1 -1
- {cuenca_validations-2.1.10.dev4 → cuenca_validations-2.1.11.dev1}/cuenca_validations.egg-info/SOURCES.txt +1 -0
- cuenca_validations-2.1.11.dev1/tests/test_requests.py +31 -0
- cuenca_validations-2.1.10.dev4/cuenca_validations/version.py +0 -1
- {cuenca_validations-2.1.10.dev4 → cuenca_validations-2.1.11.dev1}/LICENSE +0 -0
- {cuenca_validations-2.1.10.dev4 → cuenca_validations-2.1.11.dev1}/README.md +0 -0
- {cuenca_validations-2.1.10.dev4 → cuenca_validations-2.1.11.dev1}/cuenca_validations/__init__.py +0 -0
- {cuenca_validations-2.1.10.dev4 → cuenca_validations-2.1.11.dev1}/cuenca_validations/card_bins.py +0 -0
- {cuenca_validations-2.1.10.dev4 → cuenca_validations-2.1.11.dev1}/cuenca_validations/errors.py +0 -0
- {cuenca_validations-2.1.10.dev4 → cuenca_validations-2.1.11.dev1}/cuenca_validations/py.typed +0 -0
- {cuenca_validations-2.1.10.dev4 → cuenca_validations-2.1.11.dev1}/cuenca_validations/types/__init__.py +0 -0
- {cuenca_validations-2.1.10.dev4 → cuenca_validations-2.1.11.dev1}/cuenca_validations/types/card.py +0 -0
- {cuenca_validations-2.1.10.dev4 → cuenca_validations-2.1.11.dev1}/cuenca_validations/types/enums.py +0 -0
- {cuenca_validations-2.1.10.dev4 → cuenca_validations-2.1.11.dev1}/cuenca_validations/types/files.py +0 -0
- {cuenca_validations-2.1.10.dev4 → cuenca_validations-2.1.11.dev1}/cuenca_validations/types/general.py +0 -0
- {cuenca_validations-2.1.10.dev4 → cuenca_validations-2.1.11.dev1}/cuenca_validations/types/helpers.py +0 -0
- {cuenca_validations-2.1.10.dev4 → cuenca_validations-2.1.11.dev1}/cuenca_validations/types/identities.py +0 -0
- {cuenca_validations-2.1.10.dev4 → cuenca_validations-2.1.11.dev1}/cuenca_validations/types/morals.py +0 -0
- {cuenca_validations-2.1.10.dev4 → cuenca_validations-2.1.11.dev1}/cuenca_validations/typing.py +0 -0
- {cuenca_validations-2.1.10.dev4 → cuenca_validations-2.1.11.dev1}/cuenca_validations/validators.py +0 -0
- {cuenca_validations-2.1.10.dev4 → cuenca_validations-2.1.11.dev1}/cuenca_validations.egg-info/dependency_links.txt +0 -0
- {cuenca_validations-2.1.10.dev4 → cuenca_validations-2.1.11.dev1}/cuenca_validations.egg-info/requires.txt +0 -0
- {cuenca_validations-2.1.10.dev4 → cuenca_validations-2.1.11.dev1}/cuenca_validations.egg-info/top_level.txt +0 -0
- {cuenca_validations-2.1.10.dev4 → cuenca_validations-2.1.11.dev1}/setup.cfg +0 -0
- {cuenca_validations-2.1.10.dev4 → cuenca_validations-2.1.11.dev1}/setup.py +0 -0
- {cuenca_validations-2.1.10.dev4 → cuenca_validations-2.1.11.dev1}/tests/__init__.py +0 -0
- {cuenca_validations-2.1.10.dev4 → cuenca_validations-2.1.11.dev1}/tests/test_card.py +0 -0
- {cuenca_validations-2.1.10.dev4 → cuenca_validations-2.1.11.dev1}/tests/test_errors.py +0 -0
- {cuenca_validations-2.1.10.dev4 → cuenca_validations-2.1.11.dev1}/tests/test_helpers.py +0 -0
- {cuenca_validations-2.1.10.dev4 → cuenca_validations-2.1.11.dev1}/tests/test_statement.py +0 -0
- {cuenca_validations-2.1.10.dev4 → cuenca_validations-2.1.11.dev1}/tests/test_types.py +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import datetime as dt
|
|
2
|
-
from typing import Annotated, Optional, Union
|
|
2
|
+
from typing import Annotated, Any, Optional, Union
|
|
3
3
|
|
|
4
4
|
from clabe import Clabe
|
|
5
5
|
from pydantic import (
|
|
@@ -7,11 +7,13 @@ from pydantic import (
|
|
|
7
7
|
ConfigDict,
|
|
8
8
|
EmailStr,
|
|
9
9
|
Field,
|
|
10
|
+
GetCoreSchemaHandler,
|
|
10
11
|
StrictStr,
|
|
11
12
|
StringConstraints,
|
|
12
13
|
field_validator,
|
|
13
14
|
model_validator,
|
|
14
15
|
)
|
|
16
|
+
from pydantic_core import core_schema
|
|
15
17
|
from pydantic_extra_types.coordinate import Coordinate
|
|
16
18
|
|
|
17
19
|
from ..types.enums import (
|
|
@@ -82,6 +84,10 @@ from .morals import (
|
|
|
82
84
|
VulnerableActivityDetails,
|
|
83
85
|
)
|
|
84
86
|
|
|
87
|
+
CUENCA_FILE_URL = (
|
|
88
|
+
r'^https:\/\/(?:stage|sandbox|api)\.cuenca\.com\/files\/([a-zA-Z0-9\-]+)$'
|
|
89
|
+
)
|
|
90
|
+
|
|
85
91
|
|
|
86
92
|
class BaseRequest(BaseModel):
|
|
87
93
|
model_config = ConfigDict(extra="forbid")
|
|
@@ -403,10 +409,25 @@ class TOSRequest(BaseModel):
|
|
|
403
409
|
ip: Optional[SerializableIPvAnyAddress] = None
|
|
404
410
|
|
|
405
411
|
|
|
412
|
+
class FileCuencaUrl(str):
|
|
413
|
+
|
|
414
|
+
@property
|
|
415
|
+
def file_id(self) -> str:
|
|
416
|
+
return self.split('/')[-1]
|
|
417
|
+
|
|
418
|
+
@classmethod
|
|
419
|
+
def __get_pydantic_core_schema__(
|
|
420
|
+
cls, _source_type: Any, _handler: GetCoreSchemaHandler
|
|
421
|
+
) -> core_schema.CoreSchema:
|
|
422
|
+
return core_schema.no_info_after_validator_function(
|
|
423
|
+
cls, core_schema.str_schema(pattern=CUENCA_FILE_URL)
|
|
424
|
+
)
|
|
425
|
+
|
|
426
|
+
|
|
406
427
|
class UserTOSAgreementRequest(BaseModel):
|
|
407
428
|
tos_id: str
|
|
408
429
|
location: Coordinate
|
|
409
|
-
signature_image_url: Optional[
|
|
430
|
+
signature_image_url: Optional[FileCuencaUrl] = None
|
|
410
431
|
|
|
411
432
|
|
|
412
433
|
class UserRequest(BaseModel):
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = '2.1.11.dev1'
|
|
@@ -0,0 +1,31 @@
|
|
|
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/EFQL87ohvoRp-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 == 'EFQL87ohvoRp-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)
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = '2.1.10.dev4'
|
|
File without changes
|
|
File without changes
|
{cuenca_validations-2.1.10.dev4 → cuenca_validations-2.1.11.dev1}/cuenca_validations/__init__.py
RENAMED
|
File without changes
|
{cuenca_validations-2.1.10.dev4 → cuenca_validations-2.1.11.dev1}/cuenca_validations/card_bins.py
RENAMED
|
File without changes
|
{cuenca_validations-2.1.10.dev4 → cuenca_validations-2.1.11.dev1}/cuenca_validations/errors.py
RENAMED
|
File without changes
|
{cuenca_validations-2.1.10.dev4 → cuenca_validations-2.1.11.dev1}/cuenca_validations/py.typed
RENAMED
|
File without changes
|
|
File without changes
|
{cuenca_validations-2.1.10.dev4 → cuenca_validations-2.1.11.dev1}/cuenca_validations/types/card.py
RENAMED
|
File without changes
|
{cuenca_validations-2.1.10.dev4 → cuenca_validations-2.1.11.dev1}/cuenca_validations/types/enums.py
RENAMED
|
File without changes
|
{cuenca_validations-2.1.10.dev4 → cuenca_validations-2.1.11.dev1}/cuenca_validations/types/files.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cuenca_validations-2.1.10.dev4 → cuenca_validations-2.1.11.dev1}/cuenca_validations/types/morals.py
RENAMED
|
File without changes
|
{cuenca_validations-2.1.10.dev4 → cuenca_validations-2.1.11.dev1}/cuenca_validations/typing.py
RENAMED
|
File without changes
|
{cuenca_validations-2.1.10.dev4 → cuenca_validations-2.1.11.dev1}/cuenca_validations/validators.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|