Skip to content

Commit 08ad08e

Browse files
author
gabino
committed
Refactor configuration and base URL handling
1 parent 438799c commit 08ad08e

File tree

8 files changed

+77
-334
lines changed

8 files changed

+77
-334
lines changed

cep/__init__.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
1-
__all__ = ['__version__', 'Config', 'Cuenta', 'Client', 'Transferencia']
1+
__all__ = ['__version__', 'Cuenta', 'Client', 'Transferencia', 'configure']
22

3-
from .client import Client
4-
from .config import Config
3+
from .client import Client, configure
54
from .cuenta import Cuenta
65
from .transferencia import Transferencia
76
from .version import __version__

cep/client.py

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,23 @@
1-
import requests
1+
from typing import ClassVar
22

3-
from .config import Config
3+
import requests
44

55
USER_AGENT = (
66
'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 '
77
'(KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36'
88
)
99

10+
BASE_URL = 'https://www.banxico.org.mx/cep'
11+
BASE_URL_BETA = 'https://www.banxico.org.mx/cep-beta'
12+
13+
14+
def configure(beta=False):
15+
Client.base_url = BASE_URL_BETA if beta else BASE_URL
16+
1017

1118
class Client:
19+
base_url: ClassVar[str] = BASE_URL
20+
1221
def __init__(self):
1322
self.session = requests.Session()
1423
self.session.headers['User-Agent'] = USER_AGENT
@@ -28,7 +37,7 @@ def post(self, endpoint: str, data: dict, **kwargs) -> bytes:
2837
def request(
2938
self, method: str, endpoint: str, data: dict, **kwargs
3039
) -> bytes:
31-
url = Config.BASE_URL + endpoint
40+
url = Client.base_url + endpoint
3241
response = self.session.request(method, url, data=data, **kwargs)
3342
if not response.ok:
3443
response.raise_for_status()

cep/config.py

Lines changed: 0 additions & 2 deletions
This file was deleted.

tests/cassettes/test_validar_transferencia_tipo_30.yaml

