Files
mcma-backend/graphify-out/cache/ast/v0.9.12/0f40ce1f634e46d43dee31c787b4ce60805c229ba80bf1f04f80bc074c5596ec.json
T
Senko-san fb5ce3c708
Docker Build & Publish / build (push) Successful in 1m11s
Docker Build & Publish / push (push) Failing after 7s
Docker Build & Publish / Prune old image versions (push) Has been skipped
chore: graphify!
2026-07-11 16:21:34 +03:00

1 line
30 KiB
JSON

{"nodes": [{"id": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_py", "label": "test_subsonic_auth.py", "file_type": "code", "source_file": "tests/test_subsonic_auth.py", "source_location": "L1"}, {"id": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_md5", "label": "_md5()", "file_type": "code", "source_file": "tests/test_subsonic_auth.py", "source_location": "L20", "_callable": true}, {"id": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_service_with_user", "label": "_service_with_user()", "file_type": "code", "source_file": "tests/test_subsonic_auth.py", "source_location": "L24", "_callable": true}, {"id": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_test_authenticate_token_salt_success", "label": "test_authenticate_token_salt_success()", "file_type": "code", "source_file": "tests/test_subsonic_auth.py", "source_location": "L36", "_callable": true}, {"id": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_test_authenticate_plain_password_success", "label": "test_authenticate_plain_password_success()", "file_type": "code", "source_file": "tests/test_subsonic_auth.py", "source_location": "L44", "_callable": true}, {"id": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_test_authenticate_enc_password_success", "label": "test_authenticate_enc_password_success()", "file_type": "code", "source_file": "tests/test_subsonic_auth.py", "source_location": "L52", "_callable": true}, {"id": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_test_authenticate_wrong_token_fails", "label": "test_authenticate_wrong_token_fails()", "file_type": "code", "source_file": "tests/test_subsonic_auth.py", "source_location": "L59", "_callable": true}, {"id": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_test_authenticate_wrong_password_fails", "label": "test_authenticate_wrong_password_fails()", "file_type": "code", "source_file": "tests/test_subsonic_auth.py", "source_location": "L67", "_callable": true}, {"id": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_test_authenticate_unknown_user_fails", "label": "test_authenticate_unknown_user_fails()", "file_type": "code", "source_file": "tests/test_subsonic_auth.py", "source_location": "L73", "_callable": true}, {"id": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_test_authenticate_inactive_user_fails", "label": "test_authenticate_inactive_user_fails()", "file_type": "code", "source_file": "tests/test_subsonic_auth.py", "source_location": "L81", "_callable": true}, {"id": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_test_authenticate_no_password_set_fails", "label": "test_authenticate_no_password_set_fails()", "file_type": "code", "source_file": "tests/test_subsonic_auth.py", "source_location": "L89", "_callable": true}, {"id": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_test_authenticate_missing_username_is_validation_error", "label": "test_authenticate_missing_username_is_validation_error()", "file_type": "code", "source_file": "tests/test_subsonic_auth.py", "source_location": "L97", "_callable": true}, {"id": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_test_authenticate_missing_credentials_is_validation_error", "label": "test_authenticate_missing_credentials_is_validation_error()", "file_type": "code", "source_file": "tests/test_subsonic_auth.py", "source_location": "L103", "_callable": true}, {"id": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_test_rotate_then_authenticate", "label": "test_rotate_then_authenticate()", "file_type": "code", "source_file": "tests/test_subsonic_auth.py", "source_location": "L109", "_callable": true}, {"id": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_test_reveal_generates_then_is_stable", "label": "test_reveal_generates_then_is_stable()", "file_type": "code", "source_file": "tests/test_subsonic_auth.py", "source_location": "L120", "_callable": true}, {"id": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_rationale_1", "label": "Unit tests for SubsonicAuthService \u2014 verification + app-password lifecycle. DB-", "file_type": "rationale", "source_file": "tests/test_subsonic_auth.py", "source_location": "L1"}], "edges": [{"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_py", "target": "hashlib", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_auth.py", "source_location": "L6", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_py", "target": "pytest", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_auth.py", "source_location": "L8", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_py", "target": "app_application_subsonic_auth_service", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_auth.py", "source_location": "L9", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_py", "target": "app_core_security", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_auth.py", "source_location": "L10", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_py", "target": "app_domain_errors", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_auth.py", "source_location": "L11", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_py", "target": "tests_fakes", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_auth.py", "source_location": "L13", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_py", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_md5", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_auth.py", "source_location": "L20", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_py", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_service_with_user", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_auth.py", "source_location": "L24", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_py", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_test_authenticate_token_salt_success", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_auth.py", "source_location": "L36", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_py", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_test_authenticate_plain_password_success", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_auth.py", "source_location": "L44", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_py", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_test_authenticate_enc_password_success", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_auth.py", "source_location": "L52", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_py", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_test_authenticate_wrong_token_fails", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_auth.py", "source_location": "L59", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_py", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_test_authenticate_wrong_password_fails", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_auth.py", "source_location": "L67", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_py", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_test_authenticate_unknown_user_fails", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_auth.py", "source_location": "L73", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_py", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_test_authenticate_inactive_user_fails", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_auth.py", "source_location": "L81", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_py", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_test_authenticate_no_password_set_fails", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_auth.py", "source_location": "L89", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_py", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_test_authenticate_missing_username_is_validation_error", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_auth.py", "source_location": "L97", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_py", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_test_authenticate_missing_credentials_is_validation_error", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_auth.py", "source_location": "L103", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_py", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_test_rotate_then_authenticate", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_auth.py", "source_location": "L109", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_py", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_test_reveal_generates_then_is_stable", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_auth.py", "source_location": "L120", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_test_authenticate_token_salt_success", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_service_with_user", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_auth.py", "source_location": "L37", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_test_authenticate_token_salt_success", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_md5", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_auth.py", "source_location": "L39", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_test_authenticate_plain_password_success", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_service_with_user", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_auth.py", "source_location": "L45", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_test_authenticate_enc_password_success", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_service_with_user", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_auth.py", "source_location": "L53", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_test_authenticate_wrong_token_fails", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_service_with_user", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_auth.py", "source_location": "L60", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_test_authenticate_wrong_token_fails", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_md5", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_auth.py", "source_location": "L63", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_test_authenticate_wrong_password_fails", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_service_with_user", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_auth.py", "source_location": "L68", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_test_authenticate_unknown_user_fails", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_service_with_user", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_auth.py", "source_location": "L74", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_test_authenticate_inactive_user_fails", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_service_with_user", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_auth.py", "source_location": "L82", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_test_authenticate_no_password_set_fails", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_service_with_user", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_auth.py", "source_location": "L90", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_test_authenticate_missing_username_is_validation_error", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_service_with_user", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_auth.py", "source_location": "L98", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_test_authenticate_missing_credentials_is_validation_error", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_service_with_user", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_auth.py", "source_location": "L104", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_rationale_1", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_subsonic_auth.py", "source_location": "L1", "weight": 1.0}], "raw_calls": [{"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_md5", "callee": "hexdigest", "is_member_call": true, "source_file": "tests/test_subsonic_auth.py", "source_location": "L21", "receiver": null}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_md5", "callee": "md5", "is_member_call": true, "source_file": "tests/test_subsonic_auth.py", "source_location": "L21", "receiver": "hashlib"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_md5", "callee": "encode", "is_member_call": true, "source_file": "tests/test_subsonic_auth.py", "source_location": "L21", "receiver": "value"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_service_with_user", "callee": "InMemoryUserRepository", "is_member_call": false, "source_file": "tests/test_subsonic_auth.py", "source_location": "L25", "receiver": null}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_service_with_user", "callee": "SubsonicPasswordCipher", "is_member_call": false, "source_file": "tests/test_subsonic_auth.py", "source_location": "L26", "receiver": null}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_service_with_user", "callee": "add", "is_member_call": true, "source_file": "tests/test_subsonic_auth.py", "source_location": "L27", "receiver": "users"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_service_with_user", "callee": "set_active", "is_member_call": true, "source_file": "tests/test_subsonic_auth.py", "source_location": "L29", "receiver": "users"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_service_with_user", "callee": "set_subsonic_password_enc", "is_member_call": true, "source_file": "tests/test_subsonic_auth.py", "source_location": "L31", "receiver": "users"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_service_with_user", "callee": "encrypt", "is_member_call": true, "source_file": "tests/test_subsonic_auth.py", "source_location": "L31", "receiver": "cipher"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_service_with_user", "callee": "SubsonicAuthService", "is_member_call": false, "source_file": "tests/test_subsonic_auth.py", "source_location": "L32", "receiver": null}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_test_authenticate_token_salt_success", "callee": "authenticate", "is_member_call": true, "source_file": "tests/test_subsonic_auth.py", "source_location": "L40", "receiver": "service"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_test_authenticate_plain_password_success", "callee": "authenticate", "is_member_call": true, "source_file": "tests/test_subsonic_auth.py", "source_location": "L46", "receiver": "service"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_test_authenticate_plain_password_success", "callee": "_KNOWN_PASSWORD", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "tests/test_subsonic_auth.py", "source_location": "L47"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_test_authenticate_enc_password_success", "callee": "hex", "is_member_call": true, "source_file": "tests/test_subsonic_auth.py", "source_location": "L54", "receiver": null}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_test_authenticate_enc_password_success", "callee": "encode", "is_member_call": true, "source_file": "tests/test_subsonic_auth.py", "source_location": "L54", "receiver": "_KNOWN_PASSWORD"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_test_authenticate_enc_password_success", "callee": "authenticate", "is_member_call": true, "source_file": "tests/test_subsonic_auth.py", "source_location": "L55", "receiver": "service"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_test_authenticate_wrong_token_fails", "callee": "raises", "is_member_call": true, "source_file": "tests/test_subsonic_auth.py", "source_location": "L61", "receiver": "pytest"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_test_authenticate_wrong_token_fails", "callee": "AuthenticationError", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "tests/test_subsonic_auth.py", "source_location": "L61"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_test_authenticate_wrong_token_fails", "callee": "authenticate", "is_member_call": true, "source_file": "tests/test_subsonic_auth.py", "source_location": "L62", "receiver": "service"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_test_authenticate_wrong_password_fails", "callee": "raises", "is_member_call": true, "source_file": "tests/test_subsonic_auth.py", "source_location": "L69", "receiver": "pytest"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_test_authenticate_wrong_password_fails", "callee": "AuthenticationError", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "tests/test_subsonic_auth.py", "source_location": "L69"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_test_authenticate_wrong_password_fails", "callee": "authenticate", "is_member_call": true, "source_file": "tests/test_subsonic_auth.py", "source_location": "L70", "receiver": "service"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_test_authenticate_unknown_user_fails", "callee": "raises", "is_member_call": true, "source_file": "tests/test_subsonic_auth.py", "source_location": "L75", "receiver": "pytest"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_test_authenticate_unknown_user_fails", "callee": "AuthenticationError", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "tests/test_subsonic_auth.py", "source_location": "L75"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_test_authenticate_unknown_user_fails", "callee": "authenticate", "is_member_call": true, "source_file": "tests/test_subsonic_auth.py", "source_location": "L76", "receiver": "service"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_test_authenticate_unknown_user_fails", "callee": "_KNOWN_PASSWORD", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "tests/test_subsonic_auth.py", "source_location": "L77"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_test_authenticate_inactive_user_fails", "callee": "raises", "is_member_call": true, "source_file": "tests/test_subsonic_auth.py", "source_location": "L83", "receiver": "pytest"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_test_authenticate_inactive_user_fails", "callee": "AuthenticationError", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "tests/test_subsonic_auth.py", "source_location": "L83"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_test_authenticate_inactive_user_fails", "callee": "authenticate", "is_member_call": true, "source_file": "tests/test_subsonic_auth.py", "source_location": "L84", "receiver": "service"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_test_authenticate_inactive_user_fails", "callee": "_KNOWN_PASSWORD", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "tests/test_subsonic_auth.py", "source_location": "L85"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_test_authenticate_no_password_set_fails", "callee": "raises", "is_member_call": true, "source_file": "tests/test_subsonic_auth.py", "source_location": "L91", "receiver": "pytest"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_test_authenticate_no_password_set_fails", "callee": "AuthenticationError", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "tests/test_subsonic_auth.py", "source_location": "L91"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_test_authenticate_no_password_set_fails", "callee": "authenticate", "is_member_call": true, "source_file": "tests/test_subsonic_auth.py", "source_location": "L92", "receiver": "service"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_test_authenticate_no_password_set_fails", "callee": "_KNOWN_PASSWORD", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "tests/test_subsonic_auth.py", "source_location": "L93"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_test_authenticate_missing_username_is_validation_error", "callee": "raises", "is_member_call": true, "source_file": "tests/test_subsonic_auth.py", "source_location": "L99", "receiver": "pytest"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_test_authenticate_missing_username_is_validation_error", "callee": "ValidationError", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "tests/test_subsonic_auth.py", "source_location": "L99"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_test_authenticate_missing_username_is_validation_error", "callee": "authenticate", "is_member_call": true, "source_file": "tests/test_subsonic_auth.py", "source_location": "L100", "receiver": "service"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_test_authenticate_missing_username_is_validation_error", "callee": "_KNOWN_PASSWORD", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "tests/test_subsonic_auth.py", "source_location": "L100"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_test_authenticate_missing_credentials_is_validation_error", "callee": "raises", "is_member_call": true, "source_file": "tests/test_subsonic_auth.py", "source_location": "L105", "receiver": "pytest"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_test_authenticate_missing_credentials_is_validation_error", "callee": "ValidationError", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "tests/test_subsonic_auth.py", "source_location": "L105"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_test_authenticate_missing_credentials_is_validation_error", "callee": "authenticate", "is_member_call": true, "source_file": "tests/test_subsonic_auth.py", "source_location": "L106", "receiver": "service"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_test_rotate_then_authenticate", "callee": "InMemoryUserRepository", "is_member_call": false, "source_file": "tests/test_subsonic_auth.py", "source_location": "L110", "receiver": null}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_test_rotate_then_authenticate", "callee": "SubsonicPasswordCipher", "is_member_call": false, "source_file": "tests/test_subsonic_auth.py", "source_location": "L111", "receiver": null}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_test_rotate_then_authenticate", "callee": "add", "is_member_call": true, "source_file": "tests/test_subsonic_auth.py", "source_location": "L112", "receiver": "users"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_test_rotate_then_authenticate", "callee": "SubsonicAuthService", "is_member_call": false, "source_file": "tests/test_subsonic_auth.py", "source_location": "L113", "receiver": null}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_test_rotate_then_authenticate", "callee": "rotate", "is_member_call": true, "source_file": "tests/test_subsonic_auth.py", "source_location": "L115", "receiver": "service"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_test_rotate_then_authenticate", "callee": "authenticate", "is_member_call": true, "source_file": "tests/test_subsonic_auth.py", "source_location": "L116", "receiver": "service"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_test_reveal_generates_then_is_stable", "callee": "InMemoryUserRepository", "is_member_call": false, "source_file": "tests/test_subsonic_auth.py", "source_location": "L121", "receiver": null}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_test_reveal_generates_then_is_stable", "callee": "SubsonicPasswordCipher", "is_member_call": false, "source_file": "tests/test_subsonic_auth.py", "source_location": "L122", "receiver": null}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_test_reveal_generates_then_is_stable", "callee": "add", "is_member_call": true, "source_file": "tests/test_subsonic_auth.py", "source_location": "L123", "receiver": "users"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_test_reveal_generates_then_is_stable", "callee": "SubsonicAuthService", "is_member_call": false, "source_file": "tests/test_subsonic_auth.py", "source_location": "L124", "receiver": null}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_test_reveal_generates_then_is_stable", "callee": "reveal", "is_member_call": true, "source_file": "tests/test_subsonic_auth.py", "source_location": "L126", "receiver": "service"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_test_reveal_generates_then_is_stable", "callee": "reveal", "is_member_call": true, "source_file": "tests/test_subsonic_auth.py", "source_location": "L127", "receiver": "service"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_subsonic_auth_test_reveal_generates_then_is_stable", "callee": "rotate", "is_member_call": true, "source_file": "tests/test_subsonic_auth.py", "source_location": "L130", "receiver": "service"}]}