{"nodes": [{"id": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_py", "label": "test_subsonic_api.py", "file_type": "code", "source_file": "tests/test_subsonic_api.py", "source_location": "L1"}, {"id": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_db_reachable", "label": "_db_reachable()", "file_type": "code", "source_file": "tests/test_subsonic_api.py", "source_location": "L29", "_callable": true}, {"id": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_api", "label": "api()", "file_type": "code", "source_file": "tests/test_subsonic_api.py", "source_location": "L46", "_callable": true}, {"id": "path", "label": "Path", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/senko/Work/mcma-compose/mcma-backend/tests/test_subsonic_api.py"}, {"id": "asyncclient", "label": "AsyncClient", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/senko/Work/mcma-compose/mcma-backend/tests/test_subsonic_api.py"}, {"id": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_login", "label": "_login()", "file_type": "code", "source_file": "tests/test_subsonic_api.py", "source_location": "L89", "_callable": true}, {"id": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_subsonic_password", "label": "_subsonic_password()", "file_type": "code", "source_file": "tests/test_subsonic_api.py", "source_location": "L97", "_callable": true}, {"id": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_seed_track", "label": "_seed_track()", "file_type": "code", "source_file": "tests/test_subsonic_api.py", "source_location": "L105", "_callable": true}, {"id": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_auth_params", "label": "_auth_params()", "file_type": "code", "source_file": "tests/test_subsonic_api.py", "source_location": "L115", "_callable": true}, {"id": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_setup", "label": "_setup()", "file_type": "code", "source_file": "tests/test_subsonic_api.py", "source_location": "L121", "_callable": true}, {"id": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_test_ping_ok", "label": "test_ping_ok()", "file_type": "code", "source_file": "tests/test_subsonic_api.py", "source_location": "L128", "_callable": true}, {"id": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_test_ping_bad_credentials_returns_code_40", "label": "test_ping_bad_credentials_returns_code_40()", "file_type": "code", "source_file": "tests/test_subsonic_api.py", "source_location": "L135", "_callable": true}, {"id": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_test_ping_xml_default", "label": "test_ping_xml_default()", "file_type": "code", "source_file": "tests/test_subsonic_api.py", "source_location": "L148", "_callable": true}, {"id": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_test_get_artists", "label": "test_get_artists()", "file_type": "code", "source_file": "tests/test_subsonic_api.py", "source_location": "L158", "_callable": true}, {"id": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_test_get_album_list2", "label": "test_get_album_list2()", "file_type": "code", "source_file": "tests/test_subsonic_api.py", "source_location": "L166", "_callable": true}, {"id": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_test_search3_finds_song", "label": "test_search3_finds_song()", "file_type": "code", "source_file": "tests/test_subsonic_api.py", "source_location": "L174", "_callable": true}, {"id": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_test_get_song", "label": "test_get_song()", "file_type": "code", "source_file": "tests/test_subsonic_api.py", "source_location": "L182", "_callable": true}, {"id": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_test_stream_returns_audio", "label": "test_stream_returns_audio()", "file_type": "code", "source_file": "tests/test_subsonic_api.py", "source_location": "L189", "_callable": true}, {"id": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_test_get_cover_art_placeholder", "label": "test_get_cover_art_placeholder()", "file_type": "code", "source_file": "tests/test_subsonic_api.py", "source_location": "L197", "_callable": true}, {"id": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_test_playlist_lifecycle", "label": "test_playlist_lifecycle()", "file_type": "code", "source_file": "tests/test_subsonic_api.py", "source_location": "L204", "_callable": true}, {"id": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_test_star_and_scrobble", "label": "test_star_and_scrobble()", "file_type": "code", "source_file": "tests/test_subsonic_api.py", "source_location": "L223", "_callable": true}, {"id": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_rationale_1", "label": "Integration tests for the Subsonic /rest layer (happy path per endpoint group).", "file_type": "rationale", "source_file": "tests/test_subsonic_api.py", "source_location": "L1"}], "edges": [{"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_py", "target": "asyncio", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_api.py", "source_location": "L8", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_py", "target": "os", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_api.py", "source_location": "L9", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_py", "target": "collections_abc", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_api.py", "source_location": "L10", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_py", "target": "pathlib", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_api.py", "source_location": "L11", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_py", "target": "xml_etree", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_api.py", "source_location": "L12", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_py", "target": "pytest", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_api.py", "source_location": "L14", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_py", "target": "app_core_config", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_api.py", "source_location": "L15", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_py", "target": "app_infrastructure_db", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_api.py", "source_location": "L16", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_py", "target": "app_infrastructure_db_repositories", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_api.py", "source_location": "L17", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_py", "target": "asgi_lifespan", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_api.py", "source_location": "L21", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_py", "target": "httpx", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_api.py", "source_location": "L22", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_py", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_db_reachable", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_api.py", "source_location": "L29", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_py", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_api", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_api.py", "source_location": "L46", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_api", "target": "path", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_api.py", "source_location": "L46", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_api", "target": "asyncclient", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_api.py", "source_location": "L46", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_py", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_login", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_api.py", "source_location": "L89", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_login", "target": "asyncclient", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_api.py", "source_location": "L89", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_py", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_subsonic_password", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_api.py", "source_location": "L97", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_subsonic_password", "target": "asyncclient", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_api.py", "source_location": "L97", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_py", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_seed_track", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_api.py", "source_location": "L105", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_seed_track", "target": "asyncclient", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_api.py", "source_location": "L105", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_py", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_auth_params", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_api.py", "source_location": "L115", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_py", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_setup", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_api.py", "source_location": "L121", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_setup", "target": "asyncclient", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_api.py", "source_location": "L121", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_py", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_test_ping_ok", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_api.py", "source_location": "L128", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_test_ping_ok", "target": "asyncclient", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_api.py", "source_location": "L128", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_py", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_test_ping_bad_credentials_returns_code_40", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_api.py", "source_location": "L135", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_test_ping_bad_credentials_returns_code_40", "target": "asyncclient", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_api.py", "source_location": "L135", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_py", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_test_ping_xml_default", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_api.py", "source_location": "L148", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_test_ping_xml_default", "target": "asyncclient", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_api.py", "source_location": "L148", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_py", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_test_get_artists", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_api.py", "source_location": "L158", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_test_get_artists", "target": "asyncclient", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_api.py", "source_location": "L158", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_py", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_test_get_album_list2", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_api.py", "source_location": "L166", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_test_get_album_list2", "target": "asyncclient", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_api.py", "source_location": "L166", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_py", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_test_search3_finds_song", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_api.py", "source_location": "L174", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_test_search3_finds_song", "target": "asyncclient", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_api.py", "source_location": "L174", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_py", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_test_get_song", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_api.py", "source_location": "L182", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_test_get_song", "target": "asyncclient", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_api.py", "source_location": "L182", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_py", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_test_stream_returns_audio", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_api.py", "source_location": "L189", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_test_stream_returns_audio", "target": "asyncclient", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_api.py", "source_location": "L189", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_py", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_test_get_cover_art_placeholder", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_api.py", "source_location": "L197", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_test_get_cover_art_placeholder", "target": "asyncclient", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_api.py", "source_location": "L197", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_py", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_test_playlist_lifecycle", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_api.py", "source_location": "L204", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_test_playlist_lifecycle", "target": "asyncclient", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_api.py", "source_location": "L204", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_py", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_test_star_and_scrobble", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_api.py", "source_location": "L223", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_test_star_and_scrobble", "target": "asyncclient", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_api.py", "source_location": "L223", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_api", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_db_reachable", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_api.py", "source_location": "L47", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_api", "target": "asyncclient", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_api.py", "source_location": "L77", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_setup", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_login", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_api.py", "source_location": "L122", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_setup", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_subsonic_password", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_api.py", "source_location": "L123", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_setup", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_seed_track", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_api.py", "source_location": "L124", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_setup", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_auth_params", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_api.py", "source_location": "L125", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_test_ping_ok", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_setup", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_api.py", "source_location": "L129", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_test_ping_bad_credentials_returns_code_40", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_setup", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_api.py", "source_location": "L136", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_test_ping_xml_default", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_setup", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_api.py", "source_location": "L149", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_test_get_artists", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_setup", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_api.py", "source_location": "L159", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_test_get_album_list2", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_setup", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_api.py", "source_location": "L167", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_test_search3_finds_song", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_setup", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_api.py", "source_location": "L175", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_test_get_song", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_setup", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_api.py", "source_location": "L183", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_test_stream_returns_audio", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_setup", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_api.py", "source_location": "L190", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_test_get_cover_art_placeholder", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_setup", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_api.py", "source_location": "L198", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_test_playlist_lifecycle", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_setup", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_api.py", "source_location": "L205", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_test_star_and_scrobble", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_setup", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_api.py", "source_location": "L224", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_test_star_and_scrobble", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_login", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_api.py", "source_location": "L234", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_rationale_1", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_api.py", "source_location": "L1", "weight": 1.0}], "raw_calls": [{"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_db_reachable", "callee": "timeout", "is_member_call": true, "source_file": "tests/test_subsonic_api.py", "source_location": "L36", "receiver": "asyncio"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_db_reachable", "callee": "connect", "is_member_call": true, "source_file": "tests/test_subsonic_api.py", "source_location": "L37", "receiver": null}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_db_reachable", "callee": "get_engine", "is_member_call": false, "source_file": "tests/test_subsonic_api.py", "source_location": "L37", "receiver": null}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_db_reachable", "callee": "execute", "is_member_call": true, "source_file": "tests/test_subsonic_api.py", "source_location": "L38", "receiver": "conn"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_db_reachable", "callee": "text", "is_member_call": false, "source_file": "tests/test_subsonic_api.py", "source_location": "L38", "receiver": null}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_api", "callee": "skip", "is_member_call": true, "source_file": "tests/test_subsonic_api.py", "source_location": "L48", "receiver": "pytest"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_api", "callee": "cache_clear", "is_member_call": true, "source_file": "tests/test_subsonic_api.py", "source_location": "L51", "receiver": "get_settings"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_api", "callee": "begin", "is_member_call": true, "source_file": "tests/test_subsonic_api.py", "source_location": "L58", "receiver": null}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_api", "callee": "get_engine", "is_member_call": false, "source_file": "tests/test_subsonic_api.py", "source_location": "L58", "receiver": null}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_api", "callee": "run_sync", "is_member_call": true, "source_file": "tests/test_subsonic_api.py", "source_location": "L59", "receiver": "conn"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_api", "callee": "run_sync", "is_member_call": true, "source_file": "tests/test_subsonic_api.py", "source_location": "L60", "receiver": "conn"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_api", "callee": "session_scope", "is_member_call": false, "source_file": "tests/test_subsonic_api.py", "source_location": "L65", "receiver": null}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_api", "callee": "create_user", "is_member_call": true, "source_file": "tests/test_subsonic_api.py", "source_location": "L66", "receiver": null}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_api", "callee": "UserService", "is_member_call": false, "source_file": "tests/test_subsonic_api.py", "source_location": "L66", "receiver": null}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_api", "callee": "SqlAlchemyUserRepository", "is_member_call": false, "source_file": "tests/test_subsonic_api.py", "source_location": "L67", "receiver": null}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_api", "callee": "session", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "tests/test_subsonic_api.py", "source_location": "L67"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_api", "callee": "SqlAlchemyRefreshTokenRepository", "is_member_call": false, "source_file": "tests/test_subsonic_api.py", "source_location": "L68", "receiver": null}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_api", "callee": "session", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "tests/test_subsonic_api.py", "source_location": "L68"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_api", "callee": "Argon2PasswordHasher", "is_member_call": false, "source_file": "tests/test_subsonic_api.py", "source_location": "L69", "receiver": null}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_api", "callee": "create_app", "is_member_call": false, "source_file": "tests/test_subsonic_api.py", "source_location": "L74", "receiver": null}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_api", "callee": "LifespanManager", "is_member_call": false, "source_file": "tests/test_subsonic_api.py", "source_location": "L75", "receiver": null}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_api", "callee": "ASGITransport", "is_member_call": false, "source_file": "tests/test_subsonic_api.py", "source_location": "L76", "receiver": null}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_api", "callee": "begin", "is_member_call": true, "source_file": "tests/test_subsonic_api.py", "source_location": "L80", "receiver": null}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_api", "callee": "get_engine", "is_member_call": false, "source_file": "tests/test_subsonic_api.py", "source_location": "L80", "receiver": null}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_api", "callee": "run_sync", "is_member_call": true, "source_file": "tests/test_subsonic_api.py", "source_location": "L81", "receiver": "conn"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_api", "callee": "dispose_engine", "is_member_call": false, "source_file": "tests/test_subsonic_api.py", "source_location": "L82", "receiver": null}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_api", "callee": "pop", "is_member_call": true, "source_file": "tests/test_subsonic_api.py", "source_location": "L85", "receiver": null}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_api", "callee": "cache_clear", "is_member_call": true, "source_file": "tests/test_subsonic_api.py", "source_location": "L86", "receiver": "get_settings"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_login", "callee": "post", "is_member_call": true, "source_file": "tests/test_subsonic_api.py", "source_location": "L90", "receiver": "api"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_login", "callee": "json", "is_member_call": true, "source_file": "tests/test_subsonic_api.py", "source_location": "L94", "receiver": "resp"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_subsonic_password", "callee": "get", "is_member_call": true, "source_file": "tests/test_subsonic_api.py", "source_location": "L98", "receiver": "api"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_subsonic_password", "callee": "json", "is_member_call": true, "source_file": "tests/test_subsonic_api.py", "source_location": "L102", "receiver": "resp"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_seed_track", "callee": "post", "is_member_call": true, "source_file": "tests/test_subsonic_api.py", "source_location": "L106", "receiver": "api"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_seed_track", "callee": "json", "is_member_call": true, "source_file": "tests/test_subsonic_api.py", "source_location": "L112", "receiver": "resp"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_test_ping_ok", "callee": "get", "is_member_call": true, "source_file": "tests/test_subsonic_api.py", "source_location": "L130", "receiver": "api"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_test_ping_ok", "callee": "json", "is_member_call": true, "source_file": "tests/test_subsonic_api.py", "source_location": "L132", "receiver": "resp"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_test_ping_bad_credentials_returns_code_40", "callee": "get", "is_member_call": true, "source_file": "tests/test_subsonic_api.py", "source_location": "L137", "receiver": "api"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_test_ping_bad_credentials_returns_code_40", "callee": "json", "is_member_call": true, "source_file": "tests/test_subsonic_api.py", "source_location": "L143", "receiver": "resp"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_test_ping_xml_default", "callee": "items", "is_member_call": true, "source_file": "tests/test_subsonic_api.py", "source_location": "L150", "receiver": "params"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_test_ping_xml_default", "callee": "get", "is_member_call": true, "source_file": "tests/test_subsonic_api.py", "source_location": "L151", "receiver": "api"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_test_ping_xml_default", "callee": "startswith", "is_member_call": true, "source_file": "tests/test_subsonic_api.py", "source_location": "L153", "receiver": null}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_test_ping_xml_default", "callee": "fromstring", "is_member_call": true, "source_file": "tests/test_subsonic_api.py", "source_location": "L154", "receiver": "ET"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_test_get_artists", "callee": "get", "is_member_call": true, "source_file": "tests/test_subsonic_api.py", "source_location": "L160", "receiver": "api"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_test_get_artists", "callee": "json", "is_member_call": true, "source_file": "tests/test_subsonic_api.py", "source_location": "L161", "receiver": "resp"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_test_get_album_list2", "callee": "get", "is_member_call": true, "source_file": "tests/test_subsonic_api.py", "source_location": "L168", "receiver": "api"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_test_get_album_list2", "callee": "json", "is_member_call": true, "source_file": "tests/test_subsonic_api.py", "source_location": "L169", "receiver": "resp"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_test_search3_finds_song", "callee": "get", "is_member_call": true, "source_file": "tests/test_subsonic_api.py", "source_location": "L176", "receiver": "api"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_test_search3_finds_song", "callee": "json", "is_member_call": true, "source_file": "tests/test_subsonic_api.py", "source_location": "L177", "receiver": "resp"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_test_search3_finds_song", "callee": "get", "is_member_call": true, "source_file": "tests/test_subsonic_api.py", "source_location": "L178", "receiver": "result"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_test_get_song", "callee": "get", "is_member_call": true, "source_file": "tests/test_subsonic_api.py", "source_location": "L184", "receiver": "api"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_test_get_song", "callee": "json", "is_member_call": true, "source_file": "tests/test_subsonic_api.py", "source_location": "L185", "receiver": "resp"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_test_stream_returns_audio", "callee": "get", "is_member_call": true, "source_file": "tests/test_subsonic_api.py", "source_location": "L191", "receiver": "api"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_test_stream_returns_audio", "callee": "startswith", "is_member_call": true, "source_file": "tests/test_subsonic_api.py", "source_location": "L193", "receiver": null}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_test_get_cover_art_placeholder", "callee": "get", "is_member_call": true, "source_file": "tests/test_subsonic_api.py", "source_location": "L199", "receiver": "api"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_test_playlist_lifecycle", "callee": "get", "is_member_call": true, "source_file": "tests/test_subsonic_api.py", "source_location": "L207", "receiver": "api"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_test_playlist_lifecycle", "callee": "json", "is_member_call": true, "source_file": "tests/test_subsonic_api.py", "source_location": "L210", "receiver": "created"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_test_playlist_lifecycle", "callee": "get", "is_member_call": true, "source_file": "tests/test_subsonic_api.py", "source_location": "L215", "receiver": "api"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_test_playlist_lifecycle", "callee": "json", "is_member_call": true, "source_file": "tests/test_subsonic_api.py", "source_location": "L216", "receiver": "listed"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_test_playlist_lifecycle", "callee": "get", "is_member_call": true, "source_file": "tests/test_subsonic_api.py", "source_location": "L219", "receiver": "api"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_test_playlist_lifecycle", "callee": "json", "is_member_call": true, "source_file": "tests/test_subsonic_api.py", "source_location": "L220", "receiver": "deleted"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_test_star_and_scrobble", "callee": "get", "is_member_call": true, "source_file": "tests/test_subsonic_api.py", "source_location": "L225", "receiver": "api"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_test_star_and_scrobble", "callee": "json", "is_member_call": true, "source_file": "tests/test_subsonic_api.py", "source_location": "L226", "receiver": "star"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_test_star_and_scrobble", "callee": "get", "is_member_call": true, "source_file": "tests/test_subsonic_api.py", "source_location": "L228", "receiver": "api"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_test_star_and_scrobble", "callee": "json", "is_member_call": true, "source_file": "tests/test_subsonic_api.py", "source_location": "L231", "receiver": "scrobble"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_test_star_and_scrobble", "callee": "get", "is_member_call": true, "source_file": "tests/test_subsonic_api.py", "source_location": "L235", "receiver": "api"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_api_test_star_and_scrobble", "callee": "json", "is_member_call": true, "source_file": "tests/test_subsonic_api.py", "source_location": "L236", "receiver": "likes"}]}