Skip to content

Commit fe2eb3e

Browse files
gmorales96gabino
andauthored
Add response to UserListsValidation (#417)
* Add response field to UserListsValidation resource * Bump version to 2.1.1 * Add ppe_matches property to UserListsValidation class for filtering PPE-related persons * Bump version to 2.1.3 * Bum version to 2.1.2 --------- Co-authored-by: gabino <gabino@cuenca.com>
1 parent 4a0c538 commit fe2eb3e

File tree

4 files changed

+83
-1
lines changed

4 files changed

+83
-1
lines changed

cuenca/resources/user_lists_validation.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,18 @@ class UserListsValidation(Creatable, Retrievable):
1717
curp: Optional[Curp] = None
1818
account_number: Optional[str] = None
1919
status: Optional[VerificationStatus] = None
20+
response: Optional[dict] = None
21+
22+
@property
23+
def ppe_matches(self) -> list[dict]:
24+
if not self.response or 'persons' not in self.response:
25+
return []
26+
27+
return [
28+
person
29+
for person in self.response['persons']
30+
if person.get('lista') == 'PPE'
31+
]
2032

2133
@classmethod
2234
def create(

cuenca/version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
__version__ = '2.1.0'
1+
__version__ = '2.1.2'
22
CLIENT_VERSION = __version__
33
API_VERSION = '2020-03-19'
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
interactions:
2+
- request:
3+
body: '{"curp": "LOBR810330HTCPLM05", "account_number": null, "names": "Jos\u00e9
4+
Ram\u00f3n", "first_surname": "L\u00f3pez", "second_surname": "Beltr\u00e1n"}'
5+
headers:
6+
Authorization:
7+
- DUMMY
8+
Content-Length:
9+
- '152'
10+
Content-Type:
11+
- application/json
12+
User-Agent:
13+
- cuenca-python/2.1.0
14+
X-Cuenca-Api-Version:
15+
- '2020-03-19'
16+
method: POST
17+
uri: https://sandbox.cuenca.com/user_lists_validations
18+
response:
19+
body:
20+
string: "{\"id\":\"UVhK66y6cdS52zpxfs0y2feg\",\"created_at\":\"2025-03-05T23:34:16.818000\",\"platform_id\":\"PTvAEqw3XtSC2oRTfKg4FAGQ\",\"curp\":\"LOBR810330HTCPLM05\",\"names\":\"Jose
21+
Ramon\",\"first_surname\":\"Lopez\",\"second_surname\":\"Beltran\",\"status\":\"rejected\",\"lists\":[\"PPE\"],\"response\":{\"resumen\":{\"id_resultado\":\"1\",\"num_registros\":\"3\",\"num_conex_dia\":\"642\"},\"persons\":[{\"id_persona\":\"QEQ0281541\",\"peso1\":\"100\",\"peso2\":\"0\",\"nombre\":\"Jos\xE9
22+
Ram\xF3n\",\"paterno\":\"L\xF3pez\",\"materno\":\"Beltr\xE1n\",\"curp\":\"LOBR810330HTCPLM05\",\"rfc\":\"LOBR810330RB6\",\"fecha_nacimiento\":\"30/03/1981\",\"sexo\":\"Masculino\",\"lista\":\"PPE\",\"estatus\":\"Inactivo\",\"dependencia\":null,\"puesto\":\"OTRO\",\"area\":null,\"iddispo\":\"6\",\"idrel\":\"QEQ0281252\",\"parentesco\":\"HIJO\",\"razonsoc\":null,\"rfcmoral\":null,\"issste\":null,\"imss\":null,\"ingresos\":null,\"nombrecomp\":\"Jos\xE9
23+
Ram\xF3n L\xF3pez Beltr\xE1n\",\"apellidos\":\"L\xF3pez Beltr\xE1n\",\"entidad\":null,\"curp_ok\":\"1\",\"fecha_cargo_ini\":\"05/12/2018\",\"fecha_cargo_fin\":null,\"domicilio_a\":null,\"colonia\":null,\"cp\":null,\"ciudad\":null,\"email\":null,\"pais\":null,\"buscado_en\":null,\"ciudadania\":null,\"gafi\":null},{\"id_persona\":\"QEQ0328670\",\"peso1\":\"100\",\"peso2\":\"0\",\"nombre\":\"Jos\xE9
24+
Ram\xF3n\",\"paterno\":\"L\xF3pez\",\"materno\":\"Beltr\xE1n\",\"curp\":null,\"rfc\":null,\"fecha_nacimiento\":null,\"sexo\":\"Masculino\",\"lista\":\"VENC\",\"estatus\":\"3
25+
a\xF1os\",\"dependencia\":null,\"puesto\":\"OTRO\",\"area\":null,\"iddispo\":\"6\",\"idrel\":\"QEQ0304602\",\"parentesco\":\"PRIMO\",\"razonsoc\":null,\"rfcmoral\":null,\"issste\":null,\"imss\":null,\"ingresos\":null,\"nombrecomp\":\"Jos\xE9
26+
Ram\xF3n L\xF3pez Beltr\xE1n\",\"apellidos\":\"L\xF3pez Beltr\xE1n\",\"entidad\":null,\"curp_ok\":\"0\",\"fecha_cargo_ini\":\"30/04/2021\",\"fecha_cargo_fin\":null,\"domicilio_a\":null,\"colonia\":null,\"cp\":null,\"ciudad\":null,\"email\":null,\"pais\":null,\"buscado_en\":null,\"ciudadania\":null,\"gafi\":null},{\"id_persona\":\"QEQ0232657\",\"peso1\":\"100\",\"peso2\":\"0\",\"nombre\":\"Jos\xE9
27+
Ram\xF3n\",\"paterno\":\"L\xF3pez\",\"materno\":\"Beltr\xE1n\",\"curp\":\"LOBR810330HTCPLM05\",\"rfc\":\"LOBR810330RB6\",\"fecha_nacimiento\":\"30/03/1981\",\"sexo\":\"Masculino\",\"lista\":\"VENC\",\"estatus\":\"7
28+
a\xF1os\",\"dependencia\":null,\"puesto\":\"OTRO\",\"area\":null,\"iddispo\":\"6\",\"idrel\":\"QEQ0180416\",\"parentesco\":\"HIJO\",\"razonsoc\":null,\"rfcmoral\":null,\"issste\":null,\"imss\":null,\"ingresos\":null,\"nombrecomp\":\"Jos\xE9
29+
Ram\xF3n L\xF3pez Beltr\xE1n\",\"apellidos\":\"L\xF3pez Beltr\xE1n\",\"entidad\":null,\"curp_ok\":\"1\",\"fecha_cargo_ini\":\"18/05/2016\",\"fecha_cargo_fin\":null,\"domicilio_a\":null,\"colonia\":null,\"cp\":null,\"ciudad\":null,\"email\":null,\"pais\":null,\"buscado_en\":null,\"ciudadania\":null,\"gafi\":null}]},\"identity_id\":\"IDxIOd5v3-SSWQ39qDAOdRNg\"}"
30+
headers:
31+
Connection:
32+
- keep-alive
33+
Content-Length:
34+
- '2511'
35+
Content-Type:
36+
- application/json
37+
Date:
38+
- Fri, 07 Mar 2025 23:04:56 GMT
39+
X-Request-Time:
40+
- 'value: 0.621'
41+
x-amz-apigw-id:
42+
- HFA_zE-JCYcERmw=
43+
x-amzn-Remapped-Connection:
44+
- keep-alive
45+
x-amzn-Remapped-Content-Length:
46+
- '2511'
47+
x-amzn-Remapped-Date:
48+
- Fri, 07 Mar 2025 23:04:56 GMT
49+
x-amzn-Remapped-Server:
50+
- nginx/1.26.2
51+
x-amzn-RequestId:
52+
- 88c7aef2-2e7e-4f43-8632-568f339de896
53+
status:
54+
code: 201
55+
message: Created
56+
version: 1

tests/resources/test_user_lists_validation.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,24 @@
55
from cuenca.resources import UserListsValidation
66

77

8+
@pytest.mark.vcr
9+
def test_create_user_validation_with_response():
10+
user_validation = UserListsValidation.create(
11+
curp='LOBR810330HTCPLM05',
12+
names='José Ramón',
13+
first_surname='López',
14+
second_surname='Beltrán',
15+
)
16+
assert user_validation.status == VerificationStatus.rejected
17+
assert len(user_validation.ppe_matches) == 1
18+
assert user_validation.ppe_matches[0]['parentesco'] == 'HIJO'
19+
20+
821
@pytest.mark.vcr
922
def test_create_user_validation(user_lists_request):
1023
user_validation = UserListsValidation.create(**user_lists_request)
1124
assert user_validation.status == VerificationStatus.succeeded
25+
assert len(user_validation.ppe_matches) == 0
1226
assert user_validation.id
1327

1428

0 commit comments

Comments
 (0)