{"nodes": [{"id": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_py", "label": "test_auth_api.py", "file_type": "code", "source_file": "tests/test_auth_api.py", "source_location": "L1"}, {"id": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_db_reachable", "label": "_db_reachable()", "file_type": "code", "source_file": "tests/test_auth_api.py", "source_location": "L25", "_callable": true}, {"id": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_api", "label": "api()", "file_type": "code", "source_file": "tests/test_auth_api.py", "source_location": "L46", "_callable": true}, {"id": "asyncclient", "label": "AsyncClient", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/senko/Work/mcma-compose/mcma-backend/tests/test_auth_api.py"}, {"id": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_login", "label": "_login()", "file_type": "code", "source_file": "tests/test_auth_api.py", "source_location": "L79", "_callable": true}, {"id": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_test_login_and_me", "label": "test_login_and_me()", "file_type": "code", "source_file": "tests/test_auth_api.py", "source_location": "L86", "_callable": true}, {"id": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_test_login_bad_credentials", "label": "test_login_bad_credentials()", "file_type": "code", "source_file": "tests/test_auth_api.py", "source_location": "L94", "_callable": true}, {"id": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_test_me_requires_token", "label": "test_me_requires_token()", "file_type": "code", "source_file": "tests/test_auth_api.py", "source_location": "L99", "_callable": true}, {"id": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_test_refresh_rotation", "label": "test_refresh_rotation()", "file_type": "code", "source_file": "tests/test_auth_api.py", "source_location": "L104", "_callable": true}, {"id": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_test_logout_revokes", "label": "test_logout_revokes()", "file_type": "code", "source_file": "tests/test_auth_api.py", "source_location": "L116", "_callable": true}, {"id": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_test_admin_creates_user_and_nonadmin_forbidden", "label": "test_admin_creates_user_and_nonadmin_forbidden()", "file_type": "code", "source_file": "tests/test_auth_api.py", "source_location": "L124", "_callable": true}, {"id": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_test_admin_create_duplicate_conflicts", "label": "test_admin_create_duplicate_conflicts()", "file_type": "code", "source_file": "tests/test_auth_api.py", "source_location": "L144", "_callable": true}, {"id": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_test_register_creates_user_and_logs_in", "label": "test_register_creates_user_and_logs_in()", "file_type": "code", "source_file": "tests/test_auth_api.py", "source_location": "L155", "_callable": true}, {"id": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_test_register_duplicate_conflicts", "label": "test_register_duplicate_conflicts()", "file_type": "code", "source_file": "tests/test_auth_api.py", "source_location": "L171", "_callable": true}, {"id": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_test_register_short_password_rejected", "label": "test_register_short_password_rejected()", "file_type": "code", "source_file": "tests/test_auth_api.py", "source_location": "L179", "_callable": true}, {"id": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_test_register_disabled_forbidden", "label": "test_register_disabled_forbidden()", "file_type": "code", "source_file": "tests/test_auth_api.py", "source_location": "L187", "_callable": true}, {"id": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_test_deactivated_user_cannot_login", "label": "test_deactivated_user_cannot_login()", "file_type": "code", "source_file": "tests/test_auth_api.py", "source_location": "L202", "_callable": true}, {"id": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_rationale_1", "label": "Integration tests for the auth + admin HTTP surface. These require a reachable", "file_type": "rationale", "source_file": "tests/test_auth_api.py", "source_location": "L1"}], "edges": [{"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_py", "target": "asyncio", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_auth_api.py", "source_location": "L8", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_py", "target": "collections_abc", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_auth_api.py", "source_location": "L9", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_py", "target": "pytest", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_auth_api.py", "source_location": "L11", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_py", "target": "app_core_security", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_auth_api.py", "source_location": "L12", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_py", "target": "app_infrastructure_db", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_auth_api.py", "source_location": "L13", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_py", "target": "app_infrastructure_db_repositories", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_auth_api.py", "source_location": "L14", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_py", "target": "httpx", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_auth_api.py", "source_location": "L18", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_py", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_db_reachable", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_auth_api.py", "source_location": "L25", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_py", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_api", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_auth_api.py", "source_location": "L46", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_api", "target": "asyncclient", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "tests/test_auth_api.py", "source_location": "L46", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_py", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_login", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_auth_api.py", "source_location": "L79", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_login", "target": "asyncclient", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "tests/test_auth_api.py", "source_location": "L79", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_py", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_test_login_and_me", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_auth_api.py", "source_location": "L86", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_test_login_and_me", "target": "asyncclient", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "tests/test_auth_api.py", "source_location": "L86", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_py", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_test_login_bad_credentials", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_auth_api.py", "source_location": "L94", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_test_login_bad_credentials", "target": "asyncclient", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "tests/test_auth_api.py", "source_location": "L94", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_py", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_test_me_requires_token", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_auth_api.py", "source_location": "L99", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_test_me_requires_token", "target": "asyncclient", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "tests/test_auth_api.py", "source_location": "L99", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_py", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_test_refresh_rotation", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_auth_api.py", "source_location": "L104", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_test_refresh_rotation", "target": "asyncclient", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "tests/test_auth_api.py", "source_location": "L104", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_py", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_test_logout_revokes", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_auth_api.py", "source_location": "L116", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_test_logout_revokes", "target": "asyncclient", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "tests/test_auth_api.py", "source_location": "L116", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_py", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_test_admin_creates_user_and_nonadmin_forbidden", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_auth_api.py", "source_location": "L124", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_test_admin_creates_user_and_nonadmin_forbidden", "target": "asyncclient", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "tests/test_auth_api.py", "source_location": "L124", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_py", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_test_admin_create_duplicate_conflicts", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_auth_api.py", "source_location": "L144", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_test_admin_create_duplicate_conflicts", "target": "asyncclient", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "tests/test_auth_api.py", "source_location": "L144", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_py", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_test_register_creates_user_and_logs_in", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_auth_api.py", "source_location": "L155", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_test_register_creates_user_and_logs_in", "target": "asyncclient", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "tests/test_auth_api.py", "source_location": "L155", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_py", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_test_register_duplicate_conflicts", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_auth_api.py", "source_location": "L171", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_test_register_duplicate_conflicts", "target": "asyncclient", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "tests/test_auth_api.py", "source_location": "L171", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_py", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_test_register_short_password_rejected", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_auth_api.py", "source_location": "L179", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_test_register_short_password_rejected", "target": "asyncclient", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "tests/test_auth_api.py", "source_location": "L179", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_py", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_test_register_disabled_forbidden", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_auth_api.py", "source_location": "L187", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_test_register_disabled_forbidden", "target": "asyncclient", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "tests/test_auth_api.py", "source_location": "L187", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_py", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_test_deactivated_user_cannot_login", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_auth_api.py", "source_location": "L202", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_test_deactivated_user_cannot_login", "target": "asyncclient", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "tests/test_auth_api.py", "source_location": "L202", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_api", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_db_reachable", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "tests/test_auth_api.py", "source_location": "L47", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_api", "target": "asyncclient", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "tests/test_auth_api.py", "source_location": "L71", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_test_login_and_me", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_login", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "tests/test_auth_api.py", "source_location": "L87", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_test_refresh_rotation", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_login", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "tests/test_auth_api.py", "source_location": "L105", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_test_logout_revokes", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_login", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "tests/test_auth_api.py", "source_location": "L117", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_test_admin_creates_user_and_nonadmin_forbidden", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_login", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "tests/test_auth_api.py", "source_location": "L125", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_test_admin_create_duplicate_conflicts", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_login", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "tests/test_auth_api.py", "source_location": "L145", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_test_deactivated_user_cannot_login", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_login", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "tests/test_auth_api.py", "source_location": "L203", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_rationale_1", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_auth_api.py", "source_location": "L1", "weight": 1.0}], "raw_calls": [{"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_db_reachable", "callee": "timeout", "is_member_call": true, "source_file": "tests/test_auth_api.py", "source_location": "L36", "receiver": "asyncio"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_db_reachable", "callee": "connect", "is_member_call": true, "source_file": "tests/test_auth_api.py", "source_location": "L37", "receiver": null}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_db_reachable", "callee": "get_engine", "is_member_call": false, "source_file": "tests/test_auth_api.py", "source_location": "L37", "receiver": null}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_db_reachable", "callee": "execute", "is_member_call": true, "source_file": "tests/test_auth_api.py", "source_location": "L38", "receiver": "conn"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_db_reachable", "callee": "text", "is_member_call": false, "source_file": "tests/test_auth_api.py", "source_location": "L38", "receiver": null}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_api", "callee": "skip", "is_member_call": true, "source_file": "tests/test_auth_api.py", "source_location": "L48", "receiver": "pytest"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_api", "callee": "begin", "is_member_call": true, "source_file": "tests/test_auth_api.py", "source_location": "L51", "receiver": null}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_api", "callee": "get_engine", "is_member_call": false, "source_file": "tests/test_auth_api.py", "source_location": "L51", "receiver": null}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_api", "callee": "run_sync", "is_member_call": true, "source_file": "tests/test_auth_api.py", "source_location": "L52", "receiver": "conn"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_api", "callee": "run_sync", "is_member_call": true, "source_file": "tests/test_auth_api.py", "source_location": "L53", "receiver": "conn"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_api", "callee": "session_scope", "is_member_call": false, "source_file": "tests/test_auth_api.py", "source_location": "L58", "receiver": null}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_api", "callee": "create_user", "is_member_call": true, "source_file": "tests/test_auth_api.py", "source_location": "L59", "receiver": null}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_api", "callee": "UserService", "is_member_call": false, "source_file": "tests/test_auth_api.py", "source_location": "L59", "receiver": null}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_api", "callee": "SqlAlchemyUserRepository", "is_member_call": false, "source_file": "tests/test_auth_api.py", "source_location": "L60", "receiver": null}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_api", "callee": "session", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "tests/test_auth_api.py", "source_location": "L60"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_api", "callee": "SqlAlchemyRefreshTokenRepository", "is_member_call": false, "source_file": "tests/test_auth_api.py", "source_location": "L61", "receiver": null}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_api", "callee": "session", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "tests/test_auth_api.py", "source_location": "L61"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_api", "callee": "Argon2PasswordHasher", "is_member_call": false, "source_file": "tests/test_auth_api.py", "source_location": "L62", "receiver": null}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_api", "callee": "create_app", "is_member_call": false, "source_file": "tests/test_auth_api.py", "source_location": "L68", "receiver": null}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_api", "callee": "LifespanManager", "is_member_call": false, "source_file": "tests/test_auth_api.py", "source_location": "L69", "receiver": null}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_api", "callee": "ASGITransport", "is_member_call": false, "source_file": "tests/test_auth_api.py", "source_location": "L70", "receiver": null}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_api", "callee": "begin", "is_member_call": true, "source_file": "tests/test_auth_api.py", "source_location": "L74", "receiver": null}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_api", "callee": "get_engine", "is_member_call": false, "source_file": "tests/test_auth_api.py", "source_location": "L74", "receiver": null}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_api", "callee": "run_sync", "is_member_call": true, "source_file": "tests/test_auth_api.py", "source_location": "L75", "receiver": "conn"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_api", "callee": "dispose_engine", "is_member_call": false, "source_file": "tests/test_auth_api.py", "source_location": "L76", "receiver": null}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_login", "callee": "post", "is_member_call": true, "source_file": "tests/test_auth_api.py", "source_location": "L80", "receiver": "api"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_login", "callee": "json", "is_member_call": true, "source_file": "tests/test_auth_api.py", "source_location": "L82", "receiver": "resp"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_test_login_and_me", "callee": "get", "is_member_call": true, "source_file": "tests/test_auth_api.py", "source_location": "L88", "receiver": "api"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_test_login_and_me", "callee": "json", "is_member_call": true, "source_file": "tests/test_auth_api.py", "source_location": "L90", "receiver": "resp"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_test_login_and_me", "callee": "json", "is_member_call": true, "source_file": "tests/test_auth_api.py", "source_location": "L91", "receiver": "resp"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_test_login_bad_credentials", "callee": "post", "is_member_call": true, "source_file": "tests/test_auth_api.py", "source_location": "L95", "receiver": "api"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_test_me_requires_token", "callee": "get", "is_member_call": true, "source_file": "tests/test_auth_api.py", "source_location": "L100", "receiver": "api"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_test_refresh_rotation", "callee": "post", "is_member_call": true, "source_file": "tests/test_auth_api.py", "source_location": "L106", "receiver": "api"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_test_refresh_rotation", "callee": "json", "is_member_call": true, "source_file": "tests/test_auth_api.py", "source_location": "L108", "receiver": "resp"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_test_refresh_rotation", "callee": "post", "is_member_call": true, "source_file": "tests/test_auth_api.py", "source_location": "L112", "receiver": "api"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_test_logout_revokes", "callee": "post", "is_member_call": true, "source_file": "tests/test_auth_api.py", "source_location": "L118", "receiver": "api"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_test_logout_revokes", "callee": "post", "is_member_call": true, "source_file": "tests/test_auth_api.py", "source_location": "L120", "receiver": "api"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_test_admin_creates_user_and_nonadmin_forbidden", "callee": "post", "is_member_call": true, "source_file": "tests/test_auth_api.py", "source_location": "L128", "receiver": "api"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_test_admin_creates_user_and_nonadmin_forbidden", "callee": "json", "is_member_call": true, "source_file": "tests/test_auth_api.py", "source_location": "L134", "receiver": "created"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_test_admin_creates_user_and_nonadmin_forbidden", "callee": "get", "is_member_call": true, "source_file": "tests/test_auth_api.py", "source_location": "L138", "receiver": "api"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_test_admin_create_duplicate_conflicts", "callee": "post", "is_member_call": true, "source_file": "tests/test_auth_api.py", "source_location": "L149", "receiver": "api"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_test_admin_create_duplicate_conflicts", "callee": "post", "is_member_call": true, "source_file": "tests/test_auth_api.py", "source_location": "L151", "receiver": "api"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_test_register_creates_user_and_logs_in", "callee": "post", "is_member_call": true, "source_file": "tests/test_auth_api.py", "source_location": "L156", "receiver": "api"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_test_register_creates_user_and_logs_in", "callee": "json", "is_member_call": true, "source_file": "tests/test_auth_api.py", "source_location": "L161", "receiver": "resp"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_test_register_creates_user_and_logs_in", "callee": "json", "is_member_call": true, "source_file": "tests/test_auth_api.py", "source_location": "L162", "receiver": "resp"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_test_register_creates_user_and_logs_in", "callee": "get", "is_member_call": true, "source_file": "tests/test_auth_api.py", "source_location": "L165", "receiver": "api"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_test_register_creates_user_and_logs_in", "callee": "json", "is_member_call": true, "source_file": "tests/test_auth_api.py", "source_location": "L167", "receiver": "me"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_test_register_creates_user_and_logs_in", "callee": "json", "is_member_call": true, "source_file": "tests/test_auth_api.py", "source_location": "L168", "receiver": "me"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_test_register_duplicate_conflicts", "callee": "post", "is_member_call": true, "source_file": "tests/test_auth_api.py", "source_location": "L173", "receiver": "api"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_test_register_duplicate_conflicts", "callee": "post", "is_member_call": true, "source_file": "tests/test_auth_api.py", "source_location": "L175", "receiver": "api"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_test_register_short_password_rejected", "callee": "post", "is_member_call": true, "source_file": "tests/test_auth_api.py", "source_location": "L180", "receiver": "api"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_test_register_disabled_forbidden", "callee": "get_settings", "is_member_call": false, "source_file": "tests/test_auth_api.py", "source_location": "L190", "receiver": null}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_test_register_disabled_forbidden", "callee": "post", "is_member_call": true, "source_file": "tests/test_auth_api.py", "source_location": "L193", "receiver": "api"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_test_deactivated_user_cannot_login", "callee": "post", "is_member_call": true, "source_file": "tests/test_auth_api.py", "source_location": "L205", "receiver": "api"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_test_deactivated_user_cannot_login", "callee": "json", "is_member_call": true, "source_file": "tests/test_auth_api.py", "source_location": "L210", "receiver": "created"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_test_deactivated_user_cannot_login", "callee": "delete", "is_member_call": true, "source_file": "tests/test_auth_api.py", "source_location": "L212", "receiver": "api"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_test_deactivated_user_cannot_login", "callee": "json", "is_member_call": true, "source_file": "tests/test_auth_api.py", "source_location": "L214", "receiver": "deactivate"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_auth_api_test_deactivated_user_cannot_login", "callee": "post", "is_member_call": true, "source_file": "tests/test_auth_api.py", "source_location": "L216", "receiver": "api"}]}