Lines changed: 15 additions & 81 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,4 @@
11
interactions:
2-
- request:
3-
body: tipoCriterio=T&captcha=c&tipoConsulta=1&fecha=08-11-2024&criterio=BiB2024110810162420780&emisor=37166&receptor=90723&cuenta=723969000011000077&monto=25208.26&receptorParticipante=0
4-
headers:
5-
Accept:
6-
- '*/*'
7-
Accept-Encoding:
8-
- gzip, deflate
9-
Connection:
10-
- keep-alive
11-
Content-Length:
12-
- '180'
13-
Content-Type:
14-
- application/x-www-form-urlencoded
15-
User-Agent:
16-
- Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML,
17-
like Gecko) Chrome/75.0.3770.142 Safari/537.36
18-
method: POST
19-
uri: http://www.banxico.org.mx/cep-beta/valida.do
20-
response:
21-
body:
22-
string: ''
23-
headers:
24-
Connection:
25-
- Keep-Alive
26-
Content-Length:
27-
- '0'
28-
Location:
29-
- https://www.banxico.org.mx/cep-beta/valida.do
30-
Server:
31-
- mxbanxico
32-
status:
33-
code: 307
34-
message: Temporary Redirect
352
- request:
363
body: tipoCriterio=T&captcha=c&tipoConsulta=1&fecha=08-11-2024&criterio=BiB2024110810162420780&emisor=37166&receptor=90723&cuenta=723969000011000077&monto=25208.26&receptorParticipante=0
374
headers:
@@ -79,15 +46,15 @@ interactions:
7946
Content-Type:
8047
- text/html; charset=UTF-8
8148
Date:
82-
- Thu, 13 Feb 2025 16:56:53 GMT
49+
- Fri, 14 Feb 2025 21:58:44 GMT
8350
Set-Cookie:
84-
- JSESSIONID=iNUAPe1Iq2o3gffKAH3Dhg3OuH756B84Z33S8bqXlJzmSzZKE1KF!384618570;
51+
- JSESSIONID=1MMGeKX6YSicIAP3dae9VkWi5ezcxT7LmZONC6lTEzh5COuNIwq4!384618570;
8552
path=/; secure; HttpOnly
86-
- Hex39764011=!YRVWycbprFNLpdNFNVyFw/oTv40kxCIcxxJ4bz10RwAYtX4xHN+o1rwPl6WFtC2biERdCI+fucZRaQ==;
87-
expires=Fri, 14-Feb-2025 00:56:53 GMT; path=/; Httponly
88-
- 'TS012f422b=01ab44a5a8efed9e7d6fe4f0ca91d7c2b2a6dae736a824fcab852e7ad98b7902ddc6274535e406b16da0dda19b2a161e77c410a31c5ebc32ab7fcfeb7b1926d0ee1fdf7e2e8ccad1ecfb1109da91d70e6df88a8586;
53+
- Hex39764011=!wbM5jqN9fgHwzlpFNVyFw/oTv40kxBAr9cDWi06t2wUbp1ec2P31a3/8CErSG1aJ6wNcQKzfilESMA==;
54+
expires=Sat, 15-Feb-2025 05:58:45 GMT; path=/; Httponly
55+
- 'TS012f422b=01ab44a5a8882aa2d8943a5c99b5e9ad9cfc785250ac219f45cbe05f8489438c906b8366519518f21aa7ab349d9668d59376b2676a38aed8ed9ae0d269f64136d41a1b7514db69ab41575ecb1cd153d8d159db839d;
8956
Path=/; '
90-
- TS604574e3027=083fd6a492ab20002ddbb4aefe052344301285793bf65b8b013e89994eb131891880f5c21aa0f6c008bb7a54591130008e63bea0c8affad38ce051a9029fb210c280a0aabffdd1791d6eb55ae12fea1d0f3488e845c06577526bfe317044c25b;
57+
- TS604574e3027=083fd6a492ab2000a9e5eb04711113a599571f4349c0eb0483d10a05d41b3949584c6c41b317ef8108b01271241130007dcc08dd2001e78c2b51541a2b7d8ed8c09c975feef844ad15a16e234059ea48df810ecfb63f7f8f5a922c3f232ff8cd;
9158
Path=/
9259
status:
9360
code: 200
@@ -102,43 +69,10 @@ interactions:
10269
Connection:
10370
- keep-alive
10471
Cookie:
105-
- Hex39764011=!YRVWycbprFNLpdNFNVyFw/oTv40kxCIcxxJ4bz10RwAYtX4xHN+o1rwPl6WFtC2biERdCI+fucZRaQ==;
106-
TS012f422b=01ab44a5a8efed9e7d6fe4f0ca91d7c2b2a6dae736a824fcab852e7ad98b7902ddc6274535e406b16da0dda19b2a161e77c410a31c5ebc32ab7fcfeb7b1926d0ee1fdf7e2e8ccad1ecfb1109da91d70e6df88a8586;
107-
TS604574e3027=083fd6a492ab20002ddbb4aefe052344301285793bf65b8b013e89994eb131891880f5c21aa0f6c008bb7a54591130008e63bea0c8affad38ce051a9029fb210c280a0aabffdd1791d6eb55ae12fea1d0f3488e845c06577526bfe317044c25b
108-
User-Agent:
109-
- Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML,
110-
like Gecko) Chrome/75.0.3770.142 Safari/537.36
111-
method: GET
112-
uri: http://www.banxico.org.mx/cep-beta/descarga.do?formato=XML
113-
response:
114-
body:
115-
string: ''
116-
headers:
117-
Connection:
118-
- Keep-Alive
119-
Content-Length:
120-
- '0'
121-
Location:
122-
- https://www.banxico.org.mx/cep-beta/descarga.do?formato=XML
123-
Server:
124-
- mxbanxico
125-
status:
126-
code: 307
127-
message: Temporary Redirect
128-
- request:
129-
body: null
130-
headers:
131-
Accept:
132-
- '*/*'
133-
Accept-Encoding:
134-
- gzip, deflate
135-
Connection:
136-
- keep-alive
137-
Cookie:
138-
- JSESSIONID=iNUAPe1Iq2o3gffKAH3Dhg3OuH756B84Z33S8bqXlJzmSzZKE1KF!384618570;
139-
Hex39764011=!YRVWycbprFNLpdNFNVyFw/oTv40kxCIcxxJ4bz10RwAYtX4xHN+o1rwPl6WFtC2biERdCI+fucZRaQ==;
140-
TS012f422b=01ab44a5a8efed9e7d6fe4f0ca91d7c2b2a6dae736a824fcab852e7ad98b7902ddc6274535e406b16da0dda19b2a161e77c410a31c5ebc32ab7fcfeb7b1926d0ee1fdf7e2e8ccad1ecfb1109da91d70e6df88a8586;
141-
TS604574e3027=083fd6a492ab20002ddbb4aefe052344301285793bf65b8b013e89994eb131891880f5c21aa0f6c008bb7a54591130008e63bea0c8affad38ce051a9029fb210c280a0aabffdd1791d6eb55ae12fea1d0f3488e845c06577526bfe317044c25b
72+
- JSESSIONID=1MMGeKX6YSicIAP3dae9VkWi5ezcxT7LmZONC6lTEzh5COuNIwq4!384618570;
73+
Hex39764011=!wbM5jqN9fgHwzlpFNVyFw/oTv40kxBAr9cDWi06t2wUbp1ec2P31a3/8CErSG1aJ6wNcQKzfilESMA==;
74+
TS012f422b=01ab44a5a8882aa2d8943a5c99b5e9ad9cfc785250ac219f45cbe05f8489438c906b8366519518f21aa7ab349d9668d59376b2676a38aed8ed9ae0d269f64136d41a1b7514db69ab41575ecb1cd153d8d159db839d;
75+
TS604574e3027=083fd6a492ab2000a9e5eb04711113a599571f4349c0eb0483d10a05d41b3949584c6c41b317ef8108b01271241130007dcc08dd2001e78c2b51541a2b7d8ed8c09c975feef844ad15a16e234059ea48df810ecfb63f7f8f5a922c3f232ff8cd
14276
User-Agent:
14377
- Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML,
14478
like Gecko) Chrome/75.0.3770.142 Safari/537.36
@@ -166,13 +100,13 @@ interactions:
166100
Content-Type:
167101
- application/xml
168102
Date:
169-
- Thu, 13 Feb 2025 16:56:53 GMT
103+
- Fri, 14 Feb 2025 21:58:45 GMT
170104
Set-Cookie:
171-
- Hex39764011=!re+M+lgNNXipE9FFNVyFw/oTv40kxN0nRiyETcXNUHYOB31uP5lqzMVrmlX9+aMxNEUAQ8+Db7YT3w==;
172-
expires=Fri, 14-Feb-2025 00:56:53 GMT; path=/; Httponly
173-
- 'TS012f422b=01ab44a5a827dd9eba85377c35ad440e837607f134a824fcab852e7ad98b7902ddc6274535e406b16da0dda19b2a161e77c410a31c5ebc32ab7fcfeb7b1926d0ee1fdf7e2e239f02772e9b9e34dc86f60f74736eaa;
105+
- Hex39764011=!fFgdtbFiRP9Se1pFNVyFw/oTv40kxOZcZrLKmnvecynE2DYvkzDyO+xwkddjOg2sD53QCjVLbU81/g==;
106+
expires=Sat, 15-Feb-2025 05:58:45 GMT; path=/; Httponly
107+
- 'TS012f422b=01ab44a5a8d03f1771dc2cae81266e84d92559e2d2ac219f45cbe05f8489438c906b8366519518f21aa7ab349d9668d59376b2676a38aed8ed9ae0d269f64136d41a1b75142a906b7e852e4ef7579274b1eb5f82d2;
174108
Path=/; '
175-
- TS604574e3027=083fd6a492ab20003247c401cc93db494f7af812147e0de74ce2741805dcf35eba8a090f17b9095a08d77070ad113000ed51ee4af8fcabf28ce051a9029fb210c280a0aabffdd1791d6eb55ae12fea1d0f3488e845c06577526bfe317044c25b;
109+
- TS604574e3027=083fd6a492ab20003cc5db84f200f1cc21f2af2acef3130ceaf040b3578a35cc386aa43063d00fcd0875cb82961130003fbf5c4c694551222b51541a2b7d8ed8c09c975feef844ad15a16e234059ea48df810ecfb63f7f8f5a922c3f232ff8cd;
176110
Path=/
177111
status:
178112
code: 200

