Files
service_manager/pytest_docker_last.txt

241 KiB
Raw Permalink Blame History

============================= test session starts ==============================
platform linux -- Python 3.11.14, pytest-7.4.3, pluggy-1.6.0
rootdir: /app
configfile: pytest.ini
testpaths: tests, tests/unit, tests/integration
plugins: anyio-3.7.1, cov-4.1.0, Faker-20.1.0, asyncio-0.21.1
asyncio: mode=Mode.AUTO
collected 144 items
 
tests/integration/test_auth_integration.py FFFFF.F.EEEE..E.E [ 11%]
tests/integration/test_multitenant_integration.py EEEEEEEEE.E [ 19%]
tests/integration/test_setup_verification.py ....E..F [ 25%]
tests/integration/test_tickets_integration.py EEEEEEEEEEEEEEEE [ 36%]
tests/unit/test_audit_service.py ....... [ 40%]
tests/unit/test_basic.py .....s [ 45%]
tests/unit/test_config.py .................. [ 57%]
tests/unit/test_health.py .... [ 60%]
tests/unit/test_middleware.py .............. [ 70%]
tests/unit/test_schemas.py ....................... [ 86%]
tests/unit/test_security.py .................... [100%]
 
==================================== ERRORS ====================================
______ ERROR at setup of TestRefreshToken.test_refresh_token_after_logout ______
/usr/local/lib/python3.11/site-packages/pytest_asyncio/plugin.py:326: in _async_fixture_wrapper
return event_loop.run_until_complete(setup())
/usr/local/lib/python3.11/asyncio/base_events.py:654: in run_until_complete
return future.result()
/usr/local/lib/python3.11/site-packages/pytest_asyncio/plugin.py:323: in setup
res = await func(**_add_kwargs(func, kwargs, event_loop, request))
tests/integration/conftest.py:230: in admin_token
assert response.status_code == 200
E assert 429 == 200
E + where 429 = <Response [429 Too Many Requests]>.status_code
---------------------------- Captured stdout setup -----------------------------
{"event": "{\"method\": \"POST\", \"url\": \"http://test/v1/auth/login\", \"correlation_id\": \"a0bff989-3e78-4b59-92c4-2b2632363ef6\", \"user_agent\": \"python-httpx/0.25.2\", \"remote_addr\": \"127.0.0.1\", \"event\": \"Request iniciada\", \"logger\": \"app.main\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:43:51.196402Z\"}"}
{"event": "{\"email\": \"admin@test.com\", \"tenant_slug\": \"test-company\", \"event\": \"Login attempt\", \"logger\": \"app.api.v1.endpoints.auth\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:43:51.197928Z\"}"}
{"event": "{\"method\": \"POST\", \"url\": \"http://test/v1/auth/login\", \"status_code\": 429, \"duration\": \"0.003s\", \"correlation_id\": \"a0bff989-3e78-4b59-92c4-2b2632363ef6\", \"event\": \"Request completada\", \"logger\": \"app.main\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:43:51.199435Z\"}"}
{"event": "HTTP Request: POST http://test/v1/auth/login \"HTTP/1.1 429 Too Many Requests\""}
------------------------------ Captured log setup ------------------------------
INFO app.main:main.py:102 {"method": "POST", "url": "http://test/v1/auth/login", "correlation_id": "a0bff989-3e78-4b59-92c4-2b2632363ef6", "user_agent": "python-httpx/0.25.2", "remote_addr": "127.0.0.1", "event": "Request iniciada", "logger": "app.main", "level": "info", "timestamp": "2026-02-23T16:43:51.196402Z"}
INFO app.api.v1.endpoints.auth:auth.py:59 {"email": "admin@test.com", "tenant_slug": "test-company", "event": "Login attempt", "logger": "app.api.v1.endpoints.auth", "level": "info", "timestamp": "2026-02-23T16:43:51.197928Z"}
INFO app.main:main.py:116 {"method": "POST", "url": "http://test/v1/auth/login", "status_code": 429, "duration": "0.003s", "correlation_id": "a0bff989-3e78-4b59-92c4-2b2632363ef6", "event": "Request completada", "logger": "app.main", "level": "info", "timestamp": "2026-02-23T16:43:51.199435Z"}
INFO httpx:_client.py:1729 HTTP Request: POST http://test/v1/auth/login "HTTP/1.1 429 Too Many Requests"
___ ERROR at setup of TestAuthorization.test_admin_can_access_admin_endpoint ___
/usr/local/lib/python3.11/site-packages/pytest_asyncio/plugin.py:326: in _async_fixture_wrapper
return event_loop.run_until_complete(setup())
/usr/local/lib/python3.11/asyncio/base_events.py:654: in run_until_complete
return future.result()
/usr/local/lib/python3.11/site-packages/pytest_asyncio/plugin.py:323: in setup
res = await func(**_add_kwargs(func, kwargs, event_loop, request))
tests/integration/conftest.py:230: in admin_token
assert response.status_code == 200
E assert 429 == 200
E + where 429 = <Response [429 Too Many Requests]>.status_code
---------------------------- Captured stdout setup -----------------------------
{"event": "{\"method\": \"POST\", \"url\": \"http://test/v1/auth/login\", \"correlation_id\": \"83901a7d-ed3a-407e-a848-edfe9d732acc\", \"user_agent\": \"python-httpx/0.25.2\", \"remote_addr\": \"127.0.0.1\", \"event\": \"Request iniciada\", \"logger\": \"app.main\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:43:51.833637Z\"}"}
{"event": "{\"email\": \"admin@test.com\", \"tenant_slug\": \"test-company\", \"event\": \"Login attempt\", \"logger\": \"app.api.v1.endpoints.auth\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:43:51.835598Z\"}"}
{"event": "{\"method\": \"POST\", \"url\": \"http://test/v1/auth/login\", \"status_code\": 429, \"duration\": \"0.008s\", \"correlation_id\": \"83901a7d-ed3a-407e-a848-edfe9d732acc\", \"event\": \"Request completada\", \"logger\": \"app.main\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:43:51.841963Z\"}"}
{"event": "HTTP Request: POST http://test/v1/auth/login \"HTTP/1.1 429 Too Many Requests\""}
------------------------------ Captured log setup ------------------------------
INFO app.main:main.py:102 {"method": "POST", "url": "http://test/v1/auth/login", "correlation_id": "83901a7d-ed3a-407e-a848-edfe9d732acc", "user_agent": "python-httpx/0.25.2", "remote_addr": "127.0.0.1", "event": "Request iniciada", "logger": "app.main", "level": "info", "timestamp": "2026-02-23T16:43:51.833637Z"}
INFO app.api.v1.endpoints.auth:auth.py:59 {"email": "admin@test.com", "tenant_slug": "test-company", "event": "Login attempt", "logger": "app.api.v1.endpoints.auth", "level": "info", "timestamp": "2026-02-23T16:43:51.835598Z"}
INFO app.main:main.py:116 {"method": "POST", "url": "http://test/v1/auth/login", "status_code": 429, "duration": "0.008s", "correlation_id": "83901a7d-ed3a-407e-a848-edfe9d732acc", "event": "Request completada", "logger": "app.main", "level": "info", "timestamp": "2026-02-23T16:43:51.841963Z"}
INFO httpx:_client.py:1729 HTTP Request: POST http://test/v1/auth/login "HTTP/1.1 429 Too Many Requests"
_ ERROR at setup of TestAuthorization.test_agent_cannot_access_admin_endpoint __
/usr/local/lib/python3.11/site-packages/pytest_asyncio/plugin.py:326: in _async_fixture_wrapper
return event_loop.run_until_complete(setup())
/usr/local/lib/python3.11/asyncio/base_events.py:654: in run_until_complete
return future.result()
/usr/local/lib/python3.11/site-packages/pytest_asyncio/plugin.py:323: in setup
res = await func(**_add_kwargs(func, kwargs, event_loop, request))
tests/integration/conftest.py:244: in agent_token
assert response.status_code == 200
E assert 429 == 200
E + where 429 = <Response [429 Too Many Requests]>.status_code
---------------------------- Captured stdout setup -----------------------------
{"event": "{\"method\": \"POST\", \"url\": \"http://test/v1/auth/login\", \"correlation_id\": \"cf725bd4-c863-4313-9fb4-1ded7346a3f4\", \"user_agent\": \"python-httpx/0.25.2\", \"remote_addr\": \"127.0.0.1\", \"event\": \"Request iniciada\", \"logger\": \"app.main\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:43:52.465952Z\"}"}
{"event": "{\"email\": \"agent@test.com\", \"tenant_slug\": \"test-company\", \"event\": \"Login attempt\", \"logger\": \"app.api.v1.endpoints.auth\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:43:52.467389Z\"}"}
{"event": "{\"method\": \"POST\", \"url\": \"http://test/v1/auth/login\", \"status_code\": 429, \"duration\": \"0.003s\", \"correlation_id\": \"cf725bd4-c863-4313-9fb4-1ded7346a3f4\", \"event\": \"Request completada\", \"logger\": \"app.main\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:43:52.468491Z\"}"}
{"event": "HTTP Request: POST http://test/v1/auth/login \"HTTP/1.1 429 Too Many Requests\""}
------------------------------ Captured log setup ------------------------------
INFO app.main:main.py:102 {"method": "POST", "url": "http://test/v1/auth/login", "correlation_id": "cf725bd4-c863-4313-9fb4-1ded7346a3f4", "user_agent": "python-httpx/0.25.2", "remote_addr": "127.0.0.1", "event": "Request iniciada", "logger": "app.main", "level": "info", "timestamp": "2026-02-23T16:43:52.465952Z"}
INFO app.api.v1.endpoints.auth:auth.py:59 {"email": "agent@test.com", "tenant_slug": "test-company", "event": "Login attempt", "logger": "app.api.v1.endpoints.auth", "level": "info", "timestamp": "2026-02-23T16:43:52.467389Z"}
INFO app.main:main.py:116 {"method": "POST", "url": "http://test/v1/auth/login", "status_code": 429, "duration": "0.003s", "correlation_id": "cf725bd4-c863-4313-9fb4-1ded7346a3f4", "event": "Request completada", "logger": "app.main", "level": "info", "timestamp": "2026-02-23T16:43:52.468491Z"}
INFO httpx:_client.py:1729 HTTP Request: POST http://test/v1/auth/login "HTTP/1.1 429 Too Many Requests"
_ ERROR at setup of TestAuthorization.test_client_cannot_access_admin_endpoint _
/usr/local/lib/python3.11/site-packages/pytest_asyncio/plugin.py:326: in _async_fixture_wrapper
return event_loop.run_until_complete(setup())
/usr/local/lib/python3.11/asyncio/base_events.py:654: in run_until_complete
return future.result()
/usr/local/lib/python3.11/site-packages/pytest_asyncio/plugin.py:323: in setup
res = await func(**_add_kwargs(func, kwargs, event_loop, request))
tests/integration/conftest.py:258: in client_token
assert response.status_code == 200
E assert 429 == 200
E + where 429 = <Response [429 Too Many Requests]>.status_code
---------------------------- Captured stdout setup -----------------------------
{"event": "{\"method\": \"POST\", \"url\": \"http://test/v1/auth/login\", \"correlation_id\": \"a319a821-d798-42dd-a7cf-e65b31df129a\", \"user_agent\": \"python-httpx/0.25.2\", \"remote_addr\": \"127.0.0.1\", \"event\": \"Request iniciada\", \"logger\": \"app.main\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:43:53.182145Z\"}"}
{"event": "{\"email\": \"client@test.com\", \"tenant_slug\": \"test-company\", \"event\": \"Login attempt\", \"logger\": \"app.api.v1.endpoints.auth\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:43:53.183657Z\"}"}
{"event": "{\"method\": \"POST\", \"url\": \"http://test/v1/auth/login\", \"status_code\": 429, \"duration\": \"0.002s\", \"correlation_id\": \"a319a821-d798-42dd-a7cf-e65b31df129a\", \"event\": \"Request completada\", \"logger\": \"app.main\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:43:53.184528Z\"}"}
{"event": "HTTP Request: POST http://test/v1/auth/login \"HTTP/1.1 429 Too Many Requests\""}
------------------------------ Captured log setup ------------------------------
INFO app.main:main.py:102 {"method": "POST", "url": "http://test/v1/auth/login", "correlation_id": "a319a821-d798-42dd-a7cf-e65b31df129a", "user_agent": "python-httpx/0.25.2", "remote_addr": "127.0.0.1", "event": "Request iniciada", "logger": "app.main", "level": "info", "timestamp": "2026-02-23T16:43:53.182145Z"}
INFO app.api.v1.endpoints.auth:auth.py:59 {"email": "client@test.com", "tenant_slug": "test-company", "event": "Login attempt", "logger": "app.api.v1.endpoints.auth", "level": "info", "timestamp": "2026-02-23T16:43:53.183657Z"}
INFO app.main:main.py:116 {"method": "POST", "url": "http://test/v1/auth/login", "status_code": 429, "duration": "0.002s", "correlation_id": "a319a821-d798-42dd-a7cf-e65b31df129a", "event": "Request completada", "logger": "app.main", "level": "info", "timestamp": "2026-02-23T16:43:53.184528Z"}
INFO httpx:_client.py:1729 HTTP Request: POST http://test/v1/auth/login "HTTP/1.1 429 Too Many Requests"
_______ ERROR at setup of TestUserProfile.test_get_current_user_profile ________
/usr/local/lib/python3.11/site-packages/pytest_asyncio/plugin.py:326: in _async_fixture_wrapper
return event_loop.run_until_complete(setup())
/usr/local/lib/python3.11/asyncio/base_events.py:654: in run_until_complete
return future.result()
/usr/local/lib/python3.11/site-packages/pytest_asyncio/plugin.py:323: in setup
res = await func(**_add_kwargs(func, kwargs, event_loop, request))
tests/integration/conftest.py:230: in admin_token
assert response.status_code == 200
E assert 429 == 200
E + where 429 = <Response [429 Too Many Requests]>.status_code
---------------------------- Captured stdout setup -----------------------------
{"event": "{\"method\": \"POST\", \"url\": \"http://test/v1/auth/login\", \"correlation_id\": \"cac02bf0-86d2-4d3b-a414-f4f1c34b8ec3\", \"user_agent\": \"python-httpx/0.25.2\", \"remote_addr\": \"127.0.0.1\", \"event\": \"Request iniciada\", \"logger\": \"app.main\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:43:55.846167Z\"}"}
{"event": "{\"email\": \"admin@test.com\", \"tenant_slug\": \"test-company\", \"event\": \"Login attempt\", \"logger\": \"app.api.v1.endpoints.auth\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:43:55.848523Z\"}"}
{"event": "{\"method\": \"POST\", \"url\": \"http://test/v1/auth/login\", \"status_code\": 429, \"duration\": \"0.007s\", \"correlation_id\": \"cac02bf0-86d2-4d3b-a414-f4f1c34b8ec3\", \"event\": \"Request completada\", \"logger\": \"app.main\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:43:55.852721Z\"}"}
{"event": "HTTP Request: POST http://test/v1/auth/login \"HTTP/1.1 429 Too Many Requests\""}
------------------------------ Captured log setup ------------------------------
INFO app.main:main.py:102 {"method": "POST", "url": "http://test/v1/auth/login", "correlation_id": "cac02bf0-86d2-4d3b-a414-f4f1c34b8ec3", "user_agent": "python-httpx/0.25.2", "remote_addr": "127.0.0.1", "event": "Request iniciada", "logger": "app.main", "level": "info", "timestamp": "2026-02-23T16:43:55.846167Z"}
INFO app.api.v1.endpoints.auth:auth.py:59 {"email": "admin@test.com", "tenant_slug": "test-company", "event": "Login attempt", "logger": "app.api.v1.endpoints.auth", "level": "info", "timestamp": "2026-02-23T16:43:55.848523Z"}
INFO app.main:main.py:116 {"method": "POST", "url": "http://test/v1/auth/login", "status_code": 429, "duration": "0.007s", "correlation_id": "cac02bf0-86d2-4d3b-a414-f4f1c34b8ec3", "event": "Request completada", "logger": "app.main", "level": "info", "timestamp": "2026-02-23T16:43:55.852721Z"}
INFO httpx:_client.py:1729 HTTP Request: POST http://test/v1/auth/login "HTTP/1.1 429 Too Many Requests"
_ ERROR at setup of TestPasswordSecurity.test_password_not_exposed_in_response _
/usr/local/lib/python3.11/site-packages/pytest_asyncio/plugin.py:326: in _async_fixture_wrapper
return event_loop.run_until_complete(setup())
/usr/local/lib/python3.11/asyncio/base_events.py:654: in run_until_complete
return future.result()
/usr/local/lib/python3.11/site-packages/pytest_asyncio/plugin.py:323: in setup
res = await func(**_add_kwargs(func, kwargs, event_loop, request))
tests/integration/conftest.py:230: in admin_token
assert response.status_code == 200
E assert 429 == 200
E + where 429 = <Response [429 Too Many Requests]>.status_code
---------------------------- Captured stdout setup -----------------------------
{"event": "{\"method\": \"POST\", \"url\": \"http://test/v1/auth/login\", \"correlation_id\": \"408b1ff4-7ddf-41ea-95f0-44f835973535\", \"user_agent\": \"python-httpx/0.25.2\", \"remote_addr\": \"127.0.0.1\", \"event\": \"Request iniciada\", \"logger\": \"app.main\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:43:57.148299Z\"}"}
{"event": "{\"email\": \"admin@test.com\", \"tenant_slug\": \"test-company\", \"event\": \"Login attempt\", \"logger\": \"app.api.v1.endpoints.auth\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:43:57.150926Z\"}"}
{"event": "{\"method\": \"POST\", \"url\": \"http://test/v1/auth/login\", \"status_code\": 429, \"duration\": \"0.004s\", \"correlation_id\": \"408b1ff4-7ddf-41ea-95f0-44f835973535\", \"event\": \"Request completada\", \"logger\": \"app.main\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:43:57.152284Z\"}"}
{"event": "HTTP Request: POST http://test/v1/auth/login \"HTTP/1.1 429 Too Many Requests\""}
------------------------------ Captured log setup ------------------------------
INFO app.main:main.py:102 {"method": "POST", "url": "http://test/v1/auth/login", "correlation_id": "408b1ff4-7ddf-41ea-95f0-44f835973535", "user_agent": "python-httpx/0.25.2", "remote_addr": "127.0.0.1", "event": "Request iniciada", "logger": "app.main", "level": "info", "timestamp": "2026-02-23T16:43:57.148299Z"}
INFO app.api.v1.endpoints.auth:auth.py:59 {"email": "admin@test.com", "tenant_slug": "test-company", "event": "Login attempt", "logger": "app.api.v1.endpoints.auth", "level": "info", "timestamp": "2026-02-23T16:43:57.150926Z"}
INFO app.main:main.py:116 {"method": "POST", "url": "http://test/v1/auth/login", "status_code": 429, "duration": "0.004s", "correlation_id": "408b1ff4-7ddf-41ea-95f0-44f835973535", "event": "Request completada", "logger": "app.main", "level": "info", "timestamp": "2026-02-23T16:43:57.152284Z"}
INFO httpx:_client.py:1729 HTTP Request: POST http://test/v1/auth/login "HTTP/1.1 429 Too Many Requests"
_ ERROR at setup of TestTenantIsolation.test_user_cannot_see_other_tenant_tickets _
/usr/local/lib/python3.11/site-packages/pytest_asyncio/plugin.py:326: in _async_fixture_wrapper
return event_loop.run_until_complete(setup())
/usr/local/lib/python3.11/asyncio/base_events.py:654: in run_until_complete
return future.result()
/usr/local/lib/python3.11/site-packages/pytest_asyncio/plugin.py:323: in setup
res = await func(**_add_kwargs(func, kwargs, event_loop, request))
tests/integration/conftest.py:230: in admin_token
assert response.status_code == 200
E assert 429 == 200
E + where 429 = <Response [429 Too Many Requests]>.status_code
---------------------------- Captured stdout setup -----------------------------
{"event": "{\"method\": \"POST\", \"url\": \"http://test/v1/auth/login\", \"correlation_id\": \"c303c2d5-37b1-495a-a327-d717f06a1a86\", \"user_agent\": \"python-httpx/0.25.2\", \"remote_addr\": \"127.0.0.1\", \"event\": \"Request iniciada\", \"logger\": \"app.main\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:43:57.994636Z\"}"}
{"event": "{\"email\": \"admin@test.com\", \"tenant_slug\": \"test-company\", \"event\": \"Login attempt\", \"logger\": \"app.api.v1.endpoints.auth\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:43:57.996314Z\"}"}
{"event": "{\"method\": \"POST\", \"url\": \"http://test/v1/auth/login\", \"status_code\": 429, \"duration\": \"0.004s\", \"correlation_id\": \"c303c2d5-37b1-495a-a327-d717f06a1a86\", \"event\": \"Request completada\", \"logger\": \"app.main\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:43:57.998313Z\"}"}
{"event": "HTTP Request: POST http://test/v1/auth/login \"HTTP/1.1 429 Too Many Requests\""}
------------------------------ Captured log setup ------------------------------
INFO app.main:main.py:102 {"method": "POST", "url": "http://test/v1/auth/login", "correlation_id": "c303c2d5-37b1-495a-a327-d717f06a1a86", "user_agent": "python-httpx/0.25.2", "remote_addr": "127.0.0.1", "event": "Request iniciada", "logger": "app.main", "level": "info", "timestamp": "2026-02-23T16:43:57.994636Z"}
INFO app.api.v1.endpoints.auth:auth.py:59 {"email": "admin@test.com", "tenant_slug": "test-company", "event": "Login attempt", "logger": "app.api.v1.endpoints.auth", "level": "info", "timestamp": "2026-02-23T16:43:57.996314Z"}
INFO app.main:main.py:116 {"method": "POST", "url": "http://test/v1/auth/login", "status_code": 429, "duration": "0.004s", "correlation_id": "c303c2d5-37b1-495a-a327-d717f06a1a86", "event": "Request completada", "logger": "app.main", "level": "info", "timestamp": "2026-02-23T16:43:57.998313Z"}
INFO httpx:_client.py:1729 HTTP Request: POST http://test/v1/auth/login "HTTP/1.1 429 Too Many Requests"
_ ERROR at setup of TestTenantIsolation.test_user_cannot_access_other_tenant_ticket_directly _
/usr/local/lib/python3.11/site-packages/pytest_asyncio/plugin.py:326: in _async_fixture_wrapper
return event_loop.run_until_complete(setup())
/usr/local/lib/python3.11/asyncio/base_events.py:654: in run_until_complete
return future.result()
/usr/local/lib/python3.11/site-packages/pytest_asyncio/plugin.py:323: in setup
res = await func(**_add_kwargs(func, kwargs, event_loop, request))
tests/integration/conftest.py:230: in admin_token
assert response.status_code == 200
E assert 429 == 200
E + where 429 = <Response [429 Too Many Requests]>.status_code
---------------------------- Captured stdout setup -----------------------------
{"event": "{\"method\": \"POST\", \"url\": \"http://test/v1/auth/login\", \"correlation_id\": \"d8fb612c-a0f1-4fe3-beb9-ff29535fcac3\", \"user_agent\": \"python-httpx/0.25.2\", \"remote_addr\": \"127.0.0.1\", \"event\": \"Request iniciada\", \"logger\": \"app.main\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:43:58.775248Z\"}"}
{"event": "{\"email\": \"admin@test.com\", \"tenant_slug\": \"test-company\", \"event\": \"Login attempt\", \"logger\": \"app.api.v1.endpoints.auth\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:43:58.776711Z\"}"}
{"event": "{\"method\": \"POST\", \"url\": \"http://test/v1/auth/login\", \"status_code\": 429, \"duration\": \"0.003s\", \"correlation_id\": \"d8fb612c-a0f1-4fe3-beb9-ff29535fcac3\", \"event\": \"Request completada\", \"logger\": \"app.main\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:43:58.777947Z\"}"}
{"event": "HTTP Request: POST http://test/v1/auth/login \"HTTP/1.1 429 Too Many Requests\""}
------------------------------ Captured log setup ------------------------------
INFO app.main:main.py:102 {"method": "POST", "url": "http://test/v1/auth/login", "correlation_id": "d8fb612c-a0f1-4fe3-beb9-ff29535fcac3", "user_agent": "python-httpx/0.25.2", "remote_addr": "127.0.0.1", "event": "Request iniciada", "logger": "app.main", "level": "info", "timestamp": "2026-02-23T16:43:58.775248Z"}
INFO app.api.v1.endpoints.auth:auth.py:59 {"email": "admin@test.com", "tenant_slug": "test-company", "event": "Login attempt", "logger": "app.api.v1.endpoints.auth", "level": "info", "timestamp": "2026-02-23T16:43:58.776711Z"}
INFO app.main:main.py:116 {"method": "POST", "url": "http://test/v1/auth/login", "status_code": 429, "duration": "0.003s", "correlation_id": "d8fb612c-a0f1-4fe3-beb9-ff29535fcac3", "event": "Request completada", "logger": "app.main", "level": "info", "timestamp": "2026-02-23T16:43:58.777947Z"}
INFO httpx:_client.py:1729 HTTP Request: POST http://test/v1/auth/login "HTTP/1.1 429 Too Many Requests"
_ ERROR at setup of TestTenantIsolation.test_user_cannot_update_other_tenant_ticket _
/usr/local/lib/python3.11/site-packages/pytest_asyncio/plugin.py:326: in _async_fixture_wrapper
return event_loop.run_until_complete(setup())
/usr/local/lib/python3.11/asyncio/base_events.py:654: in run_until_complete
return future.result()
/usr/local/lib/python3.11/site-packages/pytest_asyncio/plugin.py:323: in setup
res = await func(**_add_kwargs(func, kwargs, event_loop, request))
tests/integration/conftest.py:230: in admin_token
assert response.status_code == 200
E assert 429 == 200
E + where 429 = <Response [429 Too Many Requests]>.status_code
---------------------------- Captured stdout setup -----------------------------
{"event": "{\"method\": \"POST\", \"url\": \"http://test/v1/auth/login\", \"correlation_id\": \"d064ddd2-badc-4969-bacf-9628f72c9338\", \"user_agent\": \"python-httpx/0.25.2\", \"remote_addr\": \"127.0.0.1\", \"event\": \"Request iniciada\", \"logger\": \"app.main\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:43:59.668401Z\"}"}
{"event": "{\"email\": \"admin@test.com\", \"tenant_slug\": \"test-company\", \"event\": \"Login attempt\", \"logger\": \"app.api.v1.endpoints.auth\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:43:59.669695Z\"}"}
{"event": "{\"method\": \"POST\", \"url\": \"http://test/v1/auth/login\", \"status_code\": 429, \"duration\": \"0.007s\", \"correlation_id\": \"d064ddd2-badc-4969-bacf-9628f72c9338\", \"event\": \"Request completada\", \"logger\": \"app.main\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:43:59.675296Z\"}"}
{"event": "HTTP Request: POST http://test/v1/auth/login \"HTTP/1.1 429 Too Many Requests\""}
------------------------------ Captured log setup ------------------------------
INFO app.main:main.py:102 {"method": "POST", "url": "http://test/v1/auth/login", "correlation_id": "d064ddd2-badc-4969-bacf-9628f72c9338", "user_agent": "python-httpx/0.25.2", "remote_addr": "127.0.0.1", "event": "Request iniciada", "logger": "app.main", "level": "info", "timestamp": "2026-02-23T16:43:59.668401Z"}
INFO app.api.v1.endpoints.auth:auth.py:59 {"email": "admin@test.com", "tenant_slug": "test-company", "event": "Login attempt", "logger": "app.api.v1.endpoints.auth", "level": "info", "timestamp": "2026-02-23T16:43:59.669695Z"}
INFO app.main:main.py:116 {"method": "POST", "url": "http://test/v1/auth/login", "status_code": 429, "duration": "0.007s", "correlation_id": "d064ddd2-badc-4969-bacf-9628f72c9338", "event": "Request completada", "logger": "app.main", "level": "info", "timestamp": "2026-02-23T16:43:59.675296Z"}
INFO httpx:_client.py:1729 HTTP Request: POST http://test/v1/auth/login "HTTP/1.1 429 Too Many Requests"
_ ERROR at setup of TestTenantIsolation.test_middleware_validates_tenant_header _
/usr/local/lib/python3.11/site-packages/pytest_asyncio/plugin.py:326: in _async_fixture_wrapper
return event_loop.run_until_complete(setup())
/usr/local/lib/python3.11/asyncio/base_events.py:654: in run_until_complete
return future.result()
/usr/local/lib/python3.11/site-packages/pytest_asyncio/plugin.py:323: in setup
res = await func(**_add_kwargs(func, kwargs, event_loop, request))
tests/integration/conftest.py:230: in admin_token
assert response.status_code == 200
E assert 429 == 200
E + where 429 = <Response [429 Too Many Requests]>.status_code
---------------------------- Captured stdout setup -----------------------------
{"event": "{\"method\": \"POST\", \"url\": \"http://test/v1/auth/login\", \"correlation_id\": \"891b8916-dff7-4eca-8610-7b76a81cdd90\", \"user_agent\": \"python-httpx/0.25.2\", \"remote_addr\": \"127.0.0.1\", \"event\": \"Request iniciada\", \"logger\": \"app.main\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:44:00.390107Z\"}"}
{"event": "{\"email\": \"admin@test.com\", \"tenant_slug\": \"test-company\", \"event\": \"Login attempt\", \"logger\": \"app.api.v1.endpoints.auth\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:44:00.393434Z\"}"}
{"event": "{\"method\": \"POST\", \"url\": \"http://test/v1/auth/login\", \"status_code\": 429, \"duration\": \"0.004s\", \"correlation_id\": \"891b8916-dff7-4eca-8610-7b76a81cdd90\", \"event\": \"Request completada\", \"logger\": \"app.main\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:44:00.394467Z\"}"}
{"event": "HTTP Request: POST http://test/v1/auth/login \"HTTP/1.1 429 Too Many Requests\""}
------------------------------ Captured log setup ------------------------------
INFO app.main:main.py:102 {"method": "POST", "url": "http://test/v1/auth/login", "correlation_id": "891b8916-dff7-4eca-8610-7b76a81cdd90", "user_agent": "python-httpx/0.25.2", "remote_addr": "127.0.0.1", "event": "Request iniciada", "logger": "app.main", "level": "info", "timestamp": "2026-02-23T16:44:00.390107Z"}
INFO app.api.v1.endpoints.auth:auth.py:59 {"email": "admin@test.com", "tenant_slug": "test-company", "event": "Login attempt", "logger": "app.api.v1.endpoints.auth", "level": "info", "timestamp": "2026-02-23T16:44:00.393434Z"}
INFO app.main:main.py:116 {"method": "POST", "url": "http://test/v1/auth/login", "status_code": 429, "duration": "0.004s", "correlation_id": "891b8916-dff7-4eca-8610-7b76a81cdd90", "event": "Request completada", "logger": "app.main", "level": "info", "timestamp": "2026-02-23T16:44:00.394467Z"}
INFO httpx:_client.py:1729 HTTP Request: POST http://test/v1/auth/login "HTTP/1.1 429 Too Many Requests"
_ ERROR at setup of TestTenantIsolation.test_middleware_rejects_invalid_tenant_uuid _
/usr/local/lib/python3.11/site-packages/pytest_asyncio/plugin.py:326: in _async_fixture_wrapper
return event_loop.run_until_complete(setup())
/usr/local/lib/python3.11/asyncio/base_events.py:654: in run_until_complete
return future.result()
/usr/local/lib/python3.11/site-packages/pytest_asyncio/plugin.py:323: in setup
res = await func(**_add_kwargs(func, kwargs, event_loop, request))
tests/integration/conftest.py:230: in admin_token
assert response.status_code == 200
E assert 429 == 200
E + where 429 = <Response [429 Too Many Requests]>.status_code
---------------------------- Captured stdout setup -----------------------------
{"event": "{\"method\": \"POST\", \"url\": \"http://test/v1/auth/login\", \"correlation_id\": \"e8649fa6-d6b9-4b7d-a9c1-7949709cc293\", \"user_agent\": \"python-httpx/0.25.2\", \"remote_addr\": \"127.0.0.1\", \"event\": \"Request iniciada\", \"logger\": \"app.main\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:44:01.173630Z\"}"}
{"event": "{\"email\": \"admin@test.com\", \"tenant_slug\": \"test-company\", \"event\": \"Login attempt\", \"logger\": \"app.api.v1.endpoints.auth\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:44:01.175419Z\"}"}
{"event": "{\"method\": \"POST\", \"url\": \"http://test/v1/auth/login\", \"status_code\": 429, \"duration\": \"0.003s\", \"correlation_id\": \"e8649fa6-d6b9-4b7d-a9c1-7949709cc293\", \"event\": \"Request completada\", \"logger\": \"app.main\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:44:01.176509Z\"}"}
{"event": "HTTP Request: POST http://test/v1/auth/login \"HTTP/1.1 429 Too Many Requests\""}
------------------------------ Captured log setup ------------------------------
INFO app.main:main.py:102 {"method": "POST", "url": "http://test/v1/auth/login", "correlation_id": "e8649fa6-d6b9-4b7d-a9c1-7949709cc293", "user_agent": "python-httpx/0.25.2", "remote_addr": "127.0.0.1", "event": "Request iniciada", "logger": "app.main", "level": "info", "timestamp": "2026-02-23T16:44:01.173630Z"}
INFO app.api.v1.endpoints.auth:auth.py:59 {"email": "admin@test.com", "tenant_slug": "test-company", "event": "Login attempt", "logger": "app.api.v1.endpoints.auth", "level": "info", "timestamp": "2026-02-23T16:44:01.175419Z"}
INFO app.main:main.py:116 {"method": "POST", "url": "http://test/v1/auth/login", "status_code": 429, "duration": "0.003s", "correlation_id": "e8649fa6-d6b9-4b7d-a9c1-7949709cc293", "event": "Request completada", "logger": "app.main", "level": "info", "timestamp": "2026-02-23T16:44:01.176509Z"}
INFO httpx:_client.py:1729 HTTP Request: POST http://test/v1/auth/login "HTTP/1.1 429 Too Many Requests"
_ ERROR at setup of TestTenantIsolation.test_middleware_rejects_nonexistent_tenant _
/usr/local/lib/python3.11/site-packages/pytest_asyncio/plugin.py:326: in _async_fixture_wrapper
return event_loop.run_until_complete(setup())
/usr/local/lib/python3.11/asyncio/base_events.py:654: in run_until_complete
return future.result()
/usr/local/lib/python3.11/site-packages/pytest_asyncio/plugin.py:323: in setup
res = await func(**_add_kwargs(func, kwargs, event_loop, request))
tests/integration/conftest.py:230: in admin_token
assert response.status_code == 200
E assert 429 == 200
E + where 429 = <Response [429 Too Many Requests]>.status_code
---------------------------- Captured stdout setup -----------------------------
{"event": "{\"method\": \"POST\", \"url\": \"http://test/v1/auth/login\", \"correlation_id\": \"a80b50c4-9452-4d1e-9b6a-b93681c90190\", \"user_agent\": \"python-httpx/0.25.2\", \"remote_addr\": \"127.0.0.1\", \"event\": \"Request iniciada\", \"logger\": \"app.main\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:44:01.858539Z\"}"}
{"event": "{\"email\": \"admin@test.com\", \"tenant_slug\": \"test-company\", \"event\": \"Login attempt\", \"logger\": \"app.api.v1.endpoints.auth\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:44:01.862423Z\"}"}
{"event": "{\"method\": \"POST\", \"url\": \"http://test/v1/auth/login\", \"status_code\": 429, \"duration\": \"0.008s\", \"correlation_id\": \"a80b50c4-9452-4d1e-9b6a-b93681c90190\", \"event\": \"Request completada\", \"logger\": \"app.main\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:44:01.866089Z\"}"}
{"event": "HTTP Request: POST http://test/v1/auth/login \"HTTP/1.1 429 Too Many Requests\""}
------------------------------ Captured log setup ------------------------------
INFO app.main:main.py:102 {"method": "POST", "url": "http://test/v1/auth/login", "correlation_id": "a80b50c4-9452-4d1e-9b6a-b93681c90190", "user_agent": "python-httpx/0.25.2", "remote_addr": "127.0.0.1", "event": "Request iniciada", "logger": "app.main", "level": "info", "timestamp": "2026-02-23T16:44:01.858539Z"}
INFO app.api.v1.endpoints.auth:auth.py:59 {"email": "admin@test.com", "tenant_slug": "test-company", "event": "Login attempt", "logger": "app.api.v1.endpoints.auth", "level": "info", "timestamp": "2026-02-23T16:44:01.862423Z"}
INFO app.main:main.py:116 {"method": "POST", "url": "http://test/v1/auth/login", "status_code": 429, "duration": "0.008s", "correlation_id": "a80b50c4-9452-4d1e-9b6a-b93681c90190", "event": "Request completada", "logger": "app.main", "level": "info", "timestamp": "2026-02-23T16:44:01.866089Z"}
INFO httpx:_client.py:1729 HTTP Request: POST http://test/v1/auth/login "HTTP/1.1 429 Too Many Requests"
____ ERROR at setup of TestTenantAdminEndpoints.test_admin_can_list_tenants ____
/usr/local/lib/python3.11/site-packages/pytest_asyncio/plugin.py:326: in _async_fixture_wrapper
return event_loop.run_until_complete(setup())
/usr/local/lib/python3.11/asyncio/base_events.py:654: in run_until_complete
return future.result()
/usr/local/lib/python3.11/site-packages/pytest_asyncio/plugin.py:323: in setup
res = await func(**_add_kwargs(func, kwargs, event_loop, request))
tests/integration/conftest.py:230: in admin_token
assert response.status_code == 200
E assert 429 == 200
E + where 429 = <Response [429 Too Many Requests]>.status_code
---------------------------- Captured stdout setup -----------------------------
{"event": "{\"method\": \"POST\", \"url\": \"http://test/v1/auth/login\", \"correlation_id\": \"0ecbe18c-9c93-430e-a76a-f6af9954fbcc\", \"user_agent\": \"python-httpx/0.25.2\", \"remote_addr\": \"127.0.0.1\", \"event\": \"Request iniciada\", \"logger\": \"app.main\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:44:02.739093Z\"}"}
{"event": "{\"email\": \"admin@test.com\", \"tenant_slug\": \"test-company\", \"event\": \"Login attempt\", \"logger\": \"app.api.v1.endpoints.auth\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:44:02.740334Z\"}"}
{"event": "{\"method\": \"POST\", \"url\": \"http://test/v1/auth/login\", \"status_code\": 429, \"duration\": \"0.003s\", \"correlation_id\": \"0ecbe18c-9c93-430e-a76a-f6af9954fbcc\", \"event\": \"Request completada\", \"logger\": \"app.main\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:44:02.741627Z\"}"}
{"event": "HTTP Request: POST http://test/v1/auth/login \"HTTP/1.1 429 Too Many Requests\""}
------------------------------ Captured log setup ------------------------------
INFO app.main:main.py:102 {"method": "POST", "url": "http://test/v1/auth/login", "correlation_id": "0ecbe18c-9c93-430e-a76a-f6af9954fbcc", "user_agent": "python-httpx/0.25.2", "remote_addr": "127.0.0.1", "event": "Request iniciada", "logger": "app.main", "level": "info", "timestamp": "2026-02-23T16:44:02.739093Z"}
INFO app.api.v1.endpoints.auth:auth.py:59 {"email": "admin@test.com", "tenant_slug": "test-company", "event": "Login attempt", "logger": "app.api.v1.endpoints.auth", "level": "info", "timestamp": "2026-02-23T16:44:02.740334Z"}
INFO app.main:main.py:116 {"method": "POST", "url": "http://test/v1/auth/login", "status_code": 429, "duration": "0.003s", "correlation_id": "0ecbe18c-9c93-430e-a76a-f6af9954fbcc", "event": "Request completada", "logger": "app.main", "level": "info", "timestamp": "2026-02-23T16:44:02.741627Z"}
INFO httpx:_client.py:1729 HTTP Request: POST http://test/v1/auth/login "HTTP/1.1 429 Too Many Requests"
_ ERROR at setup of TestTenantAdminEndpoints.test_non_admin_cannot_list_tenants _
/usr/local/lib/python3.11/site-packages/pytest_asyncio/plugin.py:326: in _async_fixture_wrapper
return event_loop.run_until_complete(setup())
/usr/local/lib/python3.11/asyncio/base_events.py:654: in run_until_complete
return future.result()
/usr/local/lib/python3.11/site-packages/pytest_asyncio/plugin.py:323: in setup
res = await func(**_add_kwargs(func, kwargs, event_loop, request))
tests/integration/conftest.py:258: in client_token
assert response.status_code == 200
E assert 429 == 200
E + where 429 = <Response [429 Too Many Requests]>.status_code
---------------------------- Captured stdout setup -----------------------------
{"event": "{\"method\": \"POST\", \"url\": \"http://test/v1/auth/login\", \"correlation_id\": \"ade11889-c6a6-41a1-8919-1395f0214f15\", \"user_agent\": \"python-httpx/0.25.2\", \"remote_addr\": \"127.0.0.1\", \"event\": \"Request iniciada\", \"logger\": \"app.main\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:44:03.418524Z\"}"}
{"event": "{\"email\": \"client@test.com\", \"tenant_slug\": \"test-company\", \"event\": \"Login attempt\", \"logger\": \"app.api.v1.endpoints.auth\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:44:03.420015Z\"}"}
{"event": "{\"method\": \"POST\", \"url\": \"http://test/v1/auth/login\", \"status_code\": 429, \"duration\": \"0.005s\", \"correlation_id\": \"ade11889-c6a6-41a1-8919-1395f0214f15\", \"event\": \"Request completada\", \"logger\": \"app.main\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:44:03.423640Z\"}"}
{"event": "HTTP Request: POST http://test/v1/auth/login \"HTTP/1.1 429 Too Many Requests\""}
------------------------------ Captured log setup ------------------------------
INFO app.main:main.py:102 {"method": "POST", "url": "http://test/v1/auth/login", "correlation_id": "ade11889-c6a6-41a1-8919-1395f0214f15", "user_agent": "python-httpx/0.25.2", "remote_addr": "127.0.0.1", "event": "Request iniciada", "logger": "app.main", "level": "info", "timestamp": "2026-02-23T16:44:03.418524Z"}
INFO app.api.v1.endpoints.auth:auth.py:59 {"email": "client@test.com", "tenant_slug": "test-company", "event": "Login attempt", "logger": "app.api.v1.endpoints.auth", "level": "info", "timestamp": "2026-02-23T16:44:03.420015Z"}
INFO app.main:main.py:116 {"method": "POST", "url": "http://test/v1/auth/login", "status_code": 429, "duration": "0.005s", "correlation_id": "ade11889-c6a6-41a1-8919-1395f0214f15", "event": "Request completada", "logger": "app.main", "level": "info", "timestamp": "2026-02-23T16:44:03.423640Z"}
INFO httpx:_client.py:1729 HTTP Request: POST http://test/v1/auth/login "HTTP/1.1 429 Too Many Requests"
___ ERROR at setup of TestTenantAdminEndpoints.test_admin_can_create_tenant ____
/usr/local/lib/python3.11/site-packages/pytest_asyncio/plugin.py:326: in _async_fixture_wrapper
return event_loop.run_until_complete(setup())
/usr/local/lib/python3.11/asyncio/base_events.py:654: in run_until_complete
return future.result()
/usr/local/lib/python3.11/site-packages/pytest_asyncio/plugin.py:323: in setup
res = await func(**_add_kwargs(func, kwargs, event_loop, request))
tests/integration/conftest.py:230: in admin_token
assert response.status_code == 200
E assert 429 == 200
E + where 429 = <Response [429 Too Many Requests]>.status_code
---------------------------- Captured stdout setup -----------------------------
{"event": "{\"method\": \"POST\", \"url\": \"http://test/v1/auth/login\", \"correlation_id\": \"eeabc822-886a-4a02-a511-d12c3853ab10\", \"user_agent\": \"python-httpx/0.25.2\", \"remote_addr\": \"127.0.0.1\", \"event\": \"Request iniciada\", \"logger\": \"app.main\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:44:04.162372Z\"}"}
{"event": "{\"email\": \"admin@test.com\", \"tenant_slug\": \"test-company\", \"event\": \"Login attempt\", \"logger\": \"app.api.v1.endpoints.auth\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:44:04.163855Z\"}"}
{"event": "{\"method\": \"POST\", \"url\": \"http://test/v1/auth/login\", \"status_code\": 429, \"duration\": \"0.002s\", \"correlation_id\": \"eeabc822-886a-4a02-a511-d12c3853ab10\", \"event\": \"Request completada\", \"logger\": \"app.main\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:44:04.164793Z\"}"}
{"event": "HTTP Request: POST http://test/v1/auth/login \"HTTP/1.1 429 Too Many Requests\""}
------------------------------ Captured log setup ------------------------------
INFO app.main:main.py:102 {"method": "POST", "url": "http://test/v1/auth/login", "correlation_id": "eeabc822-886a-4a02-a511-d12c3853ab10", "user_agent": "python-httpx/0.25.2", "remote_addr": "127.0.0.1", "event": "Request iniciada", "logger": "app.main", "level": "info", "timestamp": "2026-02-23T16:44:04.162372Z"}
INFO app.api.v1.endpoints.auth:auth.py:59 {"email": "admin@test.com", "tenant_slug": "test-company", "event": "Login attempt", "logger": "app.api.v1.endpoints.auth", "level": "info", "timestamp": "2026-02-23T16:44:04.163855Z"}
INFO app.main:main.py:116 {"method": "POST", "url": "http://test/v1/auth/login", "status_code": 429, "duration": "0.002s", "correlation_id": "eeabc822-886a-4a02-a511-d12c3853ab10", "event": "Request completada", "logger": "app.main", "level": "info", "timestamp": "2026-02-23T16:44:04.164793Z"}
INFO httpx:_client.py:1729 HTTP Request: POST http://test/v1/auth/login "HTTP/1.1 429 Too Many Requests"
_ ERROR at setup of TestCrossTenantuserAccess.test_user_from_tenant_a_cannot_impersonate_tenant_b _
/usr/local/lib/python3.11/site-packages/pytest_asyncio/plugin.py:326: in _async_fixture_wrapper
return event_loop.run_until_complete(setup())
/usr/local/lib/python3.11/asyncio/base_events.py:654: in run_until_complete
return future.result()
/usr/local/lib/python3.11/site-packages/pytest_asyncio/plugin.py:323: in setup
res = await func(**_add_kwargs(func, kwargs, event_loop, request))
tests/integration/conftest.py:230: in admin_token
assert response.status_code == 200
E assert 429 == 200
E + where 429 = <Response [429 Too Many Requests]>.status_code
---------------------------- Captured stdout setup -----------------------------
{"event": "{\"method\": \"POST\", \"url\": \"http://test/v1/auth/login\", \"correlation_id\": \"4548c9b7-24a2-4764-8de2-200d93531eca\", \"user_agent\": \"python-httpx/0.25.2\", \"remote_addr\": \"127.0.0.1\", \"event\": \"Request iniciada\", \"logger\": \"app.main\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:44:05.617146Z\"}"}
{"event": "{\"email\": \"admin@test.com\", \"tenant_slug\": \"test-company\", \"event\": \"Login attempt\", \"logger\": \"app.api.v1.endpoints.auth\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:44:05.618685Z\"}"}
{"event": "{\"method\": \"POST\", \"url\": \"http://test/v1/auth/login\", \"status_code\": 429, \"duration\": \"0.003s\", \"correlation_id\": \"4548c9b7-24a2-4764-8de2-200d93531eca\", \"event\": \"Request completada\", \"logger\": \"app.main\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:44:05.620076Z\"}"}
{"event": "HTTP Request: POST http://test/v1/auth/login \"HTTP/1.1 429 Too Many Requests\""}
------------------------------ Captured log setup ------------------------------
INFO app.main:main.py:102 {"method": "POST", "url": "http://test/v1/auth/login", "correlation_id": "4548c9b7-24a2-4764-8de2-200d93531eca", "user_agent": "python-httpx/0.25.2", "remote_addr": "127.0.0.1", "event": "Request iniciada", "logger": "app.main", "level": "info", "timestamp": "2026-02-23T16:44:05.617146Z"}
INFO app.api.v1.endpoints.auth:auth.py:59 {"email": "admin@test.com", "tenant_slug": "test-company", "event": "Login attempt", "logger": "app.api.v1.endpoints.auth", "level": "info", "timestamp": "2026-02-23T16:44:05.618685Z"}
INFO app.main:main.py:116 {"method": "POST", "url": "http://test/v1/auth/login", "status_code": 429, "duration": "0.003s", "correlation_id": "4548c9b7-24a2-4764-8de2-200d93531eca", "event": "Request completada", "logger": "app.main", "level": "info", "timestamp": "2026-02-23T16:44:05.620076Z"}
INFO httpx:_client.py:1729 HTTP Request: POST http://test/v1/auth/login "HTTP/1.1 429 Too Many Requests"
______ ERROR at setup of TestSetupVerification.test_auth_token_generation ______
/usr/local/lib/python3.11/site-packages/pytest_asyncio/plugin.py:326: in _async_fixture_wrapper
return event_loop.run_until_complete(setup())
/usr/local/lib/python3.11/asyncio/base_events.py:654: in run_until_complete
return future.result()
/usr/local/lib/python3.11/site-packages/pytest_asyncio/plugin.py:323: in setup
res = await func(**_add_kwargs(func, kwargs, event_loop, request))
tests/integration/conftest.py:230: in admin_token
assert response.status_code == 200
E assert 429 == 200
E + where 429 = <Response [429 Too Many Requests]>.status_code
---------------------------- Captured stdout setup -----------------------------
{"event": "{\"method\": \"POST\", \"url\": \"http://test/v1/auth/login\", \"correlation_id\": \"a8befd46-2c83-4c1c-addb-205f60c110a9\", \"user_agent\": \"python-httpx/0.25.2\", \"remote_addr\": \"127.0.0.1\", \"event\": \"Request iniciada\", \"logger\": \"app.main\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:44:08.090542Z\"}"}
{"event": "{\"email\": \"admin@test.com\", \"tenant_slug\": \"test-company\", \"event\": \"Login attempt\", \"logger\": \"app.api.v1.endpoints.auth\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:44:08.092329Z\"}"}
{"event": "{\"method\": \"POST\", \"url\": \"http://test/v1/auth/login\", \"status_code\": 429, \"duration\": \"0.031s\", \"correlation_id\": \"a8befd46-2c83-4c1c-addb-205f60c110a9\", \"event\": \"Request completada\", \"logger\": \"app.main\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:44:08.121301Z\"}"}
{"event": "HTTP Request: POST http://test/v1/auth/login \"HTTP/1.1 429 Too Many Requests\""}
------------------------------ Captured log setup ------------------------------
INFO app.main:main.py:102 {"method": "POST", "url": "http://test/v1/auth/login", "correlation_id": "a8befd46-2c83-4c1c-addb-205f60c110a9", "user_agent": "python-httpx/0.25.2", "remote_addr": "127.0.0.1", "event": "Request iniciada", "logger": "app.main", "level": "info", "timestamp": "2026-02-23T16:44:08.090542Z"}
INFO app.api.v1.endpoints.auth:auth.py:59 {"email": "admin@test.com", "tenant_slug": "test-company", "event": "Login attempt", "logger": "app.api.v1.endpoints.auth", "level": "info", "timestamp": "2026-02-23T16:44:08.092329Z"}
INFO app.main:main.py:116 {"method": "POST", "url": "http://test/v1/auth/login", "status_code": 429, "duration": "0.031s", "correlation_id": "a8befd46-2c83-4c1c-addb-205f60c110a9", "event": "Request completada", "logger": "app.main", "level": "info", "timestamp": "2026-02-23T16:44:08.121301Z"}
INFO httpx:_client.py:1729 HTTP Request: POST http://test/v1/auth/login "HTTP/1.1 429 Too Many Requests"
_______ ERROR at setup of TestTicketCreation.test_create_ticket_success ________
/usr/local/lib/python3.11/site-packages/pytest_asyncio/plugin.py:326: in _async_fixture_wrapper
return event_loop.run_until_complete(setup())
/usr/local/lib/python3.11/asyncio/base_events.py:654: in run_until_complete
return future.result()
/usr/local/lib/python3.11/site-packages/pytest_asyncio/plugin.py:323: in setup
res = await func(**_add_kwargs(func, kwargs, event_loop, request))
tests/integration/conftest.py:258: in client_token
assert response.status_code == 200
E assert 429 == 200
E + where 429 = <Response [429 Too Many Requests]>.status_code
---------------------------- Captured stdout setup -----------------------------
{"event": "{\"method\": \"POST\", \"url\": \"http://test/v1/auth/login\", \"correlation_id\": \"1f188bb6-286a-47ca-abd7-42bb699443cb\", \"user_agent\": \"python-httpx/0.25.2\", \"remote_addr\": \"127.0.0.1\", \"event\": \"Request iniciada\", \"logger\": \"app.main\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:44:09.817059Z\"}"}
{"event": "{\"email\": \"client@test.com\", \"tenant_slug\": \"test-company\", \"event\": \"Login attempt\", \"logger\": \"app.api.v1.endpoints.auth\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:44:09.818945Z\"}"}
{"event": "{\"method\": \"POST\", \"url\": \"http://test/v1/auth/login\", \"status_code\": 429, \"duration\": \"0.005s\", \"correlation_id\": \"1f188bb6-286a-47ca-abd7-42bb699443cb\", \"event\": \"Request completada\", \"logger\": \"app.main\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:44:09.822215Z\"}"}
{"event": "HTTP Request: POST http://test/v1/auth/login \"HTTP/1.1 429 Too Many Requests\""}
------------------------------ Captured log setup ------------------------------
INFO app.main:main.py:102 {"method": "POST", "url": "http://test/v1/auth/login", "correlation_id": "1f188bb6-286a-47ca-abd7-42bb699443cb", "user_agent": "python-httpx/0.25.2", "remote_addr": "127.0.0.1", "event": "Request iniciada", "logger": "app.main", "level": "info", "timestamp": "2026-02-23T16:44:09.817059Z"}
INFO app.api.v1.endpoints.auth:auth.py:59 {"email": "client@test.com", "tenant_slug": "test-company", "event": "Login attempt", "logger": "app.api.v1.endpoints.auth", "level": "info", "timestamp": "2026-02-23T16:44:09.818945Z"}
INFO app.main:main.py:116 {"method": "POST", "url": "http://test/v1/auth/login", "status_code": 429, "duration": "0.005s", "correlation_id": "1f188bb6-286a-47ca-abd7-42bb699443cb", "event": "Request completada", "logger": "app.main", "level": "info", "timestamp": "2026-02-23T16:44:09.822215Z"}
INFO httpx:_client.py:1729 HTTP Request: POST http://test/v1/auth/login "HTTP/1.1 429 Too Many Requests"
___ ERROR at setup of TestTicketCreation.test_create_ticket_with_all_fields ____
/usr/local/lib/python3.11/site-packages/pytest_asyncio/plugin.py:326: in _async_fixture_wrapper
return event_loop.run_until_complete(setup())
/usr/local/lib/python3.11/asyncio/base_events.py:654: in run_until_complete
return future.result()
/usr/local/lib/python3.11/site-packages/pytest_asyncio/plugin.py:323: in setup
res = await func(**_add_kwargs(func, kwargs, event_loop, request))
tests/integration/conftest.py:230: in admin_token
assert response.status_code == 200
E assert 429 == 200
E + where 429 = <Response [429 Too Many Requests]>.status_code
---------------------------- Captured stdout setup -----------------------------
{"event": "{\"method\": \"POST\", \"url\": \"http://test/v1/auth/login\", \"correlation_id\": \"a7b00148-6ef8-4023-8058-98d60edcdea5\", \"user_agent\": \"python-httpx/0.25.2\", \"remote_addr\": \"127.0.0.1\", \"event\": \"Request iniciada\", \"logger\": \"app.main\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:44:10.579739Z\"}"}
{"event": "{\"email\": \"admin@test.com\", \"tenant_slug\": \"test-company\", \"event\": \"Login attempt\", \"logger\": \"app.api.v1.endpoints.auth\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:44:10.586743Z\"}"}
{"event": "{\"method\": \"POST\", \"url\": \"http://test/v1/auth/login\", \"status_code\": 429, \"duration\": \"0.009s\", \"correlation_id\": \"a7b00148-6ef8-4023-8058-98d60edcdea5\", \"event\": \"Request completada\", \"logger\": \"app.main\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:44:10.588441Z\"}"}
{"event": "HTTP Request: POST http://test/v1/auth/login \"HTTP/1.1 429 Too Many Requests\""}
------------------------------ Captured log setup ------------------------------
INFO app.main:main.py:102 {"method": "POST", "url": "http://test/v1/auth/login", "correlation_id": "a7b00148-6ef8-4023-8058-98d60edcdea5", "user_agent": "python-httpx/0.25.2", "remote_addr": "127.0.0.1", "event": "Request iniciada", "logger": "app.main", "level": "info", "timestamp": "2026-02-23T16:44:10.579739Z"}
INFO app.api.v1.endpoints.auth:auth.py:59 {"email": "admin@test.com", "tenant_slug": "test-company", "event": "Login attempt", "logger": "app.api.v1.endpoints.auth", "level": "info", "timestamp": "2026-02-23T16:44:10.586743Z"}
INFO app.main:main.py:116 {"method": "POST", "url": "http://test/v1/auth/login", "status_code": 429, "duration": "0.009s", "correlation_id": "a7b00148-6ef8-4023-8058-98d60edcdea5", "event": "Request completada", "logger": "app.main", "level": "info", "timestamp": "2026-02-23T16:44:10.588441Z"}
INFO httpx:_client.py:1729 HTTP Request: POST http://test/v1/auth/login "HTTP/1.1 429 Too Many Requests"
_ ERROR at setup of TestTicketCreation.test_create_ticket_missing_required_fields _
/usr/local/lib/python3.11/site-packages/pytest_asyncio/plugin.py:326: in _async_fixture_wrapper
return event_loop.run_until_complete(setup())
/usr/local/lib/python3.11/asyncio/base_events.py:654: in run_until_complete
return future.result()
/usr/local/lib/python3.11/site-packages/pytest_asyncio/plugin.py:323: in setup
res = await func(**_add_kwargs(func, kwargs, event_loop, request))
tests/integration/conftest.py:258: in client_token
assert response.status_code == 200
E assert 429 == 200
E + where 429 = <Response [429 Too Many Requests]>.status_code
---------------------------- Captured stdout setup -----------------------------
{"event": "{\"method\": \"POST\", \"url\": \"http://test/v1/auth/login\", \"correlation_id\": \"48408296-0154-4686-b201-fee0c6d4dc59\", \"user_agent\": \"python-httpx/0.25.2\", \"remote_addr\": \"127.0.0.1\", \"event\": \"Request iniciada\", \"logger\": \"app.main\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:44:11.307468Z\"}"}
{"event": "{\"email\": \"client@test.com\", \"tenant_slug\": \"test-company\", \"event\": \"Login attempt\", \"logger\": \"app.api.v1.endpoints.auth\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:44:11.309196Z\"}"}
{"event": "{\"method\": \"POST\", \"url\": \"http://test/v1/auth/login\", \"status_code\": 429, \"duration\": \"0.003s\", \"correlation_id\": \"48408296-0154-4686-b201-fee0c6d4dc59\", \"event\": \"Request completada\", \"logger\": \"app.main\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:44:11.310888Z\"}"}
{"event": "HTTP Request: POST http://test/v1/auth/login \"HTTP/1.1 429 Too Many Requests\""}
------------------------------ Captured log setup ------------------------------
INFO app.main:main.py:102 {"method": "POST", "url": "http://test/v1/auth/login", "correlation_id": "48408296-0154-4686-b201-fee0c6d4dc59", "user_agent": "python-httpx/0.25.2", "remote_addr": "127.0.0.1", "event": "Request iniciada", "logger": "app.main", "level": "info", "timestamp": "2026-02-23T16:44:11.307468Z"}
INFO app.api.v1.endpoints.auth:auth.py:59 {"email": "client@test.com", "tenant_slug": "test-company", "event": "Login attempt", "logger": "app.api.v1.endpoints.auth", "level": "info", "timestamp": "2026-02-23T16:44:11.309196Z"}
INFO app.main:main.py:116 {"method": "POST", "url": "http://test/v1/auth/login", "status_code": 429, "duration": "0.003s", "correlation_id": "48408296-0154-4686-b201-fee0c6d4dc59", "event": "Request completada", "logger": "app.main", "level": "info", "timestamp": "2026-02-23T16:44:11.310888Z"}
INFO httpx:_client.py:1729 HTTP Request: POST http://test/v1/auth/login "HTTP/1.1 429 Too Many Requests"
___ ERROR at setup of TestTicketCreation.test_create_ticket_invalid_priority ___
/usr/local/lib/python3.11/site-packages/pytest_asyncio/plugin.py:326: in _async_fixture_wrapper
return event_loop.run_until_complete(setup())
/usr/local/lib/python3.11/asyncio/base_events.py:654: in run_until_complete
return future.result()
/usr/local/lib/python3.11/site-packages/pytest_asyncio/plugin.py:323: in setup
res = await func(**_add_kwargs(func, kwargs, event_loop, request))
tests/integration/conftest.py:258: in client_token
assert response.status_code == 200
E assert 429 == 200
E + where 429 = <Response [429 Too Many Requests]>.status_code
---------------------------- Captured stdout setup -----------------------------
{"event": "{\"method\": \"POST\", \"url\": \"http://test/v1/auth/login\", \"correlation_id\": \"10c3ab6b-bbd5-45da-8cc4-5ed009144993\", \"user_agent\": \"python-httpx/0.25.2\", \"remote_addr\": \"127.0.0.1\", \"event\": \"Request iniciada\", \"logger\": \"app.main\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:44:12.300946Z\"}"}
{"event": "{\"email\": \"client@test.com\", \"tenant_slug\": \"test-company\", \"event\": \"Login attempt\", \"logger\": \"app.api.v1.endpoints.auth\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:44:12.302645Z\"}"}
{"event": "{\"method\": \"POST\", \"url\": \"http://test/v1/auth/login\", \"status_code\": 429, \"duration\": \"0.004s\", \"correlation_id\": \"10c3ab6b-bbd5-45da-8cc4-5ed009144993\", \"event\": \"Request completada\", \"logger\": \"app.main\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:44:12.304477Z\"}"}
{"event": "HTTP Request: POST http://test/v1/auth/login \"HTTP/1.1 429 Too Many Requests\""}
------------------------------ Captured log setup ------------------------------
INFO app.main:main.py:102 {"method": "POST", "url": "http://test/v1/auth/login", "correlation_id": "10c3ab6b-bbd5-45da-8cc4-5ed009144993", "user_agent": "python-httpx/0.25.2", "remote_addr": "127.0.0.1", "event": "Request iniciada", "logger": "app.main", "level": "info", "timestamp": "2026-02-23T16:44:12.300946Z"}
INFO app.api.v1.endpoints.auth:auth.py:59 {"email": "client@test.com", "tenant_slug": "test-company", "event": "Login attempt", "logger": "app.api.v1.endpoints.auth", "level": "info", "timestamp": "2026-02-23T16:44:12.302645Z"}
INFO app.main:main.py:116 {"method": "POST", "url": "http://test/v1/auth/login", "status_code": 429, "duration": "0.004s", "correlation_id": "10c3ab6b-bbd5-45da-8cc4-5ed009144993", "event": "Request completada", "logger": "app.main", "level": "info", "timestamp": "2026-02-23T16:44:12.304477Z"}
INFO httpx:_client.py:1729 HTTP Request: POST http://test/v1/auth/login "HTTP/1.1 429 Too Many Requests"
________ ERROR at setup of TestTicketRetrieval.test_list_tickets_empty _________
/usr/local/lib/python3.11/site-packages/pytest_asyncio/plugin.py:326: in _async_fixture_wrapper
return event_loop.run_until_complete(setup())
/usr/local/lib/python3.11/asyncio/base_events.py:654: in run_until_complete
return future.result()
/usr/local/lib/python3.11/site-packages/pytest_asyncio/plugin.py:323: in setup
res = await func(**_add_kwargs(func, kwargs, event_loop, request))
tests/integration/conftest.py:230: in admin_token
assert response.status_code == 200
E assert 429 == 200
E + where 429 = <Response [429 Too Many Requests]>.status_code
---------------------------- Captured stdout setup -----------------------------
{"event": "{\"method\": \"POST\", \"url\": \"http://test/v1/auth/login\", \"correlation_id\": \"e52ae921-b966-4abf-ab97-6488627cfe03\", \"user_agent\": \"python-httpx/0.25.2\", \"remote_addr\": \"127.0.0.1\", \"event\": \"Request iniciada\", \"logger\": \"app.main\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:44:13.035304Z\"}"}
{"event": "{\"email\": \"admin@test.com\", \"tenant_slug\": \"test-company\", \"event\": \"Login attempt\", \"logger\": \"app.api.v1.endpoints.auth\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:44:13.037331Z\"}"}
{"event": "{\"method\": \"POST\", \"url\": \"http://test/v1/auth/login\", \"status_code\": 429, \"duration\": \"0.003s\", \"correlation_id\": \"e52ae921-b966-4abf-ab97-6488627cfe03\", \"event\": \"Request completada\", \"logger\": \"app.main\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:44:13.038606Z\"}"}
{"event": "HTTP Request: POST http://test/v1/auth/login \"HTTP/1.1 429 Too Many Requests\""}
------------------------------ Captured log setup ------------------------------
INFO app.main:main.py:102 {"method": "POST", "url": "http://test/v1/auth/login", "correlation_id": "e52ae921-b966-4abf-ab97-6488627cfe03", "user_agent": "python-httpx/0.25.2", "remote_addr": "127.0.0.1", "event": "Request iniciada", "logger": "app.main", "level": "info", "timestamp": "2026-02-23T16:44:13.035304Z"}
INFO app.api.v1.endpoints.auth:auth.py:59 {"email": "admin@test.com", "tenant_slug": "test-company", "event": "Login attempt", "logger": "app.api.v1.endpoints.auth", "level": "info", "timestamp": "2026-02-23T16:44:13.037331Z"}
INFO app.main:main.py:116 {"method": "POST", "url": "http://test/v1/auth/login", "status_code": 429, "duration": "0.003s", "correlation_id": "e52ae921-b966-4abf-ab97-6488627cfe03", "event": "Request completada", "logger": "app.main", "level": "info", "timestamp": "2026-02-23T16:44:13.038606Z"}
INFO httpx:_client.py:1729 HTTP Request: POST http://test/v1/auth/login "HTTP/1.1 429 Too Many Requests"
______ ERROR at setup of TestTicketRetrieval.test_list_tickets_with_data _______
/usr/local/lib/python3.11/site-packages/pytest_asyncio/plugin.py:326: in _async_fixture_wrapper
return event_loop.run_until_complete(setup())
/usr/local/lib/python3.11/asyncio/base_events.py:654: in run_until_complete
return future.result()
/usr/local/lib/python3.11/site-packages/pytest_asyncio/plugin.py:323: in setup
res = await func(**_add_kwargs(func, kwargs, event_loop, request))
tests/integration/conftest.py:230: in admin_token
assert response.status_code == 200
E assert 429 == 200
E + where 429 = <Response [429 Too Many Requests]>.status_code
---------------------------- Captured stdout setup -----------------------------
{"event": "{\"method\": \"POST\", \"url\": \"http://test/v1/auth/login\", \"correlation_id\": \"411cba35-f5e6-4e32-b75c-2251ee3895ea\", \"user_agent\": \"python-httpx/0.25.2\", \"remote_addr\": \"127.0.0.1\", \"event\": \"Request iniciada\", \"logger\": \"app.main\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:44:13.739597Z\"}"}
{"event": "{\"email\": \"admin@test.com\", \"tenant_slug\": \"test-company\", \"event\": \"Login attempt\", \"logger\": \"app.api.v1.endpoints.auth\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:44:13.741064Z\"}"}
{"event": "{\"method\": \"POST\", \"url\": \"http://test/v1/auth/login\", \"status_code\": 429, \"duration\": \"0.003s\", \"correlation_id\": \"411cba35-f5e6-4e32-b75c-2251ee3895ea\", \"event\": \"Request completada\", \"logger\": \"app.main\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:44:13.742314Z\"}"}
{"event": "HTTP Request: POST http://test/v1/auth/login \"HTTP/1.1 429 Too Many Requests\""}
------------------------------ Captured log setup ------------------------------
INFO app.main:main.py:102 {"method": "POST", "url": "http://test/v1/auth/login", "correlation_id": "411cba35-f5e6-4e32-b75c-2251ee3895ea", "user_agent": "python-httpx/0.25.2", "remote_addr": "127.0.0.1", "event": "Request iniciada", "logger": "app.main", "level": "info", "timestamp": "2026-02-23T16:44:13.739597Z"}
INFO app.api.v1.endpoints.auth:auth.py:59 {"email": "admin@test.com", "tenant_slug": "test-company", "event": "Login attempt", "logger": "app.api.v1.endpoints.auth", "level": "info", "timestamp": "2026-02-23T16:44:13.741064Z"}
INFO app.main:main.py:116 {"method": "POST", "url": "http://test/v1/auth/login", "status_code": 429, "duration": "0.003s", "correlation_id": "411cba35-f5e6-4e32-b75c-2251ee3895ea", "event": "Request completada", "logger": "app.main", "level": "info", "timestamp": "2026-02-23T16:44:13.742314Z"}
INFO httpx:_client.py:1729 HTTP Request: POST http://test/v1/auth/login "HTTP/1.1 429 Too Many Requests"
_________ ERROR at setup of TestTicketRetrieval.test_get_ticket_by_id __________
/usr/local/lib/python3.11/site-packages/pytest_asyncio/plugin.py:326: in _async_fixture_wrapper
return event_loop.run_until_complete(setup())
/usr/local/lib/python3.11/asyncio/base_events.py:654: in run_until_complete
return future.result()
/usr/local/lib/python3.11/site-packages/pytest_asyncio/plugin.py:323: in setup
res = await func(**_add_kwargs(func, kwargs, event_loop, request))
tests/integration/conftest.py:230: in admin_token
assert response.status_code == 200
E assert 429 == 200
E + where 429 = <Response [429 Too Many Requests]>.status_code
---------------------------- Captured stdout setup -----------------------------
{"event": "{\"method\": \"POST\", \"url\": \"http://test/v1/auth/login\", \"correlation_id\": \"ae6c1ab3-ac69-4b94-8860-ced4d0725586\", \"user_agent\": \"python-httpx/0.25.2\", \"remote_addr\": \"127.0.0.1\", \"event\": \"Request iniciada\", \"logger\": \"app.main\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:44:14.440722Z\"}"}
{"event": "{\"email\": \"admin@test.com\", \"tenant_slug\": \"test-company\", \"event\": \"Login attempt\", \"logger\": \"app.api.v1.endpoints.auth\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:44:14.442192Z\"}"}
{"event": "{\"method\": \"POST\", \"url\": \"http://test/v1/auth/login\", \"status_code\": 429, \"duration\": \"0.003s\", \"correlation_id\": \"ae6c1ab3-ac69-4b94-8860-ced4d0725586\", \"event\": \"Request completada\", \"logger\": \"app.main\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:44:14.443351Z\"}"}
{"event": "HTTP Request: POST http://test/v1/auth/login \"HTTP/1.1 429 Too Many Requests\""}
------------------------------ Captured log setup ------------------------------
INFO app.main:main.py:102 {"method": "POST", "url": "http://test/v1/auth/login", "correlation_id": "ae6c1ab3-ac69-4b94-8860-ced4d0725586", "user_agent": "python-httpx/0.25.2", "remote_addr": "127.0.0.1", "event": "Request iniciada", "logger": "app.main", "level": "info", "timestamp": "2026-02-23T16:44:14.440722Z"}
INFO app.api.v1.endpoints.auth:auth.py:59 {"email": "admin@test.com", "tenant_slug": "test-company", "event": "Login attempt", "logger": "app.api.v1.endpoints.auth", "level": "info", "timestamp": "2026-02-23T16:44:14.442192Z"}
INFO app.main:main.py:116 {"method": "POST", "url": "http://test/v1/auth/login", "status_code": 429, "duration": "0.003s", "correlation_id": "ae6c1ab3-ac69-4b94-8860-ced4d0725586", "event": "Request completada", "logger": "app.main", "level": "info", "timestamp": "2026-02-23T16:44:14.443351Z"}
INFO httpx:_client.py:1729 HTTP Request: POST http://test/v1/auth/login "HTTP/1.1 429 Too Many Requests"
______ ERROR at setup of TestTicketRetrieval.test_get_nonexistent_ticket _______
/usr/local/lib/python3.11/site-packages/pytest_asyncio/plugin.py:326: in _async_fixture_wrapper
return event_loop.run_until_complete(setup())
/usr/local/lib/python3.11/asyncio/base_events.py:654: in run_until_complete
return future.result()
/usr/local/lib/python3.11/site-packages/pytest_asyncio/plugin.py:323: in setup
res = await func(**_add_kwargs(func, kwargs, event_loop, request))
tests/integration/conftest.py:230: in admin_token
assert response.status_code == 200
E assert 429 == 200
E + where 429 = <Response [429 Too Many Requests]>.status_code
---------------------------- Captured stdout setup -----------------------------
{"event": "{\"method\": \"POST\", \"url\": \"http://test/v1/auth/login\", \"correlation_id\": \"064b8f83-025b-4fa0-a318-008332dcb29b\", \"user_agent\": \"python-httpx/0.25.2\", \"remote_addr\": \"127.0.0.1\", \"event\": \"Request iniciada\", \"logger\": \"app.main\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:44:15.064106Z\"}"}
{"event": "{\"email\": \"admin@test.com\", \"tenant_slug\": \"test-company\", \"event\": \"Login attempt\", \"logger\": \"app.api.v1.endpoints.auth\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:44:15.065721Z\"}"}
{"event": "{\"method\": \"POST\", \"url\": \"http://test/v1/auth/login\", \"status_code\": 429, \"duration\": \"0.003s\", \"correlation_id\": \"064b8f83-025b-4fa0-a318-008332dcb29b\", \"event\": \"Request completada\", \"logger\": \"app.main\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:44:15.067296Z\"}"}
{"event": "HTTP Request: POST http://test/v1/auth/login \"HTTP/1.1 429 Too Many Requests\""}
------------------------------ Captured log setup ------------------------------
INFO app.main:main.py:102 {"method": "POST", "url": "http://test/v1/auth/login", "correlation_id": "064b8f83-025b-4fa0-a318-008332dcb29b", "user_agent": "python-httpx/0.25.2", "remote_addr": "127.0.0.1", "event": "Request iniciada", "logger": "app.main", "level": "info", "timestamp": "2026-02-23T16:44:15.064106Z"}
INFO app.api.v1.endpoints.auth:auth.py:59 {"email": "admin@test.com", "tenant_slug": "test-company", "event": "Login attempt", "logger": "app.api.v1.endpoints.auth", "level": "info", "timestamp": "2026-02-23T16:44:15.065721Z"}
INFO app.main:main.py:116 {"method": "POST", "url": "http://test/v1/auth/login", "status_code": 429, "duration": "0.003s", "correlation_id": "064b8f83-025b-4fa0-a318-008332dcb29b", "event": "Request completada", "logger": "app.main", "level": "info", "timestamp": "2026-02-23T16:44:15.067296Z"}
INFO httpx:_client.py:1729 HTTP Request: POST http://test/v1/auth/login "HTTP/1.1 429 Too Many Requests"
_________ ERROR at setup of TestTicketUpdate.test_update_ticket_status _________
/usr/local/lib/python3.11/site-packages/pytest_asyncio/plugin.py:326: in _async_fixture_wrapper
return event_loop.run_until_complete(setup())
/usr/local/lib/python3.11/asyncio/base_events.py:654: in run_until_complete
return future.result()
/usr/local/lib/python3.11/site-packages/pytest_asyncio/plugin.py:323: in setup
res = await func(**_add_kwargs(func, kwargs, event_loop, request))
tests/integration/conftest.py:230: in admin_token
assert response.status_code == 200
E assert 429 == 200
E + where 429 = <Response [429 Too Many Requests]>.status_code
---------------------------- Captured stdout setup -----------------------------
{"event": "{\"method\": \"POST\", \"url\": \"http://test/v1/auth/login\", \"correlation_id\": \"89b922a8-57cf-4ad5-928b-99adfe27834d\", \"user_agent\": \"python-httpx/0.25.2\", \"remote_addr\": \"127.0.0.1\", \"event\": \"Request iniciada\", \"logger\": \"app.main\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:44:15.792177Z\"}"}
{"event": "{\"email\": \"admin@test.com\", \"tenant_slug\": \"test-company\", \"event\": \"Login attempt\", \"logger\": \"app.api.v1.endpoints.auth\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:44:15.793606Z\"}"}
{"event": "{\"method\": \"POST\", \"url\": \"http://test/v1/auth/login\", \"status_code\": 429, \"duration\": \"0.003s\", \"correlation_id\": \"89b922a8-57cf-4ad5-928b-99adfe27834d\", \"event\": \"Request completada\", \"logger\": \"app.main\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:44:15.794870Z\"}"}
{"event": "HTTP Request: POST http://test/v1/auth/login \"HTTP/1.1 429 Too Many Requests\""}
------------------------------ Captured log setup ------------------------------
INFO app.main:main.py:102 {"method": "POST", "url": "http://test/v1/auth/login", "correlation_id": "89b922a8-57cf-4ad5-928b-99adfe27834d", "user_agent": "python-httpx/0.25.2", "remote_addr": "127.0.0.1", "event": "Request iniciada", "logger": "app.main", "level": "info", "timestamp": "2026-02-23T16:44:15.792177Z"}
INFO app.api.v1.endpoints.auth:auth.py:59 {"email": "admin@test.com", "tenant_slug": "test-company", "event": "Login attempt", "logger": "app.api.v1.endpoints.auth", "level": "info", "timestamp": "2026-02-23T16:44:15.793606Z"}
INFO app.main:main.py:116 {"method": "POST", "url": "http://test/v1/auth/login", "status_code": 429, "duration": "0.003s", "correlation_id": "89b922a8-57cf-4ad5-928b-99adfe27834d", "event": "Request completada", "logger": "app.main", "level": "info", "timestamp": "2026-02-23T16:44:15.794870Z"}
INFO httpx:_client.py:1729 HTTP Request: POST http://test/v1/auth/login "HTTP/1.1 429 Too Many Requests"
________ ERROR at setup of TestTicketUpdate.test_update_ticket_priority ________
/usr/local/lib/python3.11/site-packages/pytest_asyncio/plugin.py:326: in _async_fixture_wrapper
return event_loop.run_until_complete(setup())
/usr/local/lib/python3.11/asyncio/base_events.py:654: in run_until_complete
return future.result()
/usr/local/lib/python3.11/site-packages/pytest_asyncio/plugin.py:323: in setup
res = await func(**_add_kwargs(func, kwargs, event_loop, request))
tests/integration/conftest.py:230: in admin_token
assert response.status_code == 200
E assert 429 == 200
E + where 429 = <Response [429 Too Many Requests]>.status_code
---------------------------- Captured stdout setup -----------------------------
{"event": "{\"method\": \"POST\", \"url\": \"http://test/v1/auth/login\", \"correlation_id\": \"02eace37-77c2-4f04-adca-732e44fef059\", \"user_agent\": \"python-httpx/0.25.2\", \"remote_addr\": \"127.0.0.1\", \"event\": \"Request iniciada\", \"logger\": \"app.main\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:44:16.497722Z\"}"}
{"event": "{\"email\": \"admin@test.com\", \"tenant_slug\": \"test-company\", \"event\": \"Login attempt\", \"logger\": \"app.api.v1.endpoints.auth\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:44:16.499129Z\"}"}
{"event": "{\"method\": \"POST\", \"url\": \"http://test/v1/auth/login\", \"status_code\": 429, \"duration\": \"0.003s\", \"correlation_id\": \"02eace37-77c2-4f04-adca-732e44fef059\", \"event\": \"Request completada\", \"logger\": \"app.main\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:44:16.500579Z\"}"}
{"event": "HTTP Request: POST http://test/v1/auth/login \"HTTP/1.1 429 Too Many Requests\""}
------------------------------ Captured log setup ------------------------------
INFO app.main:main.py:102 {"method": "POST", "url": "http://test/v1/auth/login", "correlation_id": "02eace37-77c2-4f04-adca-732e44fef059", "user_agent": "python-httpx/0.25.2", "remote_addr": "127.0.0.1", "event": "Request iniciada", "logger": "app.main", "level": "info", "timestamp": "2026-02-23T16:44:16.497722Z"}
INFO app.api.v1.endpoints.auth:auth.py:59 {"email": "admin@test.com", "tenant_slug": "test-company", "event": "Login attempt", "logger": "app.api.v1.endpoints.auth", "level": "info", "timestamp": "2026-02-23T16:44:16.499129Z"}
INFO app.main:main.py:116 {"method": "POST", "url": "http://test/v1/auth/login", "status_code": 429, "duration": "0.003s", "correlation_id": "02eace37-77c2-4f04-adca-732e44fef059", "event": "Request completada", "logger": "app.main", "level": "info", "timestamp": "2026-02-23T16:44:16.500579Z"}
INFO httpx:_client.py:1729 HTTP Request: POST http://test/v1/auth/login "HTTP/1.1 429 Too Many Requests"
_______ ERROR at setup of TestTicketUpdate.test_update_ticket_assignment _______
/usr/local/lib/python3.11/site-packages/pytest_asyncio/plugin.py:326: in _async_fixture_wrapper
return event_loop.run_until_complete(setup())
/usr/local/lib/python3.11/asyncio/base_events.py:654: in run_until_complete
return future.result()
/usr/local/lib/python3.11/site-packages/pytest_asyncio/plugin.py:323: in setup
res = await func(**_add_kwargs(func, kwargs, event_loop, request))
tests/integration/conftest.py:230: in admin_token
assert response.status_code == 200
E assert 429 == 200
E + where 429 = <Response [429 Too Many Requests]>.status_code
---------------------------- Captured stdout setup -----------------------------
{"event": "{\"method\": \"POST\", \"url\": \"http://test/v1/auth/login\", \"correlation_id\": \"c658d18b-726b-4cd4-82c0-6161292151f5\", \"user_agent\": \"python-httpx/0.25.2\", \"remote_addr\": \"127.0.0.1\", \"event\": \"Request iniciada\", \"logger\": \"app.main\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:44:17.295483Z\"}"}
{"event": "{\"email\": \"admin@test.com\", \"tenant_slug\": \"test-company\", \"event\": \"Login attempt\", \"logger\": \"app.api.v1.endpoints.auth\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:44:17.297421Z\"}"}
{"event": "{\"method\": \"POST\", \"url\": \"http://test/v1/auth/login\", \"status_code\": 429, \"duration\": \"0.003s\", \"correlation_id\": \"c658d18b-726b-4cd4-82c0-6161292151f5\", \"event\": \"Request completada\", \"logger\": \"app.main\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:44:17.298923Z\"}"}
{"event": "HTTP Request: POST http://test/v1/auth/login \"HTTP/1.1 429 Too Many Requests\""}
------------------------------ Captured log setup ------------------------------
INFO app.main:main.py:102 {"method": "POST", "url": "http://test/v1/auth/login", "correlation_id": "c658d18b-726b-4cd4-82c0-6161292151f5", "user_agent": "python-httpx/0.25.2", "remote_addr": "127.0.0.1", "event": "Request iniciada", "logger": "app.main", "level": "info", "timestamp": "2026-02-23T16:44:17.295483Z"}
INFO app.api.v1.endpoints.auth:auth.py:59 {"email": "admin@test.com", "tenant_slug": "test-company", "event": "Login attempt", "logger": "app.api.v1.endpoints.auth", "level": "info", "timestamp": "2026-02-23T16:44:17.297421Z"}
INFO app.main:main.py:116 {"method": "POST", "url": "http://test/v1/auth/login", "status_code": 429, "duration": "0.003s", "correlation_id": "c658d18b-726b-4cd4-82c0-6161292151f5", "event": "Request completada", "logger": "app.main", "level": "info", "timestamp": "2026-02-23T16:44:17.298923Z"}
INFO httpx:_client.py:1729 HTTP Request: POST http://test/v1/auth/login "HTTP/1.1 429 Too Many Requests"
__________ ERROR at setup of TestTicketFilters.test_filter_by_status ___________
/usr/local/lib/python3.11/site-packages/pytest_asyncio/plugin.py:326: in _async_fixture_wrapper
return event_loop.run_until_complete(setup())
/usr/local/lib/python3.11/asyncio/base_events.py:654: in run_until_complete
return future.result()
/usr/local/lib/python3.11/site-packages/pytest_asyncio/plugin.py:323: in setup
res = await func(**_add_kwargs(func, kwargs, event_loop, request))
tests/integration/conftest.py:230: in admin_token
assert response.status_code == 200
E assert 429 == 200
E + where 429 = <Response [429 Too Many Requests]>.status_code
---------------------------- Captured stdout setup -----------------------------
{"event": "{\"method\": \"POST\", \"url\": \"http://test/v1/auth/login\", \"correlation_id\": \"26aeb7fe-7b95-449b-b5ee-4c1d5d530308\", \"user_agent\": \"python-httpx/0.25.2\", \"remote_addr\": \"127.0.0.1\", \"event\": \"Request iniciada\", \"logger\": \"app.main\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:44:17.984578Z\"}"}
{"event": "{\"email\": \"admin@test.com\", \"tenant_slug\": \"test-company\", \"event\": \"Login attempt\", \"logger\": \"app.api.v1.endpoints.auth\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:44:17.986141Z\"}"}
{"event": "{\"method\": \"POST\", \"url\": \"http://test/v1/auth/login\", \"status_code\": 429, \"duration\": \"0.003s\", \"correlation_id\": \"26aeb7fe-7b95-449b-b5ee-4c1d5d530308\", \"event\": \"Request completada\", \"logger\": \"app.main\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:44:17.987460Z\"}"}
{"event": "HTTP Request: POST http://test/v1/auth/login \"HTTP/1.1 429 Too Many Requests\""}
------------------------------ Captured log setup ------------------------------
INFO app.main:main.py:102 {"method": "POST", "url": "http://test/v1/auth/login", "correlation_id": "26aeb7fe-7b95-449b-b5ee-4c1d5d530308", "user_agent": "python-httpx/0.25.2", "remote_addr": "127.0.0.1", "event": "Request iniciada", "logger": "app.main", "level": "info", "timestamp": "2026-02-23T16:44:17.984578Z"}
INFO app.api.v1.endpoints.auth:auth.py:59 {"email": "admin@test.com", "tenant_slug": "test-company", "event": "Login attempt", "logger": "app.api.v1.endpoints.auth", "level": "info", "timestamp": "2026-02-23T16:44:17.986141Z"}
INFO app.main:main.py:116 {"method": "POST", "url": "http://test/v1/auth/login", "status_code": 429, "duration": "0.003s", "correlation_id": "26aeb7fe-7b95-449b-b5ee-4c1d5d530308", "event": "Request completada", "logger": "app.main", "level": "info", "timestamp": "2026-02-23T16:44:17.987460Z"}
INFO httpx:_client.py:1729 HTTP Request: POST http://test/v1/auth/login "HTTP/1.1 429 Too Many Requests"
_________ ERROR at setup of TestTicketFilters.test_filter_by_priority __________
/usr/local/lib/python3.11/site-packages/pytest_asyncio/plugin.py:326: in _async_fixture_wrapper
return event_loop.run_until_complete(setup())
/usr/local/lib/python3.11/asyncio/base_events.py:654: in run_until_complete
return future.result()
/usr/local/lib/python3.11/site-packages/pytest_asyncio/plugin.py:323: in setup
res = await func(**_add_kwargs(func, kwargs, event_loop, request))
tests/integration/conftest.py:230: in admin_token
assert response.status_code == 200
E assert 429 == 200
E + where 429 = <Response [429 Too Many Requests]>.status_code
---------------------------- Captured stdout setup -----------------------------
{"event": "{\"method\": \"POST\", \"url\": \"http://test/v1/auth/login\", \"correlation_id\": \"ebaf85cc-1533-4fa7-85be-b79630270818\", \"user_agent\": \"python-httpx/0.25.2\", \"remote_addr\": \"127.0.0.1\", \"event\": \"Request iniciada\", \"logger\": \"app.main\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:44:18.668768Z\"}"}
{"event": "{\"email\": \"admin@test.com\", \"tenant_slug\": \"test-company\", \"event\": \"Login attempt\", \"logger\": \"app.api.v1.endpoints.auth\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:44:18.738554Z\"}"}
{"event": "{\"method\": \"POST\", \"url\": \"http://test/v1/auth/login\", \"status_code\": 429, \"duration\": \"0.077s\", \"correlation_id\": \"ebaf85cc-1533-4fa7-85be-b79630270818\", \"event\": \"Request completada\", \"logger\": \"app.main\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:44:18.745743Z\"}"}
{"event": "HTTP Request: POST http://test/v1/auth/login \"HTTP/1.1 429 Too Many Requests\""}
------------------------------ Captured log setup ------------------------------
INFO app.main:main.py:102 {"method": "POST", "url": "http://test/v1/auth/login", "correlation_id": "ebaf85cc-1533-4fa7-85be-b79630270818", "user_agent": "python-httpx/0.25.2", "remote_addr": "127.0.0.1", "event": "Request iniciada", "logger": "app.main", "level": "info", "timestamp": "2026-02-23T16:44:18.668768Z"}
INFO app.api.v1.endpoints.auth:auth.py:59 {"email": "admin@test.com", "tenant_slug": "test-company", "event": "Login attempt", "logger": "app.api.v1.endpoints.auth", "level": "info", "timestamp": "2026-02-23T16:44:18.738554Z"}
INFO app.main:main.py:116 {"method": "POST", "url": "http://test/v1/auth/login", "status_code": 429, "duration": "0.077s", "correlation_id": "ebaf85cc-1533-4fa7-85be-b79630270818", "event": "Request completada", "logger": "app.main", "level": "info", "timestamp": "2026-02-23T16:44:18.745743Z"}
INFO httpx:_client.py:1729 HTTP Request: POST http://test/v1/auth/login "HTTP/1.1 429 Too Many Requests"
____ ERROR at setup of TestTicketPermissions.test_client_can_create_ticket _____
/usr/local/lib/python3.11/site-packages/pytest_asyncio/plugin.py:326: in _async_fixture_wrapper
return event_loop.run_until_complete(setup())
/usr/local/lib/python3.11/asyncio/base_events.py:654: in run_until_complete
return future.result()
/usr/local/lib/python3.11/site-packages/pytest_asyncio/plugin.py:323: in setup
res = await func(**_add_kwargs(func, kwargs, event_loop, request))
tests/integration/conftest.py:258: in client_token
assert response.status_code == 200
E assert 429 == 200
E + where 429 = <Response [429 Too Many Requests]>.status_code
---------------------------- Captured stdout setup -----------------------------
{"event": "{\"method\": \"POST\", \"url\": \"http://test/v1/auth/login\", \"correlation_id\": \"d74c6bf4-ce74-4866-b2e4-2f613de7641f\", \"user_agent\": \"python-httpx/0.25.2\", \"remote_addr\": \"127.0.0.1\", \"event\": \"Request iniciada\", \"logger\": \"app.main\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:44:19.415188Z\"}"}
{"event": "{\"email\": \"client@test.com\", \"tenant_slug\": \"test-company\", \"event\": \"Login attempt\", \"logger\": \"app.api.v1.endpoints.auth\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:44:19.416619Z\"}"}
{"event": "{\"method\": \"POST\", \"url\": \"http://test/v1/auth/login\", \"status_code\": 429, \"duration\": \"0.003s\", \"correlation_id\": \"d74c6bf4-ce74-4866-b2e4-2f613de7641f\", \"event\": \"Request completada\", \"logger\": \"app.main\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:44:19.417802Z\"}"}
{"event": "HTTP Request: POST http://test/v1/auth/login \"HTTP/1.1 429 Too Many Requests\""}
------------------------------ Captured log setup ------------------------------
INFO app.main:main.py:102 {"method": "POST", "url": "http://test/v1/auth/login", "correlation_id": "d74c6bf4-ce74-4866-b2e4-2f613de7641f", "user_agent": "python-httpx/0.25.2", "remote_addr": "127.0.0.1", "event": "Request iniciada", "logger": "app.main", "level": "info", "timestamp": "2026-02-23T16:44:19.415188Z"}
INFO app.api.v1.endpoints.auth:auth.py:59 {"email": "client@test.com", "tenant_slug": "test-company", "event": "Login attempt", "logger": "app.api.v1.endpoints.auth", "level": "info", "timestamp": "2026-02-23T16:44:19.416619Z"}
INFO app.main:main.py:116 {"method": "POST", "url": "http://test/v1/auth/login", "status_code": 429, "duration": "0.003s", "correlation_id": "d74c6bf4-ce74-4866-b2e4-2f613de7641f", "event": "Request completada", "logger": "app.main", "level": "info", "timestamp": "2026-02-23T16:44:19.417802Z"}
INFO httpx:_client.py:1729 HTTP Request: POST http://test/v1/auth/login "HTTP/1.1 429 Too Many Requests"
_ ERROR at setup of TestTicketPermissions.test_client_can_only_see_own_tickets _
/usr/local/lib/python3.11/site-packages/pytest_asyncio/plugin.py:326: in _async_fixture_wrapper
return event_loop.run_until_complete(setup())
/usr/local/lib/python3.11/asyncio/base_events.py:654: in run_until_complete
return future.result()
/usr/local/lib/python3.11/site-packages/pytest_asyncio/plugin.py:323: in setup
res = await func(**_add_kwargs(func, kwargs, event_loop, request))
tests/integration/conftest.py:258: in client_token
assert response.status_code == 200
E assert 429 == 200
E + where 429 = <Response [429 Too Many Requests]>.status_code
---------------------------- Captured stdout setup -----------------------------
{"event": "{\"method\": \"POST\", \"url\": \"http://test/v1/auth/login\", \"correlation_id\": \"8b2fcd6d-1fde-410f-ade0-8864c35b9bf0\", \"user_agent\": \"python-httpx/0.25.2\", \"remote_addr\": \"127.0.0.1\", \"event\": \"Request iniciada\", \"logger\": \"app.main\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:44:20.260862Z\"}"}
{"event": "{\"email\": \"client@test.com\", \"tenant_slug\": \"test-company\", \"event\": \"Login attempt\", \"logger\": \"app.api.v1.endpoints.auth\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:44:20.262336Z\"}"}
{"event": "{\"method\": \"POST\", \"url\": \"http://test/v1/auth/login\", \"status_code\": 429, \"duration\": \"0.003s\", \"correlation_id\": \"8b2fcd6d-1fde-410f-ade0-8864c35b9bf0\", \"event\": \"Request completada\", \"logger\": \"app.main\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:44:20.263407Z\"}"}
{"event": "HTTP Request: POST http://test/v1/auth/login \"HTTP/1.1 429 Too Many Requests\""}
------------------------------ Captured log setup ------------------------------
INFO app.main:main.py:102 {"method": "POST", "url": "http://test/v1/auth/login", "correlation_id": "8b2fcd6d-1fde-410f-ade0-8864c35b9bf0", "user_agent": "python-httpx/0.25.2", "remote_addr": "127.0.0.1", "event": "Request iniciada", "logger": "app.main", "level": "info", "timestamp": "2026-02-23T16:44:20.260862Z"}
INFO app.api.v1.endpoints.auth:auth.py:59 {"email": "client@test.com", "tenant_slug": "test-company", "event": "Login attempt", "logger": "app.api.v1.endpoints.auth", "level": "info", "timestamp": "2026-02-23T16:44:20.262336Z"}
INFO app.main:main.py:116 {"method": "POST", "url": "http://test/v1/auth/login", "status_code": 429, "duration": "0.003s", "correlation_id": "8b2fcd6d-1fde-410f-ade0-8864c35b9bf0", "event": "Request completada", "logger": "app.main", "level": "info", "timestamp": "2026-02-23T16:44:20.263407Z"}
INFO httpx:_client.py:1729 HTTP Request: POST http://test/v1/auth/login "HTTP/1.1 429 Too Many Requests"
_ ERROR at setup of TestTicketPermissions.test_agent_can_see_all_tenant_tickets _
/usr/local/lib/python3.11/site-packages/pytest_asyncio/plugin.py:326: in _async_fixture_wrapper
return event_loop.run_until_complete(setup())
/usr/local/lib/python3.11/asyncio/base_events.py:654: in run_until_complete
return future.result()
/usr/local/lib/python3.11/site-packages/pytest_asyncio/plugin.py:323: in setup
res = await func(**_add_kwargs(func, kwargs, event_loop, request))
tests/integration/conftest.py:244: in agent_token
assert response.status_code == 200
E assert 429 == 200
E + where 429 = <Response [429 Too Many Requests]>.status_code
---------------------------- Captured stdout setup -----------------------------
{"event": "{\"method\": \"POST\", \"url\": \"http://test/v1/auth/login\", \"correlation_id\": \"f8105370-44f1-43e7-8b3a-f071b325c105\", \"user_agent\": \"python-httpx/0.25.2\", \"remote_addr\": \"127.0.0.1\", \"event\": \"Request iniciada\", \"logger\": \"app.main\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:44:21.324135Z\"}"}
{"event": "{\"email\": \"agent@test.com\", \"tenant_slug\": \"test-company\", \"event\": \"Login attempt\", \"logger\": \"app.api.v1.endpoints.auth\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:44:21.325989Z\"}"}
{"event": "{\"method\": \"POST\", \"url\": \"http://test/v1/auth/login\", \"status_code\": 429, \"duration\": \"0.007s\", \"correlation_id\": \"f8105370-44f1-43e7-8b3a-f071b325c105\", \"event\": \"Request completada\", \"logger\": \"app.main\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:44:21.331144Z\"}"}
{"event": "HTTP Request: POST http://test/v1/auth/login \"HTTP/1.1 429 Too Many Requests\""}
------------------------------ Captured log setup ------------------------------
INFO app.main:main.py:102 {"method": "POST", "url": "http://test/v1/auth/login", "correlation_id": "f8105370-44f1-43e7-8b3a-f071b325c105", "user_agent": "python-httpx/0.25.2", "remote_addr": "127.0.0.1", "event": "Request iniciada", "logger": "app.main", "level": "info", "timestamp": "2026-02-23T16:44:21.324135Z"}
INFO app.api.v1.endpoints.auth:auth.py:59 {"email": "agent@test.com", "tenant_slug": "test-company", "event": "Login attempt", "logger": "app.api.v1.endpoints.auth", "level": "info", "timestamp": "2026-02-23T16:44:21.325989Z"}
INFO app.main:main.py:116 {"method": "POST", "url": "http://test/v1/auth/login", "status_code": 429, "duration": "0.007s", "correlation_id": "f8105370-44f1-43e7-8b3a-f071b325c105", "event": "Request completada", "logger": "app.main", "level": "info", "timestamp": "2026-02-23T16:44:21.331144Z"}
INFO httpx:_client.py:1729 HTTP Request: POST http://test/v1/auth/login "HTTP/1.1 429 Too Many Requests"
=================================== FAILURES ===================================
____________________ TestAuthentication.test_login_success _____________________
tests/integration/test_auth_integration.py:40: in test_login_success
assert response.status_code == 200
E assert 429 == 200
E + where 429 = <Response [429 Too Many Requests]>.status_code
----------------------------- Captured stdout call -----------------------------
{"event": "{\"method\": \"POST\", \"url\": \"http://test/v1/auth/login\", \"correlation_id\": \"8f6358df-0d26-47a2-9913-3fc42d107a66\", \"user_agent\": \"python-httpx/0.25.2\", \"remote_addr\": \"127.0.0.1\", \"event\": \"Request iniciada\", \"logger\": \"app.main\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:43:45.699733Z\"}"}
{"event": "{\"email\": \"admin@test.com\", \"tenant_slug\": \"test-company\", \"event\": \"Login attempt\", \"logger\": \"app.api.v1.endpoints.auth\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:43:45.706295Z\"}"}
{"event": "{\"url\": \"redis://redis:6379/0\", \"event\": \"Redis cache connected\", \"logger\": \"app.core.cache\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:43:45.706730Z\"}"}
{"event": "{\"method\": \"POST\", \"url\": \"http://test/v1/auth/login\", \"status_code\": 429, \"duration\": \"0.010s\", \"correlation_id\": \"8f6358df-0d26-47a2-9913-3fc42d107a66\", \"event\": \"Request completada\", \"logger\": \"app.main\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:43:45.710014Z\"}"}
{"event": "HTTP Request: POST http://test/v1/auth/login \"HTTP/1.1 429 Too Many Requests\""}
------------------------------ Captured log call -------------------------------
INFO app.main:main.py:102 {"method": "POST", "url": "http://test/v1/auth/login", "correlation_id": "8f6358df-0d26-47a2-9913-3fc42d107a66", "user_agent": "python-httpx/0.25.2", "remote_addr": "127.0.0.1", "event": "Request iniciada", "logger": "app.main", "level": "info", "timestamp": "2026-02-23T16:43:45.699733Z"}
INFO app.api.v1.endpoints.auth:auth.py:59 {"email": "admin@test.com", "tenant_slug": "test-company", "event": "Login attempt", "logger": "app.api.v1.endpoints.auth", "level": "info", "timestamp": "2026-02-23T16:43:45.706295Z"}
INFO app.core.cache:cache.py:46 {"url": "redis://redis:6379/0", "event": "Redis cache connected", "logger": "app.core.cache", "level": "info", "timestamp": "2026-02-23T16:43:45.706730Z"}
INFO app.main:main.py:116 {"method": "POST", "url": "http://test/v1/auth/login", "status_code": 429, "duration": "0.010s", "correlation_id": "8f6358df-0d26-47a2-9913-3fc42d107a66", "event": "Request completada", "logger": "app.main", "level": "info", "timestamp": "2026-02-23T16:43:45.710014Z"}
INFO httpx:_client.py:1729 HTTP Request: POST http://test/v1/auth/login "HTTP/1.1 429 Too Many Requests"
________________ TestAuthentication.test_login_invalid_password ________________
tests/integration/test_auth_integration.py:66: in test_login_invalid_password
assert response.status_code == 401
E assert 429 == 401
E + where 429 = <Response [429 Too Many Requests]>.status_code
----------------------------- Captured stdout call -----------------------------
{"event": "{\"method\": \"POST\", \"url\": \"http://test/v1/auth/login\", \"correlation_id\": \"554eded0-d5b5-4e7b-b395-bcf881e0e1bb\", \"user_agent\": \"python-httpx/0.25.2\", \"remote_addr\": \"127.0.0.1\", \"event\": \"Request iniciada\", \"logger\": \"app.main\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:43:47.030643Z\"}"}
{"event": "{\"email\": \"admin@test.com\", \"tenant_slug\": \"test-company\", \"event\": \"Login attempt\", \"logger\": \"app.api.v1.endpoints.auth\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:43:47.032349Z\"}"}
{"event": "{\"method\": \"POST\", \"url\": \"http://test/v1/auth/login\", \"status_code\": 429, \"duration\": \"0.003s\", \"correlation_id\": \"554eded0-d5b5-4e7b-b395-bcf881e0e1bb\", \"event\": \"Request completada\", \"logger\": \"app.main\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:43:47.033877Z\"}"}
{"event": "HTTP Request: POST http://test/v1/auth/login \"HTTP/1.1 429 Too Many Requests\""}
------------------------------ Captured log call -------------------------------
INFO app.main:main.py:102 {"method": "POST", "url": "http://test/v1/auth/login", "correlation_id": "554eded0-d5b5-4e7b-b395-bcf881e0e1bb", "user_agent": "python-httpx/0.25.2", "remote_addr": "127.0.0.1", "event": "Request iniciada", "logger": "app.main", "level": "info", "timestamp": "2026-02-23T16:43:47.030643Z"}
INFO app.api.v1.endpoints.auth:auth.py:59 {"email": "admin@test.com", "tenant_slug": "test-company", "event": "Login attempt", "logger": "app.api.v1.endpoints.auth", "level": "info", "timestamp": "2026-02-23T16:43:47.032349Z"}
INFO app.main:main.py:116 {"method": "POST", "url": "http://test/v1/auth/login", "status_code": 429, "duration": "0.003s", "correlation_id": "554eded0-d5b5-4e7b-b395-bcf881e0e1bb", "event": "Request completada", "logger": "app.main", "level": "info", "timestamp": "2026-02-23T16:43:47.033877Z"}
INFO httpx:_client.py:1729 HTTP Request: POST http://test/v1/auth/login "HTTP/1.1 429 Too Many Requests"
______________ TestAuthentication.test_login_invalid_tenant_slug _______________
tests/integration/test_auth_integration.py:84: in test_login_invalid_tenant_slug
assert response.status_code == 404
E assert 429 == 404
E + where 429 = <Response [429 Too Many Requests]>.status_code
----------------------------- Captured stdout call -----------------------------
{"event": "{\"method\": \"POST\", \"url\": \"http://test/v1/auth/login\", \"correlation_id\": \"587d0832-4616-4e75-b655-b243e857be24\", \"user_agent\": \"python-httpx/0.25.2\", \"remote_addr\": \"127.0.0.1\", \"event\": \"Request iniciada\", \"logger\": \"app.main\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:43:47.643553Z\"}"}
{"event": "{\"email\": \"admin@test.com\", \"tenant_slug\": \"nonexistent-tenant\", \"event\": \"Login attempt\", \"logger\": \"app.api.v1.endpoints.auth\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:43:47.645051Z\"}"}
{"event": "{\"method\": \"POST\", \"url\": \"http://test/v1/auth/login\", \"status_code\": 429, \"duration\": \"0.003s\", \"correlation_id\": \"587d0832-4616-4e75-b655-b243e857be24\", \"event\": \"Request completada\", \"logger\": \"app.main\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:43:47.646451Z\"}"}
{"event": "HTTP Request: POST http://test/v1/auth/login \"HTTP/1.1 429 Too Many Requests\""}
------------------------------ Captured log call -------------------------------
INFO app.main:main.py:102 {"method": "POST", "url": "http://test/v1/auth/login", "correlation_id": "587d0832-4616-4e75-b655-b243e857be24", "user_agent": "python-httpx/0.25.2", "remote_addr": "127.0.0.1", "event": "Request iniciada", "logger": "app.main", "level": "info", "timestamp": "2026-02-23T16:43:47.643553Z"}
INFO app.api.v1.endpoints.auth:auth.py:59 {"email": "admin@test.com", "tenant_slug": "nonexistent-tenant", "event": "Login attempt", "logger": "app.api.v1.endpoints.auth", "level": "info", "timestamp": "2026-02-23T16:43:47.645051Z"}
INFO app.main:main.py:116 {"method": "POST", "url": "http://test/v1/auth/login", "status_code": 429, "duration": "0.003s", "correlation_id": "587d0832-4616-4e75-b655-b243e857be24", "event": "Request completada", "logger": "app.main", "level": "info", "timestamp": "2026-02-23T16:43:47.646451Z"}
INFO httpx:_client.py:1729 HTTP Request: POST http://test/v1/auth/login "HTTP/1.1 429 Too Many Requests"
_________________ TestAuthentication.test_login_user_not_found _________________
tests/integration/test_auth_integration.py:101: in test_login_user_not_found
assert response.status_code == 401
E assert 429 == 401
E + where 429 = <Response [429 Too Many Requests]>.status_code
----------------------------- Captured stdout call -----------------------------
{"event": "{\"method\": \"POST\", \"url\": \"http://test/v1/auth/login\", \"correlation_id\": \"73503217-b248-44a2-8720-ef1621307ef8\", \"user_agent\": \"python-httpx/0.25.2\", \"remote_addr\": \"127.0.0.1\", \"event\": \"Request iniciada\", \"logger\": \"app.main\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:43:48.092234Z\"}"}
{"event": "{\"email\": \"notfound@test.com\", \"tenant_slug\": \"test-company\", \"event\": \"Login attempt\", \"logger\": \"app.api.v1.endpoints.auth\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:43:48.094162Z\"}"}
{"event": "{\"method\": \"POST\", \"url\": \"http://test/v1/auth/login\", \"status_code\": 429, \"duration\": \"0.004s\", \"correlation_id\": \"73503217-b248-44a2-8720-ef1621307ef8\", \"event\": \"Request completada\", \"logger\": \"app.main\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:43:48.096319Z\"}"}
{"event": "HTTP Request: POST http://test/v1/auth/login \"HTTP/1.1 429 Too Many Requests\""}
------------------------------ Captured log call -------------------------------
INFO app.main:main.py:102 {"method": "POST", "url": "http://test/v1/auth/login", "correlation_id": "73503217-b248-44a2-8720-ef1621307ef8", "user_agent": "python-httpx/0.25.2", "remote_addr": "127.0.0.1", "event": "Request iniciada", "logger": "app.main", "level": "info", "timestamp": "2026-02-23T16:43:48.092234Z"}
INFO app.api.v1.endpoints.auth:auth.py:59 {"email": "notfound@test.com", "tenant_slug": "test-company", "event": "Login attempt", "logger": "app.api.v1.endpoints.auth", "level": "info", "timestamp": "2026-02-23T16:43:48.094162Z"}
INFO app.main:main.py:116 {"method": "POST", "url": "http://test/v1/auth/login", "status_code": 429, "duration": "0.004s", "correlation_id": "73503217-b248-44a2-8720-ef1621307ef8", "event": "Request completada", "logger": "app.main", "level": "info", "timestamp": "2026-02-23T16:43:48.096319Z"}
INFO httpx:_client.py:1729 HTTP Request: POST http://test/v1/auth/login "HTTP/1.1 429 Too Many Requests"
_________________ TestAuthentication.test_login_inactive_user __________________
tests/integration/test_auth_integration.py:124: in test_login_inactive_user
assert response.status_code == 403
E assert 429 == 403
E + where 429 = <Response [429 Too Many Requests]>.status_code
----------------------------- Captured stdout call -----------------------------
{"event": "{\"method\": \"POST\", \"url\": \"http://test/v1/auth/login\", \"correlation_id\": \"5ff13387-a703-4210-968a-329ecce9b4be\", \"user_agent\": \"python-httpx/0.25.2\", \"remote_addr\": \"127.0.0.1\", \"event\": \"Request iniciada\", \"logger\": \"app.main\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:43:48.732940Z\"}"}
{"event": "{\"email\": \"admin@test.com\", \"tenant_slug\": \"test-company\", \"event\": \"Login attempt\", \"logger\": \"app.api.v1.endpoints.auth\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:43:48.734483Z\"}"}
{"event": "{\"method\": \"POST\", \"url\": \"http://test/v1/auth/login\", \"status_code\": 429, \"duration\": \"0.003s\", \"correlation_id\": \"5ff13387-a703-4210-968a-329ecce9b4be\", \"event\": \"Request completada\", \"logger\": \"app.main\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:43:48.735430Z\"}"}
{"event": "HTTP Request: POST http://test/v1/auth/login \"HTTP/1.1 429 Too Many Requests\""}
------------------------------ Captured log call -------------------------------
INFO app.main:main.py:102 {"method": "POST", "url": "http://test/v1/auth/login", "correlation_id": "5ff13387-a703-4210-968a-329ecce9b4be", "user_agent": "python-httpx/0.25.2", "remote_addr": "127.0.0.1", "event": "Request iniciada", "logger": "app.main", "level": "info", "timestamp": "2026-02-23T16:43:48.732940Z"}
INFO app.api.v1.endpoints.auth:auth.py:59 {"email": "admin@test.com", "tenant_slug": "test-company", "event": "Login attempt", "logger": "app.api.v1.endpoints.auth", "level": "info", "timestamp": "2026-02-23T16:43:48.734483Z"}
INFO app.main:main.py:116 {"method": "POST", "url": "http://test/v1/auth/login", "status_code": 429, "duration": "0.003s", "correlation_id": "5ff13387-a703-4210-968a-329ecce9b4be", "event": "Request completada", "logger": "app.main", "level": "info", "timestamp": "2026-02-23T16:43:48.735430Z"}
INFO httpx:_client.py:1729 HTTP Request: POST http://test/v1/auth/login "HTTP/1.1 429 Too Many Requests"
_________________ TestRefreshToken.test_refresh_token_success __________________
tests/integration/test_auth_integration.py:200: in test_refresh_token_success
assert login_response.status_code == 200
E assert 429 == 200
E + where 429 = <Response [429 Too Many Requests]>.status_code
----------------------------- Captured stdout call -----------------------------
{"event": "{\"method\": \"POST\", \"url\": \"http://test/v1/auth/login\", \"correlation_id\": \"0391e793-7041-4321-9264-4c4695ba61f7\", \"user_agent\": \"python-httpx/0.25.2\", \"remote_addr\": \"127.0.0.1\", \"event\": \"Request iniciada\", \"logger\": \"app.main\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:43:50.306236Z\"}"}
{"event": "{\"email\": \"admin@test.com\", \"tenant_slug\": \"test-company\", \"event\": \"Login attempt\", \"logger\": \"app.api.v1.endpoints.auth\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:43:50.311213Z\"}"}
{"event": "{\"method\": \"POST\", \"url\": \"http://test/v1/auth/login\", \"status_code\": 429, \"duration\": \"0.007s\", \"correlation_id\": \"0391e793-7041-4321-9264-4c4695ba61f7\", \"event\": \"Request completada\", \"logger\": \"app.main\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:43:50.312786Z\"}"}
{"event": "HTTP Request: POST http://test/v1/auth/login \"HTTP/1.1 429 Too Many Requests\""}
------------------------------ Captured log call -------------------------------
INFO app.main:main.py:102 {"method": "POST", "url": "http://test/v1/auth/login", "correlation_id": "0391e793-7041-4321-9264-4c4695ba61f7", "user_agent": "python-httpx/0.25.2", "remote_addr": "127.0.0.1", "event": "Request iniciada", "logger": "app.main", "level": "info", "timestamp": "2026-02-23T16:43:50.306236Z"}
INFO app.api.v1.endpoints.auth:auth.py:59 {"email": "admin@test.com", "tenant_slug": "test-company", "event": "Login attempt", "logger": "app.api.v1.endpoints.auth", "level": "info", "timestamp": "2026-02-23T16:43:50.311213Z"}
INFO app.main:main.py:116 {"method": "POST", "url": "http://test/v1/auth/login", "status_code": 429, "duration": "0.007s", "correlation_id": "0391e793-7041-4321-9264-4c4695ba61f7", "event": "Request completada", "logger": "app.main", "level": "info", "timestamp": "2026-02-23T16:43:50.312786Z"}
INFO httpx:_client.py:1729 HTTP Request: POST http://test/v1/auth/login "HTTP/1.1 429 Too Many Requests"
________________ TestBasicEndpoints.test_login_endpoint_exists _________________
tests/integration/test_setup_verification.py:56: in test_login_endpoint_exists
assert response.status_code in (401, 404, 422)
E assert 429 in (401, 404, 422)
E + where 429 = <Response [429 Too Many Requests]>.status_code
----------------------------- Captured stdout call -----------------------------
{"event": "{\"method\": \"POST\", \"url\": \"http://test/v1/auth/login\", \"correlation_id\": \"06b564d2-78c1-48d3-bf4a-a3a01c4b71ce\", \"user_agent\": \"python-httpx/0.25.2\", \"remote_addr\": \"127.0.0.1\", \"event\": \"Request iniciada\", \"logger\": \"app.main\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:44:09.150340Z\"}"}
{"event": "{\"email\": \"nonexistent@test.com\", \"tenant_slug\": \"nonexistent\", \"event\": \"Login attempt\", \"logger\": \"app.api.v1.endpoints.auth\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:44:09.151867Z\"}"}
{"event": "{\"method\": \"POST\", \"url\": \"http://test/v1/auth/login\", \"status_code\": 429, \"duration\": \"0.003s\", \"correlation_id\": \"06b564d2-78c1-48d3-bf4a-a3a01c4b71ce\", \"event\": \"Request completada\", \"logger\": \"app.main\", \"level\": \"info\", \"timestamp\": \"2026-02-23T16:44:09.153302Z\"}"}
{"event": "HTTP Request: POST http://test/v1/auth/login \"HTTP/1.1 429 Too Many Requests\""}
------------------------------ Captured log call -------------------------------
INFO app.main:main.py:102 {"method": "POST", "url": "http://test/v1/auth/login", "correlation_id": "06b564d2-78c1-48d3-bf4a-a3a01c4b71ce", "user_agent": "python-httpx/0.25.2", "remote_addr": "127.0.0.1", "event": "Request iniciada", "logger": "app.main", "level": "info", "timestamp": "2026-02-23T16:44:09.150340Z"}
INFO app.api.v1.endpoints.auth:auth.py:59 {"email": "nonexistent@test.com", "tenant_slug": "nonexistent", "event": "Login attempt", "logger": "app.api.v1.endpoints.auth", "level": "info", "timestamp": "2026-02-23T16:44:09.151867Z"}
INFO app.main:main.py:116 {"method": "POST", "url": "http://test/v1/auth/login", "status_code": 429, "duration": "0.003s", "correlation_id": "06b564d2-78c1-48d3-bf4a-a3a01c4b71ce", "event": "Request completada", "logger": "app.main", "level": "info", "timestamp": "2026-02-23T16:44:09.153302Z"}
INFO httpx:_client.py:1729 HTTP Request: POST http://test/v1/auth/login "HTTP/1.1 429 Too Many Requests"
============================= slowest 10 durations =============================
1.27s setup tests/integration/test_auth_integration.py::TestAuthentication::test_login_success
0.74s setup tests/integration/test_tickets_integration.py::TestTicketPermissions::test_agent_can_see_all_tenant_tickets
0.71s setup tests/integration/test_setup_verification.py::TestSetupVerification::test_user_fixtures_work
0.61s setup tests/integration/test_tickets_integration.py::TestTicketCreation::test_create_ticket_invalid_priority
0.59s teardown tests/integration/test_auth_integration.py::TestAuthorization::test_protected_endpoint_without_token
0.54s setup tests/integration/test_tickets_integration.py::TestTicketPermissions::test_client_can_only_see_own_tickets
0.52s setup tests/integration/test_auth_integration.py::TestPasswordSecurity::test_password_not_exposed_in_response
0.51s setup tests/integration/test_multitenant_integration.py::TestTenantIsolation::test_user_cannot_see_other_tenant_tickets
0.51s setup tests/integration/test_tickets_integration.py::TestTicketUpdate::test_update_ticket_assignment
0.49s teardown tests/integration/test_auth_integration.py::TestAuthorization::test_client_cannot_access_admin_endpoint
=========================== short test summary info ============================
FAILED tests/integration/test_auth_integration.py::TestAuthentication::test_login_success - assert 429 == 200
FAILED tests/integration/test_auth_integration.py::TestAuthentication::test_login_invalid_password - assert 429 == 401
FAILED tests/integration/test_auth_integration.py::TestAuthentication::test_login_invalid_tenant_slug - assert 429 == 404
FAILED tests/integration/test_auth_integration.py::TestAuthentication::test_login_user_not_found - assert 429 == 401
FAILED tests/integration/test_auth_integration.py::TestAuthentication::test_login_inactive_user - assert 429 == 403
FAILED tests/integration/test_auth_integration.py::TestRefreshToken::test_refresh_token_success - assert 429 == 200
FAILED tests/integration/test_setup_verification.py::TestBasicEndpoints::test_login_endpoint_exists - assert 429 in (401, 404, 422)
ERROR tests/integration/test_auth_integration.py::TestRefreshToken::test_refresh_token_after_logout - assert 429 == 200
ERROR tests/integration/test_auth_integration.py::TestAuthorization::test_admin_can_access_admin_endpoint - assert 429 == 200
ERROR tests/integration/test_auth_integration.py::TestAuthorization::test_agent_cannot_access_admin_endpoint - assert 429 == 200
ERROR tests/integration/test_auth_integration.py::TestAuthorization::test_client_cannot_access_admin_endpoint - assert 429 == 200
ERROR tests/integration/test_auth_integration.py::TestUserProfile::test_get_current_user_profile - assert 429 == 200
ERROR tests/integration/test_auth_integration.py::TestPasswordSecurity::test_password_not_exposed_in_response - assert 429 == 200
ERROR tests/integration/test_multitenant_integration.py::TestTenantIsolation::test_user_cannot_see_other_tenant_tickets - assert 429 == 200
ERROR tests/integration/test_multitenant_integration.py::TestTenantIsolation::test_user_cannot_access_other_tenant_ticket_directly - assert 429 == 200
ERROR tests/integration/test_multitenant_integration.py::TestTenantIsolation::test_user_cannot_update_other_tenant_ticket - assert 429 == 200
ERROR tests/integration/test_multitenant_integration.py::TestTenantIsolation::test_middleware_validates_tenant_header - assert 429 == 200
ERROR tests/integration/test_multitenant_integration.py::TestTenantIsolation::test_middleware_rejects_invalid_tenant_uuid - assert 429 == 200
ERROR tests/integration/test_multitenant_integration.py::TestTenantIsolation::test_middleware_rejects_nonexistent_tenant - assert 429 == 200
ERROR tests/integration/test_multitenant_integration.py::TestTenantAdminEndpoints::test_admin_can_list_tenants - assert 429 == 200
ERROR tests/integration/test_multitenant_integration.py::TestTenantAdminEndpoints::test_non_admin_cannot_list_tenants - assert 429 == 200
ERROR tests/integration/test_multitenant_integration.py::TestTenantAdminEndpoints::test_admin_can_create_tenant - assert 429 == 200
ERROR tests/integration/test_multitenant_integration.py::TestCrossTenantuserAccess::test_user_from_tenant_a_cannot_impersonate_tenant_b - assert 429 == 200
ERROR tests/integration/test_setup_verification.py::TestSetupVerification::test_auth_token_generation - assert 429 == 200
ERROR tests/integration/test_tickets_integration.py::TestTicketCreation::test_create_ticket_success - assert 429 == 200
ERROR tests/integration/test_tickets_integration.py::TestTicketCreation::test_create_ticket_with_all_fields - assert 429 == 200
ERROR tests/integration/test_tickets_integration.py::TestTicketCreation::test_create_ticket_missing_required_fields - assert 429 == 200
ERROR tests/integration/test_tickets_integration.py::TestTicketCreation::test_create_ticket_invalid_priority - assert 429 == 200
ERROR tests/integration/test_tickets_integration.py::TestTicketRetrieval::test_list_tickets_empty - assert 429 == 200
ERROR tests/integration/test_tickets_integration.py::TestTicketRetrieval::test_list_tickets_with_data - assert 429 == 200
ERROR tests/integration/test_tickets_integration.py::TestTicketRetrieval::test_get_ticket_by_id - assert 429 == 200
ERROR tests/integration/test_tickets_integration.py::TestTicketRetrieval::test_get_nonexistent_ticket - assert 429 == 200
ERROR tests/integration/test_tickets_integration.py::TestTicketUpdate::test_update_ticket_status - assert 429 == 200
ERROR tests/integration/test_tickets_integration.py::TestTicketUpdate::test_update_ticket_priority - assert 429 == 200
ERROR tests/integration/test_tickets_integration.py::TestTicketUpdate::test_update_ticket_assignment - assert 429 == 200
ERROR tests/integration/test_tickets_integration.py::TestTicketFilters::test_filter_by_status - assert 429 == 200
ERROR tests/integration/test_tickets_integration.py::TestTicketFilters::test_filter_by_priority - assert 429 == 200
ERROR tests/integration/test_tickets_integration.py::TestTicketPermissions::test_client_can_create_ticket - assert 429 == 200
ERROR tests/integration/test_tickets_integration.py::TestTicketPermissions::test_client_can_only_see_own_tickets - assert 429 == 200
ERROR tests/integration/test_tickets_integration.py::TestTicketPermissions::test_agent_can_see_all_tenant_tickets - assert 429 == 200
======= 7 failed, 103 passed, 1 skipped, 1 warning, 33 errors in 41.18s ========