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