tests/cassettes/test_validar_transferencia_tipo_31.yaml

Lines changed: 15 additions & 81 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,4 @@
11
interactions:
2-
- request:
3-
body: tipoCriterio=T&captcha=c&tipoConsulta=1&fecha=08-11-2024&criterio=6022135&emisor=40059&receptor=90723&cuenta=059180019535000152&monto=6593.15&receptorParticipante=1
4-
headers:
5-
Accept:
6-
- '*/*'
7-
Accept-Encoding:
8-
- gzip, deflate
9-
Connection:
10-
- keep-alive
11-
Content-Length:
12-
- '164'
13-
Content-Type:
14-
- application/x-www-form-urlencoded
15-
User-Agent:
16-
- Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML,
17-
like Gecko) Chrome/75.0.3770.142 Safari/537.36
18-
method: POST
19-
uri: http://www.banxico.org.mx/cep-beta/valida.do
20-
response:
21-
body:
22-
string: ''
23-
headers:
24-
Connection:
25-
- Keep-Alive
26-
Content-Length:
27-
- '0'
28-
Location:
29-
- https://www.banxico.org.mx/cep-beta/valida.do
30-
Server:
31-
- mxbanxico
32-
status:
33-
code: 307
34-
message: Temporary Redirect
352
- request:
363
body: tipoCriterio=T&captcha=c&tipoConsulta=1&fecha=08-11-2024&criterio=6022135&emisor=40059&receptor=90723&cuenta=059180019535000152&monto=6593.15&receptorParticipante=1
374
headers:
@@ -79,15 +46,15 @@ interactions:
7946
Content-Type:
8047
- text/html; charset=UTF-8
8148
Date:
82-
- Thu, 13 Feb 2025 16:56:53 GMT
49+
- Fri, 14 Feb 2025 21:59:00 GMT
8350
Set-Cookie:
84-
- JSESSIONID=Ce0APe9i7g84TBAe9veNQ5FA3ruUG-0mS0rc6SQfvDBAGAu3Rj0d!-2094109768;
51+
- JSESSIONID=DoAGeOJRPhKKyIDY4FJyoinGKVOETSn9utsCqaJRevgIS5BcpMSW!-2094109768;
8552
path=/; secure; HttpOnly
86-
- Hex39764011=!9iaT2V3u6icZuipFNVyFw/oTv40kxGMCgBvuP+ydKz/6SIhEzjPEVQAd66oYRfQjQR0Zh6dosBMsgQ==;
87-
expires=Fri, 14-Feb-2025 00:56:53 GMT; path=/; Httponly
88-
- 'TS012f422b=01ab44a5a8e820d9791ab9422eb3895ca2df58361addb4a7234d5ce9e8886499ed56977031593b42d0e2fc8958e0d510109dc275ab9c7cec585bfeff2dcc63b3d8ca5f9179a72a170456d00e8aca5e0863886cd627;
53+
- Hex39764011=!oWWwLDpDktdn1lNFNVyFw/oTv40kxPzJvCPvG5Vmp+i1mMA6AtD/OyYPxE2Kyn6PWl5v/MgTzD782g==;
54+
expires=Sat, 15-Feb-2025 05:59:00 GMT; path=/; Httponly
55+
- 'TS012f422b=01ab44a5a8495c062a55b3e499af09b08e0ff3831e99777a6c959aea38a57a571f1089001369f89ed79977725b59d79dcf399cdf037d3920d66ef7a7d7ed3dd08d3ad89c0037319c28746a583b7b81f2e1b374b355;
8956
Path=/; '
90-
- TS604574e3027=083fd6a492ab2000dca694b24603a5d7e38fa3e205f8a14c2f268000defb2d3f723dafc636dbf346087d3d3f2b113000711da46a32387c3d8ce051a9029fb2107ec0f8004c0d2e1e62039b46de431888f6f4543e5d193f44ed4cb2ce78ce1b38;
57+
- TS604574e3027=083fd6a492ab2000471c6fce7d099e39ea884d4b2cca8f4e5792295512c6eb3a19d8699158a02bf3083bbea2231130002ae4e25cec0394334bb66a9d7ee6622352669bf1d4bd0d45898fd4b77328400497d1efbe0bbd8ca03ec5938f30237c5b;
9158
Path=/
9259
status:
9360
code: 200
@@ -102,43 +69,10 @@ interactions:
10269
Connection:
10370
- keep-alive
10471
Cookie:
105-
- Hex39764011=!9iaT2V3u6icZuipFNVyFw/oTv40kxGMCgBvuP+ydKz/6SIhEzjPEVQAd66oYRfQjQR0Zh6dosBMsgQ==;
106-
TS012f422b=01ab44a5a8e820d9791ab9422eb3895ca2df58361addb4a7234d5ce9e8886499ed56977031593b42d0e2fc8958e0d510109dc275ab9c7cec585bfeff2dcc63b3d8ca5f9179a72a170456d00e8aca5e0863886cd627;
107-
TS604574e3027=083fd6a492ab2000dca694b24603a5d7e38fa3e205f8a14c2f268000defb2d3f723dafc636dbf346087d3d3f2b113000711da46a32387c3d8ce051a9029fb2107ec0f8004c0d2e1e62039b46de431888f6f4543e5d193f44ed4cb2ce78ce1b38
108-
User-Agent:
109-
- Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML,
110-
like Gecko) Chrome/75.0.3770.142 Safari/537.36
111-
method: GET
112-
uri: http://www.banxico.org.mx/cep-beta/descarga.do?formato=XML
113-
response:
114-
body:
115-
string: ''
116-
headers:
117-
Connection:
118-
- Keep-Alive
119-
Content-Length:
120-
- '0'
121-
Location:
122-
- https://www.banxico.org.mx/cep-beta/descarga.do?formato=XML
123-
Server:
124-
- mxbanxico
125-
status:
126-
code: 307
127-
message: Temporary Redirect
128-
- request:
129-
body: null
130-
headers:
131-
Accept:
132-
- '*/*'
133-
Accept-Encoding:
134-
- gzip, deflate
135-
Connection:
136-
- keep-alive
137-
Cookie:
138-
- JSESSIONID=Ce0APe9i7g84TBAe9veNQ5FA3ruUG-0mS0rc6SQfvDBAGAu3Rj0d!-2094109768;
139-
Hex39764011=!9iaT2V3u6icZuipFNVyFw/oTv40kxGMCgBvuP+ydKz/6SIhEzjPEVQAd66oYRfQjQR0Zh6dosBMsgQ==;
140-
TS012f422b=01ab44a5a8e820d9791ab9422eb3895ca2df58361addb4a7234d5ce9e8886499ed56977031593b42d0e2fc8958e0d510109dc275ab9c7cec585bfeff2dcc63b3d8ca5f9179a72a170456d00e8aca5e0863886cd627;
141-
TS604574e3027=083fd6a492ab2000dca694b24603a5d7e38fa3e205f8a14c2f268000defb2d3f723dafc636dbf346087d3d3f2b113000711da46a32387c3d8ce051a9029fb2107ec0f8004c0d2e1e62039b46de431888f6f4543e5d193f44ed4cb2ce78ce1b38
72+
- JSESSIONID=DoAGeOJRPhKKyIDY4FJyoinGKVOETSn9utsCqaJRevgIS5BcpMSW!-2094109768;
73+
Hex39764011=!oWWwLDpDktdn1lNFNVyFw/oTv40kxPzJvCPvG5Vmp+i1mMA6AtD/OyYPxE2Kyn6PWl5v/MgTzD782g==;
74+
TS012f422b=01ab44a5a8495c062a55b3e499af09b08e0ff3831e99777a6c959aea38a57a571f1089001369f89ed79977725b59d79dcf399cdf037d3920d66ef7a7d7ed3dd08d3ad89c0037319c28746a583b7b81f2e1b374b355;
75+
TS604574e3027=083fd6a492ab2000471c6fce7d099e39ea884d4b2cca8f4e5792295512c6eb3a19d8699158a02bf3083bbea2231130002ae4e25cec0394334bb66a9d7ee6622352669bf1d4bd0d45898fd4b77328400497d1efbe0bbd8ca03ec5938f30237c5b
14276
User-Agent:
14377
- Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML,
14478
like Gecko) Chrome/75.0.3770.142 Safari/537.36
@@ -164,13 +98,13 @@ interactions:
16498
Content-Type:
16599
- application/xml
166100
Date:
167-
- Thu, 13 Feb 2025 16:56:54 GMT
101+
- Fri, 14 Feb 2025 21:59:00 GMT
168102
Set-Cookie:
169-
- Hex39764011=!AWt3/gbmbo9qGchFNVyFw/oTv40kxM2SlRFvnbliuvraXd00Zjgp2cejZF0Y7LvVQPixchbcAcb0oQ==;
170-
expires=Fri, 14-Feb-2025 00:56:54 GMT; path=/; Httponly
171-
- 'TS012f422b=01ab44a5a88b3b635953b3b6ae1694b7006fa421afddb4a7234d5ce9e8886499ed56977031593b42d0e2fc8958e0d510109dc275ab9c7cec585bfeff2dcc63b3d8ca5f9179dbcb5616bc6d9a04e6d683ceb28bd16f;
103+
- Hex39764011=!8WNvwcBZObhZTf5FNVyFw/oTv40kxGvR9Lr7px2Xc1x7rAwf7eVfDM+2gDf5jLClk9JIuKxTKm6rtA==;
104+
expires=Sat, 15-Feb-2025 05:59:00 GMT; path=/; Httponly
105+
- 'TS012f422b=01ab44a5a8c9a1bf14e29a064065ade179adb1c4c299777a6c959aea38a57a571f1089001369f89ed79977725b59d79dcf399cdf037d3920d66ef7a7d7ed3dd08d3ad89c00a7bf985324a96f391e5fe05965ce1994;
172106
Path=/; '
173-
- TS604574e3027=083fd6a492ab2000326d8b5b8091e9629a431079b620376b8c31992294e5dace5b75a9662ee6fa4c08479569b6113000cd856a5ec810c07c02c6b2748cb3dbabdb8454e047d7b5144ba19a4506dcfdcad0d9cb6c2b6456ea06b13c9ace924e0d;
107+
- TS604574e3027=083fd6a492ab2000e8b2f9869b258dab68eeb6c881fac95014002739885bfe5e65a1ba431eb35dcd08eb2ae82b11300069d2f1bb7913ad324bb66a9d7ee6622352669bf1d4bd0d45898fd4b77328400497d1efbe0bbd8ca03ec5938f30237c5b;
174108
Path=/
175109
status:
176110
code: 200

0 commit comments

Comments
 (0)