Files
service_manager/pytest_docker_last.txt

877 lines
241 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

============================= 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 ========