cuenca-validations 2.1.8.dev1__py3-none-any.whl → 2.1.8.dev3__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.
@@ -7,6 +7,7 @@ __all__ = [
7
7
  'BalanceEntryQuery',
8
8
  'BankAccountValidationQuery',
9
9
  'BankAccountValidationRequest',
10
+ 'PostalCodeQuery',
10
11
  'BankAccountStatus',
11
12
  'BatchFileMetadata',
12
13
  'Beneficiary',
@@ -183,6 +184,7 @@ from .queries import (
183
184
  EventQuery,
184
185
  FileQuery,
185
186
  IdentityQuery,
187
+ PostalCodeQuery,
186
188
  QueryParams,
187
189
  SessionQuery,
188
190
  StatementQuery,
@@ -1,18 +1,11 @@
1
1
  import datetime as dt
2
- from typing import Annotated, Any, Optional
2
+ from typing import Annotated, Optional
3
3
 
4
- from pydantic import (
5
- BaseModel,
6
- ConfigDict,
7
- Field,
8
- SecretStr,
9
- StringConstraints,
10
- model_validator,
11
- )
4
+ from pydantic import BaseModel, ConfigDict, Field, SecretStr, StringConstraints
12
5
  from pydantic_extra_types.phone_numbers import PhoneNumber
13
6
 
14
- from .enums import Country, KYCFileType, State, VerificationStatus
15
- from .general import SerializableIPvAnyAddress
7
+ from .enums import KYCFileType, VerificationStatus
8
+ from .general import NonEmptyStr, SerializableIPvAnyAddress
16
9
 
17
10
  Password = Annotated[
18
11
  SecretStr,
@@ -45,41 +38,22 @@ Rfc = Annotated[
45
38
 
46
39
 
47
40
  class Address(BaseModel):
48
- street: Optional[str] = None
49
- ext_number: Optional[str] = None
50
- int_number: Optional[str] = None
51
- colonia: Optional[str] = None
52
- postal_code: Optional[str] = None
53
- state: Optional[State] = None
54
- country: Optional[Country] = None
55
- city: Optional[str] = None
56
- full_name: Optional[str] = None
41
+ street: NonEmptyStr
42
+ ext_number: NonEmptyStr
43
+ int_number: Optional[NonEmptyStr] = None
44
+ postal_code_id: NonEmptyStr
45
+
57
46
  model_config = ConfigDict(
58
47
  json_schema_extra={
59
48
  "example": {
60
49
  "street": "Reforma",
61
50
  "ext_number": "265",
62
51
  "int_number": "5",
63
- "colonia": "Cuauhtémoc",
64
- "postal_code": "06500",
65
- "state": "DF",
66
- "country": "MX",
67
- "city": "Cuauhtémoc",
52
+ "postal_code_id": "PC2ygq9j2bS9-9tsuVawzErA",
68
53
  }
69
54
  }
70
55
  )
71
56
 
72
- @model_validator(mode='before')
73
- @classmethod
74
- def full_name_complete(cls, values: dict[str, Any]) -> dict[str, Any]:
75
- if values.get('full_name'):
76
- return values
77
- if not values.get('street'):
78
- raise ValueError('required street')
79
- if not values.get('ext_number'):
80
- raise ValueError('required ext_number')
81
- return values
82
-
83
57
 
84
58
  class Beneficiary(BaseModel):
85
59
  name: str
@@ -423,7 +423,7 @@ class UserRequest(BaseModel):
423
423
  None, description='Only if you validated previously on your side'
424
424
  )
425
425
  profession: Optional[str] = None
426
- address: Optional[Address] = None
426
+ address: Address
427
427
  status: Optional[UserStatus] = Field(
428
428
  None,
429
429
  description='Status that the user will have when created. '
@@ -1 +1 @@
1
- __version__ = '2.1.8.dev1'
1
+ __version__ = '2.1.8.dev3'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cuenca_validations
3
- Version: 2.1.8.dev1
3
+ Version: 2.1.8.dev3
4
4
  Summary: Cuenca common validations
5
5
  Home-page: https://github.com/cuenca-mx/cuenca-validations
6
6
  Author: Cuenca
@@ -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=Y47Jxl-J4Lho25cNExZ2X-dcgS1p0plK6pTd8Tsj-Ik,27
8
- cuenca_validations/types/__init__.py,sha256=UNb7auBcD0qp-x9TX7TNNj8IKo7uaI7xHaf9PYmaziY,4765
7
+ cuenca_validations/version.py,sha256=OzYmMkTEqxUVVVveF9CeHfXo4ADt9KjUhlMm32idjWw,27
8
+ cuenca_validations/types/__init__.py,sha256=jSc37T7oFYbaJFQhES7AQSWnMsgJtc21oPXb39V9SNg,4809
9
9
  cuenca_validations/types/card.py,sha256=UGzz8NTFAverUmdUKAK1oGHnOnjSNTpIRUm93vKSSGY,1295
10
10
  cuenca_validations/types/enums.py,sha256=Vm9HGf83jPkEp8iZ-KGtKGWQGx5q-cIUuQj32y_QcvU,18997
11
11
  cuenca_validations/types/files.py,sha256=2CszbwF9ytXV9suFFwyDjYG4XxY8UhCjRw3HttVXXNw,269
12
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
- cuenca_validations/types/identities.py,sha256=-TWRDRpmIaCI4nE4hVy1FQtQtlxuErtmEtzJW1FBzec,4956
14
+ cuenca_validations/types/identities.py,sha256=OsKvSXXbVTkysjQQigxCLqLUwbPkNQ5nl0oScfNWODE,4200
15
15
  cuenca_validations/types/morals.py,sha256=m8kAedevmwfSPTA9GYe03l7pkgipynwYgKfejyVtnuI,1813
16
16
  cuenca_validations/types/queries.py,sha256=fDXm2LIpM4IrkaANTDTr3_tqqAK6nvs5-CGCTjjK9Oo,4759
17
- cuenca_validations/types/requests.py,sha256=6aEoMe7e-FPJs3_ouECV_Y6ZtyyJVyXfTed8wHtx_xw,21338
18
- cuenca_validations-2.1.8.dev1.dist-info/licenses/LICENSE,sha256=wR76FmxBbfnQpwELkkE5iMF8sFIafEMgXLTE4N4WPTc,1063
17
+ cuenca_validations/types/requests.py,sha256=_-1RH0N5zFHK_sLanbU6RlOI9_b1rNgxNii3jTWCLh4,21321
18
+ cuenca_validations-2.1.8.dev3.dist-info/licenses/LICENSE,sha256=wR76FmxBbfnQpwELkkE5iMF8sFIafEMgXLTE4N4WPTc,1063
19
19
  tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
20
20
  tests/test_card.py,sha256=QAfRz7e11gWICPnFJZ2tiYgUsFV3C9TwzJXrDnDNXFw,1202
21
21
  tests/test_errors.py,sha256=ixiIgEuBuzfsL5p4uCFdF32XqFRtTPF6EVhGJ0keOrI,930
22
22
  tests/test_helpers.py,sha256=ubzpi1UXCryLQdgsT_Zm2IX-XE_4L0dnHnhLwH06xK8,748
23
23
  tests/test_statement.py,sha256=IOE0rRRBgBZSJv_FLaETEyn5NzzXKMNTqgjv99GX-68,1436
24
- tests/test_types.py,sha256=K_YNFz0Kac3k8fJNeXuYGkL1hjXDQu084jCX6xEMEE4,19348
25
- cuenca_validations-2.1.8.dev1.dist-info/METADATA,sha256=5_-q-ovKXKdzB25IF-4aTgJyQunRQtpvE3eA7N_w_rc,1599
26
- cuenca_validations-2.1.8.dev1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
27
- cuenca_validations-2.1.8.dev1.dist-info/top_level.txt,sha256=4233xdOs2HtuT-GFRjcDcwK0IwdwvWdczOtk0fPB6Gw,25
28
- cuenca_validations-2.1.8.dev1.dist-info/RECORD,,
24
+ tests/test_types.py,sha256=peD5U1PIS7wZvdF1hTXNoStrYc3CkJbZnKPGJaXZz70,18656
25
+ cuenca_validations-2.1.8.dev3.dist-info/METADATA,sha256=PsDdfCmZ_QtrszJ8dz9c2vNbH12IgfzIbW8sBvQ5omQ,1599
26
+ cuenca_validations-2.1.8.dev3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
27
+ cuenca_validations-2.1.8.dev3.dist-info/top_level.txt,sha256=4233xdOs2HtuT-GFRjcDcwK0IwdwvWdczOtk0fPB6Gw,25
28
+ cuenca_validations-2.1.8.dev3.dist-info/RECORD,,
tests/test_types.py CHANGED
@@ -10,7 +10,6 @@ from pydantic import AfterValidator, BaseModel, SecretStr, ValidationError
10
10
  from pydantic.fields import FieldInfo
11
11
 
12
12
  from cuenca_validations.types import (
13
- Address,
14
13
  CardQuery,
15
14
  JSONEncoder,
16
15
  QueryParams,
@@ -21,7 +20,6 @@ from cuenca_validations.types import (
21
20
  get_state_name,
22
21
  )
23
22
  from cuenca_validations.types.enums import (
24
- Country,
25
23
  EcommerceIndicator,
26
24
  SessionType,
27
25
  State,
@@ -303,27 +301,6 @@ def test_saving_update_request():
303
301
  SavingUpdateRequest(**data)
304
302
 
305
303
 
306
- def test_address_validation():
307
- data = dict(
308
- full_name='Varsovia 36, Col Cuahutemoc',
309
- )
310
- assert Address(**data)
311
- with pytest.raises(ValueError) as v:
312
- Address(**dict())
313
- assert 'required street' in str(v)
314
- data = dict(street='somestreet')
315
- with pytest.raises(ValueError) as v:
316
- Address(**data)
317
- assert 'required ext_number' in str(v)
318
- data = dict(
319
- street='varsovia',
320
- ext_number='36',
321
- state=State.DF,
322
- country=Country.MX,
323
- )
324
- assert Address(**data)
325
-
326
-
327
304
  @freeze_time('2022-01-01')
328
305
  def test_user_request():
329
306
  request = dict(
@@ -337,12 +314,7 @@ def test_user_request():
337
314
  street='calle 1',
338
315
  ext_number='2',
339
316
  int_number='3',
340
- colonia='Juarez',
341
- postal_code='09900',
342
- state=State.DF.value,
343
- country=Country.MX,
344
- city='Obrera',
345
- full_name=None,
317
+ postal_code_id='PC2ygq9j2bS9-9tsuVawzErA',
346
318
  ),
347
319
  phone_verification_id='VE12345678',
348
320
  email_verification_id='VE0987654321',