{"meta": {"format": 3, "version": "7.10.1", "timestamp": "2026-02-23T15:22:22.584028", "branch_coverage": false, "show_contexts": false}, "files": {"src/constants.py": {"executed_lines": [3, 4, 7, 15, 16, 17, 22, 23, 28, 33, 35, 36, 37, 45, 46, 47, 50, 53, 56, 62], "summary": {"covered_lines": 20, "num_statements": 22, "percent_covered": 90.9090909090909, "percent_covered_display": "91", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [38, 39], "excluded_lines": [], "functions": {"initialize_app": {"executed_lines": [35, 36, 37], "summary": {"covered_lines": 3, "num_statements": 5, "percent_covered": 60.0, "percent_covered_display": "60", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [38, 39], "excluded_lines": []}, "": {"executed_lines": [3, 4, 7, 15, 16, 17, 22, 23, 28, 33, 45, 46, 47, 50, 53, 56, 62], "summary": {"covered_lines": 17, "num_statements": 17, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [3, 4, 7, 15, 16, 17, 22, 23, 28, 33, 35, 36, 37, 45, 46, 47, 50, 53, 56, 62], "summary": {"covered_lines": 20, "num_statements": 22, "percent_covered": 90.9090909090909, "percent_covered_display": "91", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [38, 39], "excluded_lines": []}}}, "src/local_bip85/__init__.py": {"executed_lines": [3, 5, 7, 8, 15], "summary": {"covered_lines": 5, "num_statements": 8, "percent_covered": 62.5, "percent_covered_display": "62", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [9, 10, 11], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 5, 7, 8, 15], "summary": {"covered_lines": 5, "num_statements": 8, "percent_covered": 62.5, "percent_covered_display": "62", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [9, 10, 11], "excluded_lines": []}}, "classes": {"": {"executed_lines": [3, 5, 7, 8, 15], "summary": {"covered_lines": 5, "num_statements": 8, "percent_covered": 62.5, "percent_covered_display": "62", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [9, 10, 11], "excluded_lines": []}}}, "src/local_bip85/bip85.py": {"executed_lines": [3, 16, 17, 18, 19, 20, 21, 23, 25, 27, 28, 29, 32, 35, 36, 38, 41, 42, 50, 51, 52, 54, 55, 61, 86, 87, 88, 89, 90, 91, 94, 96, 97, 98, 99, 101, 102, 103, 105, 107, 118, 119, 120, 121, 122, 123, 125, 126, 127, 128, 129, 130, 132, 138, 139, 142, 143, 149, 151, 152, 153, 154], "summary": {"covered_lines": 60, "num_statements": 75, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 15, "excluded_lines": 0}, "missing_lines": [56, 57, 58, 59, 108, 111, 114, 144, 145, 146, 147, 155, 156, 157, 158], "excluded_lines": [], "functions": {"BIP85.__init__": {"executed_lines": [50, 51, 52, 54, 55], "summary": {"covered_lines": 5, "num_statements": 9, "percent_covered": 55.55555555555556, "percent_covered_display": "56", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [56, 57, 58, 59], "excluded_lines": []}, "BIP85.derive_entropy": {"executed_lines": [86, 87, 88, 89, 90, 91, 94, 96, 97, 98, 99, 101, 102, 103, 105, 107, 118, 119, 120, 121, 122, 123], "summary": {"covered_lines": 22, "num_statements": 25, "percent_covered": 88.0, "percent_covered_display": "88", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [108, 111, 114], "excluded_lines": []}, "BIP85.derive_mnemonic": {"executed_lines": [126, 127, 128, 129, 130, 132, 138, 139, 142, 143], "summary": {"covered_lines": 10, "num_statements": 14, "percent_covered": 71.42857142857143, "percent_covered_display": "71", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [144, 145, 146, 147], "excluded_lines": []}, "BIP85.derive_symmetric_key": {"executed_lines": [151, 152, 153, 154], "summary": {"covered_lines": 4, "num_statements": 8, "percent_covered": 50.0, "percent_covered_display": "50", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [155, 156, 157, 158], "excluded_lines": []}, "": {"executed_lines": [3, 16, 17, 18, 19, 20, 21, 23, 25, 27, 28, 29, 32, 35, 36, 38, 41, 42, 61, 125, 149], "summary": {"covered_lines": 19, "num_statements": 19, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Bip85Error": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "BIP85": {"executed_lines": [50, 51, 52, 54, 55, 86, 87, 88, 89, 90, 91, 94, 96, 97, 98, 99, 101, 102, 103, 105, 107, 118, 119, 120, 121, 122, 123, 126, 127, 128, 129, 130, 132, 138, 139, 142, 143, 151, 152, 153, 154], "summary": {"covered_lines": 41, "num_statements": 56, "percent_covered": 73.21428571428571, "percent_covered_display": "73", "missing_lines": 15, "excluded_lines": 0}, "missing_lines": [56, 57, 58, 59, 108, 111, 114, 144, 145, 146, 147, 155, 156, 157, 158], "excluded_lines": []}, "": {"executed_lines": [3, 16, 17, 18, 19, 20, 21, 23, 25, 27, 28, 29, 32, 35, 36, 38, 41, 42, 61, 125, 149], "summary": {"covered_lines": 19, "num_statements": 19, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/main.py": {"executed_lines": [2, 3, 6, 7, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 23, 24, 25, 26, 27, 28, 33, 40, 41, 42, 47, 49, 51, 58, 60, 61, 62, 71, 73, 74, 75, 76, 77, 78, 79, 80, 81, 84, 87, 88, 90, 91, 92, 93, 95, 96, 98, 101, 102, 104, 105, 106, 107, 108, 110, 112, 113, 116, 117, 134, 149, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 162, 165, 166, 172, 173, 174, 183, 184, 185, 186, 188, 189, 193, 194, 195, 200, 210, 223, 225, 226, 227, 231, 232, 233, 234, 236, 237, 241, 242, 245, 247, 248, 249, 250, 251, 252, 254, 271, 276, 282, 283, 284, 288, 289, 290, 291, 292, 298, 316, 324, 325, 326, 327, 328, 330, 331, 332, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 363, 372, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 389, 391, 393, 395, 398, 399, 400, 401, 402, 404, 405, 408, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 426, 427, 432, 435, 437, 438, 439, 449, 450, 457, 458, 459, 465, 470, 473, 490, 492, 493, 494, 495, 496, 501, 514, 516, 517, 520, 521, 524, 525, 526, 527, 530, 531, 532, 533, 534, 535, 542, 545, 547, 548, 551, 552, 553, 554, 557, 558, 559, 560, 563, 571, 572, 573, 574, 579, 582, 584, 585, 588, 590, 591, 592, 593, 598, 601, 635, 637, 638, 640, 641, 644, 651, 652, 657, 658, 659, 660, 661, 662, 663, 666, 672, 673, 676, 677, 678, 684, 733, 752, 754, 755, 756, 757, 758, 759, 760, 768, 769, 770, 775, 776, 777, 778, 781, 782, 783, 784, 785, 791, 792, 793, 794, 795, 796, 797, 803, 805, 806, 807, 808, 809, 810, 811, 819, 820, 825, 826, 827, 828, 831, 832, 833, 834, 840, 842, 843, 844, 845, 846, 847, 848, 856, 857, 862, 863, 864, 865, 868, 869, 870, 871, 872, 878, 917, 971, 973, 974, 979, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1006, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1019, 1020, 1023, 1026, 1029, 1032, 1037, 1040, 1041, 1042, 1043, 1046, 1049, 1056, 1058, 1061, 1064, 1067, 1068, 1073, 1081, 1092, 1093, 1094, 1095, 1096, 1097, 1102, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1117, 1118, 1119, 1123, 1124, 1126, 1129, 1130, 1131, 1132, 1133, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1165, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1183, 1184, 1187, 1190, 1193, 1196, 1199, 1202, 1205, 1208, 1209, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1234, 1237, 1247, 1248, 1249, 1250, 1251, 1253, 1254, 1255, 1256, 1260, 1265, 1270, 1276, 1278, 1279, 1280, 1286, 1287, 1289, 1290, 1292, 1293, 1295, 1296, 1298, 1300, 1301, 1302, 1310, 1311, 1312, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1327, 1328, 1329, 1335, 1338, 1339, 1340, 1350, 1352, 1355, 1356, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1368, 1369, 1370, 1371, 1372, 1373, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1403, 1404, 1405, 1406, 1407, 1416, 1418, 1430, 1431, 1433, 1434, 1470, 1473], "summary": {"covered_lines": 578, "num_statements": 1067, "percent_covered": 54.170571696344894, "percent_covered_display": "54", "missing_lines": 489, "excluded_lines": 5}, "missing_lines": [8, 63, 64, 124, 125, 126, 127, 128, 129, 131, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 161, 175, 181, 190, 191, 201, 202, 204, 205, 206, 207, 216, 217, 218, 219, 220, 228, 229, 238, 239, 257, 260, 261, 268, 270, 272, 273, 285, 286, 293, 294, 295, 302, 303, 304, 305, 306, 308, 309, 310, 311, 312, 313, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 365, 366, 388, 390, 392, 394, 396, 403, 428, 429, 430, 440, 446, 447, 453, 454, 455, 456, 466, 467, 468, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 497, 498, 503, 504, 505, 506, 507, 508, 509, 510, 511, 518, 519, 522, 523, 528, 529, 536, 537, 538, 539, 540, 549, 550, 555, 556, 561, 562, 564, 570, 575, 576, 577, 586, 587, 594, 595, 596, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 642, 643, 653, 654, 655, 656, 664, 665, 667, 668, 669, 670, 671, 674, 675, 679, 680, 681, 686, 687, 688, 689, 690, 691, 692, 693, 695, 696, 697, 698, 699, 701, 704, 705, 706, 707, 708, 709, 710, 711, 713, 714, 715, 716, 717, 718, 719, 720, 721, 723, 724, 725, 726, 727, 728, 729, 730, 735, 736, 737, 738, 739, 740, 741, 743, 744, 745, 746, 747, 749, 761, 762, 763, 764, 766, 767, 771, 772, 773, 774, 779, 780, 786, 787, 788, 789, 790, 798, 799, 800, 812, 813, 814, 815, 817, 818, 821, 822, 823, 824, 829, 830, 835, 836, 837, 849, 850, 851, 852, 854, 855, 858, 859, 860, 861, 866, 867, 873, 874, 875, 880, 881, 886, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 914, 919, 920, 921, 922, 923, 924, 925, 926, 927, 929, 930, 935, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 968, 1005, 1007, 1015, 1016, 1017, 1018, 1021, 1022, 1024, 1025, 1027, 1028, 1030, 1031, 1033, 1034, 1035, 1036, 1038, 1039, 1044, 1045, 1047, 1048, 1050, 1051, 1052, 1053, 1054, 1055, 1057, 1059, 1060, 1062, 1063, 1065, 1066, 1070, 1147, 1148, 1185, 1186, 1188, 1189, 1191, 1192, 1194, 1195, 1197, 1198, 1200, 1201, 1203, 1204, 1206, 1207, 1303, 1309, 1313, 1314, 1315, 1316, 1326, 1330, 1331, 1332, 1333, 1336, 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1351, 1353, 1374, 1391, 1408, 1409, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427, 1428, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1474], "excluded_lines": [333, 334, 367, 368, 369], "functions": {"_warn_missing_optional_dependencies": {"executed_lines": [60, 61, 62], "summary": {"covered_lines": 3, "num_statements": 5, "percent_covered": 60.0, "percent_covered_display": "60", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [63, 64], "excluded_lines": []}, "load_global_config": {"executed_lines": [73, 74, 75, 76, 77, 78, 79, 80, 81], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "configure_logging": {"executed_lines": [87, 88, 90, 91, 92, 93, 95, 96, 98, 101, 102, 104, 105, 106, 107, 108, 110, 112, 113], "summary": {"covered_lines": 19, "num_statements": 19, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "confirm_action": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 7, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 7, "excluded_lines": 0}, "missing_lines": [124, 125, 126, 127, 128, 129, 131], "excluded_lines": []}, "drain_notifications": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 11, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 11, "excluded_lines": 0}, "missing_lines": [136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146], "excluded_lines": []}, "get_notification_text": {"executed_lines": [151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 162], "summary": {"covered_lines": 11, "num_statements": 12, "percent_covered": 91.66666666666667, "percent_covered_display": "92", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [161], "excluded_lines": []}, "handle_switch_fingerprint": {"executed_lines": [172, 173, 174, 183, 184, 185, 186, 188, 189, 193, 194, 195, 200], "summary": {"covered_lines": 13, "num_statements": 23, "percent_covered": 56.52173913043478, "percent_covered_display": "57", "missing_lines": 10, "excluded_lines": 0}, "missing_lines": [175, 181, 190, 191, 201, 202, 204, 205, 206, 207], "excluded_lines": []}, "handle_add_new_fingerprint": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 0}, "missing_lines": [216, 217, 218, 219, 220], "excluded_lines": []}, "handle_remove_fingerprint": {"executed_lines": [225, 226, 227, 231, 232, 233, 234, 236, 237, 241, 242, 245, 247, 254, 271], "summary": {"covered_lines": 15, "num_statements": 26, "percent_covered": 57.69230769230769, "percent_covered_display": "58", "missing_lines": 11, "excluded_lines": 0}, "missing_lines": [228, 229, 238, 239, 257, 260, 261, 268, 270, 272, 273], "excluded_lines": []}, "handle_remove_fingerprint._cleanup_and_exit": {"executed_lines": [248, 249, 250, 251, 252], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "handle_list_fingerprints": {"executed_lines": [282, 283, 284, 288, 289, 290, 291, 292], "summary": {"covered_lines": 8, "num_statements": 13, "percent_covered": 61.53846153846154, "percent_covered_display": "62", "missing_lines": 5, "excluded_lines": 0}, "missing_lines": [285, 286, 293, 294, 295], "excluded_lines": []}, "handle_display_npub": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 11, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 11, "excluded_lines": 0}, "missing_lines": [302, 303, 304, 305, 306, 308, 309, 310, 311, 312, 313], "excluded_lines": []}, "_display_live_stats": {"executed_lines": [324, 325, 326, 327, 328, 330, 331, 332, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346], "summary": {"covered_lines": 19, "num_statements": 32, "percent_covered": 59.375, "percent_covered_display": "59", "missing_lines": 13, "excluded_lines": 2}, "missing_lines": [348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360], "excluded_lines": [333, 334]}, "handle_display_stats": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 3}, "missing_lines": [365, 366], "excluded_lines": [367, 368, 369]}, "print_matches": {"executed_lines": [377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 389, 391, 393, 395, 398, 399, 400, 401, 402, 404, 405], "summary": {"covered_lines": 22, "num_statements": 28, "percent_covered": 78.57142857142857, "percent_covered_display": "79", "missing_lines": 6, "excluded_lines": 0}, "missing_lines": [388, 390, 392, 394, 396, 403], "excluded_lines": []}, "handle_post_to_nostr": {"executed_lines": [414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 426, 427, 432], "summary": {"covered_lines": 14, "num_statements": 17, "percent_covered": 82.3529411764706, "percent_covered_display": "82", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [428, 429, 430], "excluded_lines": []}, "handle_retrieve_from_nostr": {"executed_lines": [437, 438, 439, 449, 450, 457, 458, 459, 465, 470], "summary": {"covered_lines": 10, "num_statements": 20, "percent_covered": 50.0, "percent_covered_display": "50", "missing_lines": 10, "excluded_lines": 0}, "missing_lines": [440, 446, 447, 453, 454, 455, 456, 466, 467, 468], "excluded_lines": []}, "handle_view_relays": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 13, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 13, "excluded_lines": 0}, "missing_lines": [475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487], "excluded_lines": []}, "_safe_close_client_pool": {"executed_lines": [492, 493, 494, 495, 496], "summary": {"covered_lines": 5, "num_statements": 7, "percent_covered": 71.42857142857143, "percent_covered_display": "71", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [497, 498], "excluded_lines": []}, "_reload_relays": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 9, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 9, "excluded_lines": 0}, "missing_lines": [503, 504, 505, 506, 507, 508, 509, 510, 511], "excluded_lines": []}, "handle_add_relay": {"executed_lines": [516, 517, 520, 521, 524, 525, 526, 527, 530, 531, 532, 533, 534, 535, 542], "summary": {"covered_lines": 15, "num_statements": 26, "percent_covered": 57.69230769230769, "percent_covered_display": "58", "missing_lines": 11, "excluded_lines": 0}, "missing_lines": [518, 519, 522, 523, 528, 529, 536, 537, 538, 539, 540], "excluded_lines": []}, "handle_remove_relay": {"executed_lines": [547, 548, 551, 552, 553, 554, 557, 558, 559, 560, 563, 571, 572, 573, 574, 579], "summary": {"covered_lines": 16, "num_statements": 27, "percent_covered": 59.25925925925926, "percent_covered_display": "59", "missing_lines": 11, "excluded_lines": 0}, "missing_lines": [549, 550, 555, 556, 561, 562, 564, 570, 575, 576, 577], "excluded_lines": []}, "handle_reset_relays": {"executed_lines": [584, 585, 588, 590, 591, 592, 593, 598], "summary": {"covered_lines": 8, "num_statements": 13, "percent_covered": 61.53846153846154, "percent_covered_display": "62", "missing_lines": 5, "excluded_lines": 0}, "missing_lines": [586, 587, 594, 595, 596], "excluded_lines": []}, "handle_set_inactivity_timeout": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 30, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 30, "excluded_lines": 0}, "missing_lines": [603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632], "excluded_lines": []}, "handle_set_kdf_iterations": {"executed_lines": [637, 638, 640, 641, 644, 651, 652, 657, 658, 659, 660, 661, 662, 663, 666, 672, 673, 676, 677, 678], "summary": {"covered_lines": 20, "num_statements": 38, "percent_covered": 52.63157894736842, "percent_covered_display": "53", "missing_lines": 18, "excluded_lines": 0}, "missing_lines": [642, 643, 653, 654, 655, 656, 664, 665, 667, 668, 669, 670, 671, 674, 675, 679, 680, 681], "excluded_lines": []}, "handle_set_additional_backup_location": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 39, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 39, "excluded_lines": 0}, "missing_lines": [686, 687, 688, 689, 690, 691, 692, 693, 695, 696, 697, 698, 699, 701, 704, 705, 706, 707, 708, 709, 710, 711, 713, 714, 715, 716, 717, 718, 719, 720, 721, 723, 724, 725, 726, 727, 728, 729, 730], "excluded_lines": []}, "handle_set_profile_name": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 13, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 13, "excluded_lines": 0}, "missing_lines": [735, 736, 737, 738, 739, 740, 741, 743, 744, 745, 746, 747, 749], "excluded_lines": []}, "handle_toggle_secret_mode": {"executed_lines": [754, 755, 756, 757, 758, 759, 760, 768, 769, 770, 775, 776, 777, 778, 781, 782, 783, 784, 785, 791, 792, 793, 794, 795, 796, 797], "summary": {"covered_lines": 26, "num_statements": 46, "percent_covered": 56.52173913043478, "percent_covered_display": "57", "missing_lines": 20, "excluded_lines": 0}, "missing_lines": [761, 762, 763, 764, 766, 767, 771, 772, 773, 774, 779, 780, 786, 787, 788, 789, 790, 798, 799, 800], "excluded_lines": []}, "handle_toggle_quick_unlock": {"executed_lines": [805, 806, 807, 808, 809, 810, 811, 819, 820, 825, 826, 827, 828, 831, 832, 833, 834], "summary": {"covered_lines": 17, "num_statements": 32, "percent_covered": 53.125, "percent_covered_display": "53", "missing_lines": 15, "excluded_lines": 0}, "missing_lines": [812, 813, 814, 815, 817, 818, 821, 822, 823, 824, 829, 830, 835, 836, 837], "excluded_lines": []}, "handle_toggle_offline_mode": {"executed_lines": [842, 843, 844, 845, 846, 847, 848, 856, 857, 862, 863, 864, 865, 868, 869, 870, 871, 872], "summary": {"covered_lines": 18, "num_statements": 33, "percent_covered": 54.54545454545455, "percent_covered_display": "55", "missing_lines": 15, "excluded_lines": 0}, "missing_lines": [849, 850, 851, 852, 854, 855, 858, 859, 860, 861, 866, 867, 873, 874, 875], "excluded_lines": []}, "handle_profiles_menu": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 25, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 25, "excluded_lines": 0}, "missing_lines": [880, 881, 886, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 914], "excluded_lines": []}, "handle_nostr_menu": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 39, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 39, "excluded_lines": 0}, "missing_lines": [919, 920, 921, 922, 923, 924, 925, 926, 927, 929, 930, 935, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 968], "excluded_lines": []}, "handle_settings": {"executed_lines": [973, 974, 979, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1006, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1019, 1020, 1023, 1026, 1029, 1032, 1037, 1040, 1041, 1042, 1043, 1046, 1049, 1056, 1058, 1061, 1064, 1067, 1068], "summary": {"covered_lines": 50, "num_statements": 88, "percent_covered": 56.81818181818182, "percent_covered_display": "57", "missing_lines": 38, "excluded_lines": 0}, "missing_lines": [1005, 1007, 1015, 1016, 1017, 1018, 1021, 1022, 1024, 1025, 1027, 1028, 1030, 1031, 1033, 1034, 1035, 1036, 1038, 1039, 1044, 1045, 1047, 1048, 1050, 1051, 1052, 1053, 1054, 1055, 1057, 1059, 1060, 1062, 1063, 1065, 1066, 1070], "excluded_lines": []}, "display_menu": {"executed_lines": [1081, 1092, 1093, 1094, 1095, 1096, 1097, 1102, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1117, 1118, 1119, 1123, 1124, 1126, 1129, 1130, 1131, 1132, 1133, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1165, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1183, 1184, 1187, 1190, 1193, 1196, 1199, 1202, 1205, 1208, 1209, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1234], "summary": {"covered_lines": 89, "num_statements": 107, "percent_covered": 83.17757009345794, "percent_covered_display": "83", "missing_lines": 18, "excluded_lines": 0}, "missing_lines": [1147, 1148, 1185, 1186, 1188, 1189, 1191, 1192, 1194, 1195, 1197, 1198, 1200, 1201, 1203, 1204, 1206, 1207], "excluded_lines": []}, "main": {"executed_lines": [1247, 1248, 1249, 1250, 1251, 1253, 1254, 1255, 1256, 1260, 1265, 1270, 1276, 1278, 1279, 1280, 1286, 1287, 1289, 1290, 1292, 1293, 1295, 1296, 1298, 1300, 1301, 1302, 1310, 1311, 1312, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1327, 1328, 1329, 1335, 1338, 1339, 1340, 1350, 1352, 1355, 1356, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1368, 1369, 1370, 1371, 1372, 1373, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1403, 1404, 1405, 1406, 1407, 1416, 1418, 1430, 1431, 1433, 1434, 1470], "summary": {"covered_lines": 100, "num_statements": 159, "percent_covered": 62.893081761006286, "percent_covered_display": "63", "missing_lines": 59, "excluded_lines": 0}, "missing_lines": [1303, 1309, 1313, 1314, 1315, 1316, 1326, 1330, 1331, 1332, 1333, 1336, 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1351, 1353, 1374, 1391, 1408, 1409, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469], "excluded_lines": []}, "main.signal_handler": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 10, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 10, "excluded_lines": 0}, "missing_lines": [1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427, 1428], "excluded_lines": []}, "": {"executed_lines": [2, 3, 6, 7, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 23, 24, 25, 26, 27, 28, 33, 40, 41, 42, 47, 49, 51, 58, 71, 84, 116, 117, 134, 149, 165, 166, 210, 223, 276, 298, 316, 363, 372, 408, 435, 473, 490, 501, 514, 545, 582, 601, 635, 684, 733, 752, 803, 840, 878, 917, 971, 1073, 1237, 1473], "summary": {"covered_lines": 66, "num_statements": 68, "percent_covered": 97.05882352941177, "percent_covered_display": "97", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [8, 1474], "excluded_lines": []}}, "classes": {"": {"executed_lines": [2, 3, 6, 7, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 23, 24, 25, 26, 27, 28, 33, 40, 41, 42, 47, 49, 51, 58, 60, 61, 62, 71, 73, 74, 75, 76, 77, 78, 79, 80, 81, 84, 87, 88, 90, 91, 92, 93, 95, 96, 98, 101, 102, 104, 105, 106, 107, 108, 110, 112, 113, 116, 117, 134, 149, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 162, 165, 166, 172, 173, 174, 183, 184, 185, 186, 188, 189, 193, 194, 195, 200, 210, 223, 225, 226, 227, 231, 232, 233, 234, 236, 237, 241, 242, 245, 247, 248, 249, 250, 251, 252, 254, 271, 276, 282, 283, 284, 288, 289, 290, 291, 292, 298, 316, 324, 325, 326, 327, 328, 330, 331, 332, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 363, 372, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 389, 391, 393, 395, 398, 399, 400, 401, 402, 404, 405, 408, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 426, 427, 432, 435, 437, 438, 439, 449, 450, 457, 458, 459, 465, 470, 473, 490, 492, 493, 494, 495, 496, 501, 514, 516, 517, 520, 521, 524, 525, 526, 527, 530, 531, 532, 533, 534, 535, 542, 545, 547, 548, 551, 552, 553, 554, 557, 558, 559, 560, 563, 571, 572, 573, 574, 579, 582, 584, 585, 588, 590, 591, 592, 593, 598, 601, 635, 637, 638, 640, 641, 644, 651, 652, 657, 658, 659, 660, 661, 662, 663, 666, 672, 673, 676, 677, 678, 684, 733, 752, 754, 755, 756, 757, 758, 759, 760, 768, 769, 770, 775, 776, 777, 778, 781, 782, 783, 784, 785, 791, 792, 793, 794, 795, 796, 797, 803, 805, 806, 807, 808, 809, 810, 811, 819, 820, 825, 826, 827, 828, 831, 832, 833, 834, 840, 842, 843, 844, 845, 846, 847, 848, 856, 857, 862, 863, 864, 865, 868, 869, 870, 871, 872, 878, 917, 971, 973, 974, 979, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1006, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1019, 1020, 1023, 1026, 1029, 1032, 1037, 1040, 1041, 1042, 1043, 1046, 1049, 1056, 1058, 1061, 1064, 1067, 1068, 1073, 1081, 1092, 1093, 1094, 1095, 1096, 1097, 1102, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1117, 1118, 1119, 1123, 1124, 1126, 1129, 1130, 1131, 1132, 1133, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1165, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1183, 1184, 1187, 1190, 1193, 1196, 1199, 1202, 1205, 1208, 1209, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1234, 1237, 1247, 1248, 1249, 1250, 1251, 1253, 1254, 1255, 1256, 1260, 1265, 1270, 1276, 1278, 1279, 1280, 1286, 1287, 1289, 1290, 1292, 1293, 1295, 1296, 1298, 1300, 1301, 1302, 1310, 1311, 1312, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1327, 1328, 1329, 1335, 1338, 1339, 1340, 1350, 1352, 1355, 1356, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1368, 1369, 1370, 1371, 1372, 1373, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1403, 1404, 1405, 1406, 1407, 1416, 1418, 1430, 1431, 1433, 1434, 1470, 1473], "summary": {"covered_lines": 578, "num_statements": 1067, "percent_covered": 54.170571696344894, "percent_covered_display": "54", "missing_lines": 489, "excluded_lines": 5}, "missing_lines": [8, 63, 64, 124, 125, 126, 127, 128, 129, 131, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 161, 175, 181, 190, 191, 201, 202, 204, 205, 206, 207, 216, 217, 218, 219, 220, 228, 229, 238, 239, 257, 260, 261, 268, 270, 272, 273, 285, 286, 293, 294, 295, 302, 303, 304, 305, 306, 308, 309, 310, 311, 312, 313, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 365, 366, 388, 390, 392, 394, 396, 403, 428, 429, 430, 440, 446, 447, 453, 454, 455, 456, 466, 467, 468, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 497, 498, 503, 504, 505, 506, 507, 508, 509, 510, 511, 518, 519, 522, 523, 528, 529, 536, 537, 538, 539, 540, 549, 550, 555, 556, 561, 562, 564, 570, 575, 576, 577, 586, 587, 594, 595, 596, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 642, 643, 653, 654, 655, 656, 664, 665, 667, 668, 669, 670, 671, 674, 675, 679, 680, 681, 686, 687, 688, 689, 690, 691, 692, 693, 695, 696, 697, 698, 699, 701, 704, 705, 706, 707, 708, 709, 710, 711, 713, 714, 715, 716, 717, 718, 719, 720, 721, 723, 724, 725, 726, 727, 728, 729, 730, 735, 736, 737, 738, 739, 740, 741, 743, 744, 745, 746, 747, 749, 761, 762, 763, 764, 766, 767, 771, 772, 773, 774, 779, 780, 786, 787, 788, 789, 790, 798, 799, 800, 812, 813, 814, 815, 817, 818, 821, 822, 823, 824, 829, 830, 835, 836, 837, 849, 850, 851, 852, 854, 855, 858, 859, 860, 861, 866, 867, 873, 874, 875, 880, 881, 886, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 914, 919, 920, 921, 922, 923, 924, 925, 926, 927, 929, 930, 935, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 968, 1005, 1007, 1015, 1016, 1017, 1018, 1021, 1022, 1024, 1025, 1027, 1028, 1030, 1031, 1033, 1034, 1035, 1036, 1038, 1039, 1044, 1045, 1047, 1048, 1050, 1051, 1052, 1053, 1054, 1055, 1057, 1059, 1060, 1062, 1063, 1065, 1066, 1070, 1147, 1148, 1185, 1186, 1188, 1189, 1191, 1192, 1194, 1195, 1197, 1198, 1200, 1201, 1203, 1204, 1206, 1207, 1303, 1309, 1313, 1314, 1315, 1316, 1326, 1330, 1331, 1332, 1333, 1336, 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1351, 1353, 1374, 1391, 1408, 1409, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427, 1428, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1474], "excluded_lines": [333, 334, 367, 368, 369]}}}, "src/nostr/__init__.py": {"executed_lines": [3, 5, 6, 8, 16, 18, 29, 30, 31, 32, 33, 34], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"__getattr__": {"executed_lines": [30, 31, 32, 33, 34], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 5, 6, 8, 16, 18, 29], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [3, 5, 6, 8, 16, 18, 29, 30, 31, 32, 33, 34], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/nostr/backup_models.py": {"executed_lines": [1, 2, 5, 6, 7, 10, 11, 12, 14, 15, 16, 17, 20, 21, 22, 24, 25, 26, 27, 28], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 2, 5, 6, 7, 10, 11, 12, 14, 15, 16, 17, 20, 21, 22, 24, 25, 26, 27, 28], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"ChunkMeta": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Manifest": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 5, 6, 7, 10, 11, 12, 14, 15, 16, 17, 20, 21, 22, 24, 25, 26, 27, 28], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/nostr/client.py": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 22, 24, 25, 27, 34, 35, 36, 38, 42, 43, 45, 46, 49, 50, 52, 63, 64, 65, 66, 67, 69, 70, 73, 76, 77, 78, 79, 80, 81, 82, 84, 85, 86, 88, 90, 91, 92, 97, 99, 100, 101, 102, 103, 104, 107, 108, 110, 113], "summary": {"covered_lines": 56, "num_statements": 58, "percent_covered": 96.55172413793103, "percent_covered_display": "97", "missing_lines": 2, "excluded_lines": 2}, "missing_lines": [93, 94], "excluded_lines": [38, 39], "functions": {"NostrClient.__init__": {"executed_lines": [63, 64, 65, 66, 67, 69, 70, 73, 76, 77, 78, 79, 80, 81, 82, 84, 85, 86, 88, 90, 91, 92, 97, 99, 100, 101, 102, 103, 104, 107, 108, 110], "summary": {"covered_lines": 32, "num_statements": 34, "percent_covered": 94.11764705882354, "percent_covered_display": "94", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [93, 94], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 22, 24, 25, 27, 34, 35, 36, 38, 42, 43, 45, 46, 49, 50, 52, 113], "summary": {"covered_lines": 24, "num_statements": 24, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2}, "missing_lines": [], "excluded_lines": [38, 39]}}, "classes": {"NostrClient": {"executed_lines": [63, 64, 65, 66, 67, 69, 70, 73, 76, 77, 78, 79, 80, 81, 82, 84, 85, 86, 88, 90, 91, 92, 97, 99, 100, 101, 102, 103, 104, 107, 108, 110], "summary": {"covered_lines": 32, "num_statements": 34, "percent_covered": 94.11764705882354, "percent_covered_display": "94", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [93, 94], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 22, 24, 25, 27, 34, 35, 36, 38, 42, 43, 45, 46, 49, 50, 52, 113], "summary": {"covered_lines": 24, "num_statements": 24, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2}, "missing_lines": [], "excluded_lines": [38, 39]}}}, "src/nostr/coincurve_keys.py": {"executed_lines": [1, 3, 4, 7, 8, 10, 11, 12, 14, 15, 20, 21, 26, 28, 29, 31, 32, 34, 35, 36, 37, 39, 40, 42, 43, 45, 46], "summary": {"covered_lines": 26, "num_statements": 33, "percent_covered": 78.78787878787878, "percent_covered_display": "79", "missing_lines": 7, "excluded_lines": 0}, "missing_lines": [13, 17, 18, 22, 23, 24, 38], "excluded_lines": [], "functions": {"Keys.__init__": {"executed_lines": [11, 12, 14, 15, 20, 21, 26], "summary": {"covered_lines": 7, "num_statements": 13, "percent_covered": 53.84615384615385, "percent_covered_display": "54", "missing_lines": 6, "excluded_lines": 0}, "missing_lines": [13, 17, 18, 22, 23, 24], "excluded_lines": []}, "Keys.hex_to_bech32": {"executed_lines": [31, 32], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Keys.bech32_to_hex": {"executed_lines": [36, 37, 39, 40], "summary": {"covered_lines": 4, "num_statements": 5, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [38], "excluded_lines": []}, "Keys.private_key_hex": {"executed_lines": [43], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Keys.public_key_hex": {"executed_lines": [46], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 4, 7, 8, 10, 28, 29, 34, 35, 42, 45], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Keys": {"executed_lines": [11, 12, 14, 15, 20, 21, 26, 31, 32, 36, 37, 39, 40, 43, 46], "summary": {"covered_lines": 15, "num_statements": 22, "percent_covered": 68.18181818181819, "percent_covered_display": "68", "missing_lines": 7, "excluded_lines": 0}, "missing_lines": [13, 17, 18, 22, 23, 24, 38], "excluded_lines": []}, "": {"executed_lines": [1, 3, 4, 7, 8, 10, 28, 29, 34, 35, 42, 45], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/nostr/connection.py": {"executed_lines": [1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 13, 15, 22, 23, 25, 27, 29, 30, 32, 38, 40, 42, 43, 45, 46, 49, 50, 51, 52, 53, 59, 60, 62, 63, 65, 66, 67, 69, 71, 72, 73, 80, 81, 84, 85, 86, 87, 88, 89, 93, 103, 105, 107, 109, 148, 150, 152, 153, 155, 157, 158, 159, 160, 161, 162, 164, 168, 171, 172, 173, 174, 176, 182, 183, 184, 186, 187, 188, 189, 190, 191, 192, 196, 197, 198, 199, 201, 225, 227, 228, 231, 232], "summary": {"covered_lines": 91, "num_statements": 155, "percent_covered": 58.70967741935484, "percent_covered_display": "59", "missing_lines": 64, "excluded_lines": 0}, "missing_lines": [28, 34, 35, 36, 41, 47, 54, 55, 57, 90, 91, 94, 95, 96, 97, 98, 101, 106, 116, 117, 118, 119, 120, 121, 123, 124, 125, 129, 130, 131, 132, 133, 135, 140, 141, 143, 144, 145, 146, 151, 169, 181, 193, 194, 195, 202, 203, 204, 205, 206, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 229, 230], "excluded_lines": [], "functions": {"ConnectionHandler.connect": {"executed_lines": [27, 29, 30], "summary": {"covered_lines": 3, "num_statements": 4, "percent_covered": 75.0, "percent_covered_display": "75", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [28], "excluded_lines": []}, "ConnectionHandler.initialize_client_pool": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [34, 35, 36], "excluded_lines": []}, "ConnectionHandler._connect_async": {"executed_lines": [40, 42, 43], "summary": {"covered_lines": 3, "num_statements": 4, "percent_covered": 75.0, "percent_covered_display": "75", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [41], "excluded_lines": []}, "ConnectionHandler._initialize_client_pool": {"executed_lines": [46, 49, 50, 51, 52, 53, 59, 60, 62, 63, 65, 66, 67], "summary": {"covered_lines": 13, "num_statements": 17, "percent_covered": 76.47058823529412, "percent_covered_display": "76", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [47, 54, 55, 57], "excluded_lines": []}, "ConnectionHandler._ping_relay": {"executed_lines": [71, 72, 73, 80, 81, 84, 85, 86, 87, 88, 89], "summary": {"covered_lines": 11, "num_statements": 13, "percent_covered": 84.61538461538461, "percent_covered_display": "85", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [90, 91], "excluded_lines": []}, "ConnectionHandler._check_relay_health": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 6, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 6, "excluded_lines": 0}, "missing_lines": [94, 95, 96, 97, 98, 101], "excluded_lines": []}, "ConnectionHandler.check_relay_health": {"executed_lines": [105, 107], "summary": {"covered_lines": 2, "num_statements": 3, "percent_covered": 66.66666666666667, "percent_covered_display": "67", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [106], "excluded_lines": []}, "ConnectionHandler.publish_json_to_nostr": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 21, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 21, "excluded_lines": 0}, "missing_lines": [116, 117, 118, 119, 120, 121, 123, 124, 125, 129, 130, 131, 132, 133, 135, 140, 141, 143, 144, 145, 146], "excluded_lines": []}, "ConnectionHandler.publish_event": {"executed_lines": [150, 152, 153], "summary": {"covered_lines": 3, "num_statements": 4, "percent_covered": 75.0, "percent_covered_display": "75", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [151], "excluded_lines": []}, "ConnectionHandler.update_relays": {"executed_lines": [157, 158, 159, 160, 161, 162], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ConnectionHandler.retrieve_json_from_nostr": {"executed_lines": [168, 171, 172, 173, 174, 176, 182, 183, 184, 186, 187, 188, 189, 190, 191, 192, 196, 197, 198, 199], "summary": {"covered_lines": 20, "num_statements": 25, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 5, "excluded_lines": 0}, "missing_lines": [169, 181, 193, 194, 195], "excluded_lines": []}, "ConnectionHandler._retrieve_json_from_nostr": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 17, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 17, "excluded_lines": 0}, "missing_lines": [202, 203, 204, 205, 206, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223], "excluded_lines": []}, "ConnectionHandler.close_client_pool": {"executed_lines": [227, 228, 231, 232], "summary": {"covered_lines": 4, "num_statements": 6, "percent_covered": 66.66666666666667, "percent_covered_display": "67", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [229, 230], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 13, 15, 22, 23, 25, 32, 38, 45, 69, 93, 103, 109, 148, 155, 164, 201, 225], "summary": {"covered_lines": 26, "num_statements": 26, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"ConnectionHandler": {"executed_lines": [27, 29, 30, 40, 42, 43, 46, 49, 50, 51, 52, 53, 59, 60, 62, 63, 65, 66, 67, 71, 72, 73, 80, 81, 84, 85, 86, 87, 88, 89, 105, 107, 150, 152, 153, 157, 158, 159, 160, 161, 162, 168, 171, 172, 173, 174, 176, 182, 183, 184, 186, 187, 188, 189, 190, 191, 192, 196, 197, 198, 199, 227, 228, 231, 232], "summary": {"covered_lines": 65, "num_statements": 129, "percent_covered": 50.3875968992248, "percent_covered_display": "50", "missing_lines": 64, "excluded_lines": 0}, "missing_lines": [28, 34, 35, 36, 41, 47, 54, 55, 57, 90, 91, 94, 95, 96, 97, 98, 101, 106, 116, 117, 118, 119, 120, 121, 123, 124, 125, 129, 130, 131, 132, 133, 135, 140, 141, 143, 144, 145, 146, 151, 169, 181, 193, 194, 195, 202, 203, 204, 205, 206, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 229, 230], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 13, 15, 22, 23, 25, 32, 38, 45, 69, 93, 103, 109, 148, 155, 164, 201, 225], "summary": {"covered_lines": 26, "num_statements": 26, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/nostr/key_manager.py": {"executed_lines": [3, 4, 5, 7, 8, 9, 12, 13, 15, 18, 19, 21, 36, 37, 41, 46, 47, 48, 49, 54, 57, 58, 64, 71, 72, 73, 74, 75, 80, 82, 83, 85, 89, 90, 91, 92, 97, 111, 122, 129, 131, 138, 140, 147, 148, 149, 150, 151, 152, 157], "summary": {"covered_lines": 49, "num_statements": 84, "percent_covered": 58.333333333333336, "percent_covered_display": "58", "missing_lines": 35, "excluded_lines": 0}, "missing_lines": [38, 42, 60, 61, 62, 76, 77, 78, 93, 94, 95, 99, 100, 103, 106, 107, 108, 109, 113, 114, 117, 118, 119, 120, 153, 154, 155, 159, 160, 161, 162, 163, 164, 165, 166], "excluded_lines": [], "functions": {"KeyManager.__init__": {"executed_lines": [36, 37, 41, 46, 47, 48, 49, 54, 57, 58], "summary": {"covered_lines": 10, "num_statements": 15, "percent_covered": 66.66666666666667, "percent_covered_display": "67", "missing_lines": 5, "excluded_lines": 0}, "missing_lines": [38, 42, 60, 61, 62], "excluded_lines": []}, "KeyManager.initialize_bip85": {"executed_lines": [71, 72, 73, 74, 75], "summary": {"covered_lines": 5, "num_statements": 8, "percent_covered": 62.5, "percent_covered_display": "62", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [76, 77, 78], "excluded_lines": []}, "KeyManager.generate_nostr_keys": {"executed_lines": [82, 83, 85, 89, 90, 91, 92], "summary": {"covered_lines": 7, "num_statements": 10, "percent_covered": 70.0, "percent_covered_display": "70", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [93, 94, 95], "excluded_lines": []}, "KeyManager.generate_v1_nostr_keys": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 7, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 7, "excluded_lines": 0}, "missing_lines": [99, 100, 103, 106, 107, 108, 109], "excluded_lines": []}, "KeyManager.generate_legacy_nostr_keys": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 6, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 6, "excluded_lines": 0}, "missing_lines": [113, 114, 117, 118, 119, 120], "excluded_lines": []}, "KeyManager.get_public_key_hex": {"executed_lines": [129], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "KeyManager.get_private_key_hex": {"executed_lines": [138], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "KeyManager.get_npub": {"executed_lines": [147, 148, 149, 150, 151, 152], "summary": {"covered_lines": 6, "num_statements": 9, "percent_covered": 66.66666666666667, "percent_covered_display": "67", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [153, 154, 155], "excluded_lines": []}, "KeyManager.get_nsec": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 8, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 8, "excluded_lines": 0}, "missing_lines": [159, 160, 161, 162, 163, 164, 165, 166], "excluded_lines": []}, "": {"executed_lines": [3, 4, 5, 7, 8, 9, 12, 13, 15, 18, 19, 21, 64, 80, 97, 111, 122, 131, 140, 157], "summary": {"covered_lines": 19, "num_statements": 19, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"KeyManager": {"executed_lines": [36, 37, 41, 46, 47, 48, 49, 54, 57, 58, 71, 72, 73, 74, 75, 82, 83, 85, 89, 90, 91, 92, 129, 138, 147, 148, 149, 150, 151, 152], "summary": {"covered_lines": 30, "num_statements": 65, "percent_covered": 46.15384615384615, "percent_covered_display": "46", "missing_lines": 35, "excluded_lines": 0}, "missing_lines": [38, 42, 60, 61, 62, 76, 77, 78, 93, 94, 95, 99, 100, 103, 106, 107, 108, 109, 113, 114, 117, 118, 119, 120, 153, 154, 155, 159, 160, 161, 162, 163, 164, 165, 166], "excluded_lines": []}, "": {"executed_lines": [3, 4, 5, 7, 8, 9, 12, 13, 15, 18, 19, 21, 64, 80, 97, 111, 122, 131, 140, 157], "summary": {"covered_lines": 19, "num_statements": 19, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/nostr/snapshot.py": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 25, 26, 29, 33, 34, 35, 36, 37, 45, 46, 49, 57, 58, 59, 62, 63, 65, 68, 69, 71, 72, 73, 75, 76, 77, 78, 79, 81, 82, 83, 86, 87, 90, 91, 92, 93, 99, 104, 105, 107, 108, 110, 120, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 137, 140, 141, 142, 143, 144, 158, 159, 160, 162, 167, 168, 169, 170, 172, 173, 174, 175, 176, 181, 182, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 198, 199, 200, 201, 202, 203, 204, 206, 207, 208, 212, 214, 215, 216, 217, 218, 219, 221, 225, 226, 227, 229, 230, 231, 232, 233, 234, 235, 245, 265, 266, 267, 268, 269, 277, 279, 281, 283, 284, 285, 286, 287, 292, 293, 294, 295, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 312, 314, 316, 317, 318, 319, 320, 321, 328, 329, 330, 333, 335, 336, 337, 338, 339, 342, 343, 344, 345, 346, 348, 349, 351, 352, 353, 354, 355, 358, 359, 360, 361, 364, 366, 367, 368, 369, 370, 381, 389, 390, 391, 392, 394, 395, 397, 398, 399, 405, 406, 407, 410, 411, 412, 413, 414, 415, 416, 420, 421, 422, 423, 424, 427, 430, 431, 433, 434, 435, 437, 438, 439, 441, 442, 443], "summary": {"covered_lines": 232, "num_statements": 264, "percent_covered": 87.87878787878788, "percent_covered_display": "88", "missing_lines": 32, "excluded_lines": 11}, "missing_lines": [70, 84, 85, 96, 97, 155, 156, 205, 209, 210, 211, 213, 246, 252, 253, 262, 263, 282, 290, 291, 308, 309, 310, 315, 331, 332, 334, 340, 341, 350, 365, 396], "excluded_lines": [236, 237, 238, 243, 254, 255, 256, 261, 270, 271, 272], "functions": {"prepare_snapshot": {"executed_lines": [33, 34, 35, 36, 37, 45, 46], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "new_manifest_id": {"executed_lines": [57, 58, 59], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "SnapshotHandler.publish_snapshot": {"executed_lines": [68, 69, 71, 72, 73, 75, 76, 77, 78, 79, 81, 82, 83, 86, 87, 90, 91, 92, 93, 99, 104, 105, 107, 108, 110, 120, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135], "summary": {"covered_lines": 36, "num_statements": 41, "percent_covered": 87.8048780487805, "percent_covered_display": "88", "missing_lines": 5, "excluded_lines": 0}, "missing_lines": [70, 84, 85, 96, 97], "excluded_lines": []}, "SnapshotHandler._fetch_chunks_with_retry": {"executed_lines": [140, 141, 142, 143, 144, 158, 159, 160, 162, 167, 168, 169, 170, 172, 173, 174, 175, 176, 181, 182, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 198, 199, 200, 201, 202, 203, 204, 206, 207, 208, 212, 214, 215, 216, 217, 218, 219], "summary": {"covered_lines": 50, "num_statements": 57, "percent_covered": 87.71929824561404, "percent_covered_display": "88", "missing_lines": 7, "excluded_lines": 0}, "missing_lines": [155, 156, 205, 209, 210, 211, 213], "excluded_lines": []}, "SnapshotHandler._fetch_manifest_with_keys": {"executed_lines": [225, 226, 227, 229, 230, 231, 232, 233, 234, 235, 245, 265, 266, 267, 268, 269, 277], "summary": {"covered_lines": 17, "num_statements": 22, "percent_covered": 77.27272727272727, "percent_covered_display": "77", "missing_lines": 5, "excluded_lines": 11}, "missing_lines": [246, 252, 253, 262, 263], "excluded_lines": [236, 237, 238, 243, 254, 255, 256, 261, 270, 271, 272]}, "SnapshotHandler.fetch_latest_snapshot": {"executed_lines": [281, 283, 284, 285, 286, 287, 292, 293, 294, 295, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307], "summary": {"covered_lines": 20, "num_statements": 26, "percent_covered": 76.92307692307692, "percent_covered_display": "77", "missing_lines": 6, "excluded_lines": 0}, "missing_lines": [282, 290, 291, 308, 309, 310], "excluded_lines": []}, "SnapshotHandler.ensure_manifest_is_current": {"executed_lines": [314, 316, 317, 318, 319, 320, 321, 328, 329, 330, 333, 335, 336, 337, 338, 339, 342, 343, 344, 345, 346], "summary": {"covered_lines": 21, "num_statements": 27, "percent_covered": 77.77777777777777, "percent_covered_display": "78", "missing_lines": 6, "excluded_lines": 0}, "missing_lines": [315, 331, 332, 334, 340, 341], "excluded_lines": []}, "SnapshotHandler.publish_delta": {"executed_lines": [349, 351, 352, 353, 354, 355, 358, 359, 360, 361, 364, 366, 367, 368, 369, 370, 381, 389, 390, 391, 392], "summary": {"covered_lines": 21, "num_statements": 23, "percent_covered": 91.30434782608695, "percent_covered_display": "91", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [350, 365], "excluded_lines": []}, "SnapshotHandler.fetch_deltas_since": {"executed_lines": [395, 397, 398, 399, 405, 406, 407, 410, 411, 412, 413, 414, 415, 416, 420, 421, 422, 423, 424, 427, 430, 431], "summary": {"covered_lines": 22, "num_statements": 23, "percent_covered": 95.65217391304348, "percent_covered_display": "96", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [396], "excluded_lines": []}, "SnapshotHandler.get_current_manifest": {"executed_lines": [434, 435], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "SnapshotHandler.get_current_manifest_id": {"executed_lines": [438, 439], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "SnapshotHandler.get_delta_events": {"executed_lines": [442, 443], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 25, 26, 29, 49, 62, 63, 65, 137, 221, 279, 312, 348, 394, 433, 437, 441], "summary": {"covered_lines": 29, "num_statements": 29, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"SnapshotHandler": {"executed_lines": [68, 69, 71, 72, 73, 75, 76, 77, 78, 79, 81, 82, 83, 86, 87, 90, 91, 92, 93, 99, 104, 105, 107, 108, 110, 120, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 140, 141, 142, 143, 144, 158, 159, 160, 162, 167, 168, 169, 170, 172, 173, 174, 175, 176, 181, 182, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 198, 199, 200, 201, 202, 203, 204, 206, 207, 208, 212, 214, 215, 216, 217, 218, 219, 225, 226, 227, 229, 230, 231, 232, 233, 234, 235, 245, 265, 266, 267, 268, 269, 277, 281, 283, 284, 285, 286, 287, 292, 293, 294, 295, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 314, 316, 317, 318, 319, 320, 321, 328, 329, 330, 333, 335, 336, 337, 338, 339, 342, 343, 344, 345, 346, 349, 351, 352, 353, 354, 355, 358, 359, 360, 361, 364, 366, 367, 368, 369, 370, 381, 389, 390, 391, 392, 395, 397, 398, 399, 405, 406, 407, 410, 411, 412, 413, 414, 415, 416, 420, 421, 422, 423, 424, 427, 430, 431, 434, 435, 438, 439, 442, 443], "summary": {"covered_lines": 193, "num_statements": 225, "percent_covered": 85.77777777777777, "percent_covered_display": "86", "missing_lines": 32, "excluded_lines": 11}, "missing_lines": [70, 84, 85, 96, 97, 155, 156, 205, 209, 210, 211, 213, 246, 252, 253, 262, 263, 282, 290, 291, 308, 309, 310, 315, 331, 332, 334, 340, 341, 350, 365, 396], "excluded_lines": [236, 237, 238, 243, 254, 255, 256, 261, 270, 271, 272]}, "": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 25, 26, 29, 33, 34, 35, 36, 37, 45, 46, 49, 57, 58, 59, 62, 63, 65, 137, 221, 279, 312, 348, 394, 433, 437, 441], "summary": {"covered_lines": 39, "num_statements": 39, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/seedpass/__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/seedpass/api.py": {"executed_lines": [1, 3, 5, 6, 7, 8, 9, 10, 12, 14, 15, 16, 17, 18, 20, 22, 23, 24, 25, 27, 28, 29, 31, 32, 33, 35, 36, 38, 41, 42, 43, 44, 47, 48, 50, 51, 52, 53, 56, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 70, 78, 79, 82, 83, 84, 85, 86, 87, 88, 89, 94, 95, 101, 104, 105, 106, 107, 110, 116, 117, 118, 119, 120, 123, 124, 127, 128, 129, 130, 143, 144, 150, 151, 152, 153, 154, 156, 159, 160, 171, 172, 174, 176, 177, 187, 189, 197, 199, 200, 202, 214, 216, 217, 225, 279, 280, 291, 292, 293, 294, 305, 306, 307, 310, 311, 315, 316, 317, 318, 321, 322, 326, 327, 328, 329, 332, 333, 336, 337, 338, 340, 342, 345, 346, 353, 354, 355, 356, 367, 369, 370, 372, 375, 376, 379, 380, 384, 385, 386, 388, 390, 392, 393, 394, 395, 396, 397, 400, 401, 404, 405, 406, 409, 410, 414, 415, 416, 417, 420, 421, 425, 426, 427, 428, 431, 432, 436, 437, 438, 440, 442, 443, 446, 447, 453, 454, 455, 456, 457, 460, 461, 467, 468, 469, 470, 473, 474, 475, 476, 478, 480, 483, 486, 487, 491, 492, 493, 496, 497, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 513, 514, 515, 516, 517, 520, 521, 523, 524, 525, 526, 529, 530, 534, 535, 536, 538, 540, 541, 543, 545, 546, 547, 548, 551, 552, 556, 557, 558, 559, 561, 563, 565, 566, 567, 568, 571, 572, 576, 577, 578, 580, 581, 582, 583, 586, 587, 591, 592, 593, 594, 597, 598, 602, 603, 604, 605, 608, 609, 615, 616, 617, 618, 619, 621, 622, 625, 626, 630, 631, 633, 635, 636, 637, 639, 641, 642, 643, 644, 645, 646, 648, 650, 651, 653, 656, 657, 658, 663, 664, 665, 668, 669, 676, 677, 678, 680, 682, 684, 686, 688, 689, 690, 691, 694, 695, 699, 700, 701, 703, 706, 707, 711, 712, 713, 715, 725, 727, 728, 729, 732, 733, 737, 738, 739, 740, 743, 744, 747, 748, 750], "summary": {"covered_lines": 349, "num_statements": 378, "percent_covered": 92.32804232804233, "percent_covered_display": "92", "missing_lines": 29, "excluded_lines": 0}, "missing_lines": [49, 81, 155, 227, 228, 238, 240, 241, 249, 251, 252, 259, 261, 262, 267, 274, 276, 341, 373, 391, 441, 539, 544, 562, 564, 620, 640, 654, 687], "excluded_lines": [], "functions": {"_get_pm": {"executed_lines": [42, 43, 44], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "_check_token": {"executed_lines": [48, 50, 51, 52, 53], "summary": {"covered_lines": 5, "num_statements": 6, "percent_covered": 83.33333333333333, "percent_covered_display": "83", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [49], "excluded_lines": []}, "_reload_relays": {"executed_lines": [58, 59, 60, 61, 62, 63, 64, 65, 66, 67], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "start_server": {"executed_lines": [78, 79, 82, 83, 84, 85, 86, 87, 88, 89, 94, 95, 101], "summary": {"covered_lines": 13, "num_statements": 14, "percent_covered": 92.85714285714286, "percent_covered_display": "93", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [81], "excluded_lines": []}, "_require_password": {"executed_lines": [105, 106, 107], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "_validate_encryption_path": {"executed_lines": [116, 117, 118, 119, 120], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "search_entry": {"executed_lines": [127, 128, 129, 130], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "get_entry": {"executed_lines": [150, 151, 152, 153, 154, 156], "summary": {"covered_lines": 6, "num_statements": 7, "percent_covered": 85.71428571428571, "percent_covered_display": "86", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [155], "excluded_lines": []}, "create_entry": {"executed_lines": [171, 172, 174, 176, 177, 187, 189, 197, 199, 200, 202, 214, 216, 217, 225], "summary": {"covered_lines": 15, "num_statements": 29, "percent_covered": 51.724137931034484, "percent_covered_display": "52", "missing_lines": 14, "excluded_lines": 0}, "missing_lines": [227, 228, 238, 240, 241, 249, 251, 252, 259, 261, 262, 267, 274, 276], "excluded_lines": []}, "update_entry": {"executed_lines": [291, 292, 293, 294, 305, 306, 307], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "archive_entry": {"executed_lines": [315, 316, 317, 318], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "unarchive_entry": {"executed_lines": [326, 327, 328, 329], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "get_config": {"executed_lines": [336, 337, 338, 340, 342], "summary": {"covered_lines": 5, "num_statements": 6, "percent_covered": 83.33333333333333, "percent_covered_display": "83", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [341], "excluded_lines": []}, "update_config": {"executed_lines": [353, 354, 355, 356, 367, 369, 370, 372, 375, 376], "summary": {"covered_lines": 10, "num_statements": 11, "percent_covered": 90.9090909090909, "percent_covered_display": "91", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [373], "excluded_lines": []}, "set_secret_mode": {"executed_lines": [384, 385, 386, 388, 390, 392, 393, 394, 395, 396, 397], "summary": {"covered_lines": 11, "num_statements": 12, "percent_covered": 91.66666666666667, "percent_covered_display": "92", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [391], "excluded_lines": []}, "list_fingerprints": {"executed_lines": [404, 405, 406], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "add_fingerprint": {"executed_lines": [414, 415, 416, 417], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "remove_fingerprint": {"executed_lines": [425, 426, 427, 428], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "select_fingerprint": {"executed_lines": [436, 437, 438, 440, 442, 443], "summary": {"covered_lines": 6, "num_statements": 7, "percent_covered": 85.71428571428571, "percent_covered_display": "86", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [441], "excluded_lines": []}, "export_totp": {"executed_lines": [453, 454, 455, 456, 457], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "get_totp_codes": {"executed_lines": [467, 468, 469, 470, 473, 474, 475, 476, 478, 480, 483], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "get_profile_stats": {"executed_lines": [491, 492, 493], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "get_notifications": {"executed_lines": [501, 502, 503, 504, 505, 506, 507, 508, 509, 510], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "get_nostr_pubkey": {"executed_lines": [515, 516, 517], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "list_relays": {"executed_lines": [523, 524, 525, 526], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "add_relay": {"executed_lines": [534, 535, 536, 538, 540, 541, 543, 545, 546, 547, 548], "summary": {"covered_lines": 11, "num_statements": 13, "percent_covered": 84.61538461538461, "percent_covered_display": "85", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [539, 544], "excluded_lines": []}, "remove_relay": {"executed_lines": [556, 557, 558, 559, 561, 563, 565, 566, 567, 568], "summary": {"covered_lines": 10, "num_statements": 12, "percent_covered": 83.33333333333333, "percent_covered_display": "83", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [562, 564], "excluded_lines": []}, "reset_relays": {"executed_lines": [576, 577, 578, 580, 581, 582, 583], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "verify_checksum": {"executed_lines": [591, 592, 593, 594], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "update_checksum": {"executed_lines": [602, 603, 604, 605], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "export_vault": {"executed_lines": [615, 616, 617, 618, 619, 621, 622], "summary": {"covered_lines": 7, "num_statements": 8, "percent_covered": 87.5, "percent_covered_display": "88", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [620], "excluded_lines": []}, "import_vault": {"executed_lines": [630, 631, 633, 635, 636, 637, 639, 641, 642, 643, 644, 645, 646, 648, 650, 651, 653, 656, 657, 658, 663, 664, 665], "summary": {"covered_lines": 23, "num_statements": 25, "percent_covered": 92.0, "percent_covered_display": "92", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [640, 654], "excluded_lines": []}, "backup_parent_seed": {"executed_lines": [676, 677, 678, 680, 682, 684, 686, 688, 689, 690, 691], "summary": {"covered_lines": 11, "num_statements": 12, "percent_covered": 91.66666666666667, "percent_covered_display": "92", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [687], "excluded_lines": []}, "change_password": {"executed_lines": [699, 700, 701, 703], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "generate_password": {"executed_lines": [711, 712, 713, 715, 725, 727, 728, 729], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "lock_vault": {"executed_lines": [737, 738, 739, 740], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "shutdown_server": {"executed_lines": [747, 748, 750], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 5, 6, 7, 8, 9, 10, 12, 14, 15, 16, 17, 18, 20, 22, 23, 24, 25, 27, 28, 29, 31, 32, 33, 35, 36, 38, 41, 47, 56, 70, 104, 110, 123, 124, 143, 144, 159, 160, 279, 280, 310, 311, 321, 322, 332, 333, 345, 346, 379, 380, 400, 401, 409, 410, 420, 421, 431, 432, 446, 447, 460, 461, 486, 487, 496, 497, 513, 514, 520, 521, 529, 530, 551, 552, 571, 572, 586, 587, 597, 598, 608, 609, 625, 626, 668, 669, 694, 695, 706, 707, 732, 733, 743, 744], "summary": {"covered_lines": 95, "num_statements": 95, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 3, 5, 6, 7, 8, 9, 10, 12, 14, 15, 16, 17, 18, 20, 22, 23, 24, 25, 27, 28, 29, 31, 32, 33, 35, 36, 38, 41, 42, 43, 44, 47, 48, 50, 51, 52, 53, 56, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 70, 78, 79, 82, 83, 84, 85, 86, 87, 88, 89, 94, 95, 101, 104, 105, 106, 107, 110, 116, 117, 118, 119, 120, 123, 124, 127, 128, 129, 130, 143, 144, 150, 151, 152, 153, 154, 156, 159, 160, 171, 172, 174, 176, 177, 187, 189, 197, 199, 200, 202, 214, 216, 217, 225, 279, 280, 291, 292, 293, 294, 305, 306, 307, 310, 311, 315, 316, 317, 318, 321, 322, 326, 327, 328, 329, 332, 333, 336, 337, 338, 340, 342, 345, 346, 353, 354, 355, 356, 367, 369, 370, 372, 375, 376, 379, 380, 384, 385, 386, 388, 390, 392, 393, 394, 395, 396, 397, 400, 401, 404, 405, 406, 409, 410, 414, 415, 416, 417, 420, 421, 425, 426, 427, 428, 431, 432, 436, 437, 438, 440, 442, 443, 446, 447, 453, 454, 455, 456, 457, 460, 461, 467, 468, 469, 470, 473, 474, 475, 476, 478, 480, 483, 486, 487, 491, 492, 493, 496, 497, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 513, 514, 515, 516, 517, 520, 521, 523, 524, 525, 526, 529, 530, 534, 535, 536, 538, 540, 541, 543, 545, 546, 547, 548, 551, 552, 556, 557, 558, 559, 561, 563, 565, 566, 567, 568, 571, 572, 576, 577, 578, 580, 581, 582, 583, 586, 587, 591, 592, 593, 594, 597, 598, 602, 603, 604, 605, 608, 609, 615, 616, 617, 618, 619, 621, 622, 625, 626, 630, 631, 633, 635, 636, 637, 639, 641, 642, 643, 644, 645, 646, 648, 650, 651, 653, 656, 657, 658, 663, 664, 665, 668, 669, 676, 677, 678, 680, 682, 684, 686, 688, 689, 690, 691, 694, 695, 699, 700, 701, 703, 706, 707, 711, 712, 713, 715, 725, 727, 728, 729, 732, 733, 737, 738, 739, 740, 743, 744, 747, 748, 750], "summary": {"covered_lines": 349, "num_statements": 378, "percent_covered": 92.32804232804233, "percent_covered_display": "92", "missing_lines": 29, "excluded_lines": 0}, "missing_lines": [49, 81, 155, 227, 228, 238, 240, 241, 249, 251, 252, 259, 261, 262, 267, 274, 276, 341, 373, 391, 441, 539, 544, 562, 564, 620, 640, 654, 687], "excluded_lines": []}}}, "src/seedpass/cli/__init__.py": {"executed_lines": [1, 3, 4, 5, 6, 7, 9, 11, 12, 14, 20, 27, 33, 40, 42, 43, 44, 45, 46, 47, 48, 51, 60, 62, 63, 64, 68, 69, 79, 84, 85, 86, 89, 90, 92, 93, 94, 97, 98, 111, 112, 113, 114, 115, 131, 132, 137, 139, 145, 150, 151, 162, 171, 178, 180, 183], "summary": {"covered_lines": 55, "num_statements": 78, "percent_covered": 70.51282051282051, "percent_covered_display": "71", "missing_lines": 23, "excluded_lines": 2}, "missing_lines": [53, 54, 55, 56, 57, 65, 116, 117, 118, 119, 120, 121, 122, 123, 125, 129, 142, 143, 163, 164, 169, 172, 176], "excluded_lines": [183, 184], "functions": {"run": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 0}, "missing_lines": [53, 54, 55, 56, 57], "excluded_lines": []}, "_gui_backend_available": {"executed_lines": [62, 63, 64], "summary": {"covered_lines": 3, "num_statements": 4, "percent_covered": 75.0, "percent_covered_display": "75", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [65], "excluded_lines": []}, "main": {"executed_lines": [79, 84, 85, 86], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "root_lock": {"executed_lines": [92, 93, 94], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "gui": {"executed_lines": [111, 112, 113, 114, 115, 131, 132, 137, 139, 145, 150, 151, 162, 171, 178, 180], "summary": {"covered_lines": 16, "num_statements": 33, "percent_covered": 48.484848484848484, "percent_covered_display": "48", "missing_lines": 17, "excluded_lines": 0}, "missing_lines": [116, 117, 118, 119, 120, 121, 122, 123, 125, 129, 142, 143, 163, 164, 169, 172, 176], "excluded_lines": []}, "": {"executed_lines": [1, 3, 4, 5, 6, 7, 9, 11, 12, 14, 20, 27, 33, 40, 42, 43, 44, 45, 46, 47, 48, 51, 60, 68, 69, 89, 90, 97, 98, 183], "summary": {"covered_lines": 29, "num_statements": 29, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2}, "missing_lines": [], "excluded_lines": [183, 184]}}, "classes": {"": {"executed_lines": [1, 3, 4, 5, 6, 7, 9, 11, 12, 14, 20, 27, 33, 40, 42, 43, 44, 45, 46, 47, 48, 51, 60, 62, 63, 64, 68, 69, 79, 84, 85, 86, 89, 90, 92, 93, 94, 97, 98, 111, 112, 113, 114, 115, 131, 132, 137, 139, 145, 150, 151, 162, 171, 178, 180, 183], "summary": {"covered_lines": 55, "num_statements": 78, "percent_covered": 70.51282051282051, "percent_covered_display": "71", "missing_lines": 23, "excluded_lines": 2}, "missing_lines": [53, 54, 55, 56, 57, 65, 116, 117, 118, 119, 120, 121, 122, 123, 125, 129, 142, 143, 163, 164, 169, 172, 176], "excluded_lines": [183, 184]}}}, "src/seedpass/cli/api.py": {"executed_lines": [1, 3, 4, 6, 8, 11, 12, 14, 15, 18, 21, 22], "summary": {"covered_lines": 12, "num_statements": 15, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 3, "excluded_lines": 2}, "missing_lines": [28, 30, 31], "excluded_lines": [36, 37], "functions": {"api_start": {"executed_lines": [14, 15, 18], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "api_stop": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 2}, "missing_lines": [28, 30, 31], "excluded_lines": [36, 37]}, "": {"executed_lines": [1, 3, 4, 6, 8, 11, 12, 21, 22], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 3, 4, 6, 8, 11, 12, 14, 15, 18, 21, 22], "summary": {"covered_lines": 12, "num_statements": 15, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 3, "excluded_lines": 2}, "missing_lines": [28, 30, 31], "excluded_lines": [36, 37]}}}, "src/seedpass/cli/common.py": {"executed_lines": [1, 3, 5, 6, 7, 23, 25, 26, 27, 29, 30, 32, 34, 37, 42, 43, 46, 47, 48, 51, 52, 53, 56, 57, 58, 61, 62, 63], "summary": {"covered_lines": 28, "num_statements": 30, "percent_covered": 93.33333333333333, "percent_covered_display": "93", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [31, 33], "excluded_lines": [], "functions": {"_get_pm": {"executed_lines": [25, 26, 27, 29, 30, 32, 34], "summary": {"covered_lines": 7, "num_statements": 9, "percent_covered": 77.77777777777777, "percent_covered_display": "78", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [31, 33], "excluded_lines": []}, "_get_services": {"executed_lines": [42, 43], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "_get_entry_service": {"executed_lines": [47, 48], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "_get_config_service": {"executed_lines": [52, 53], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "_get_util_service": {"executed_lines": [57, 58], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "_get_nostr_service": {"executed_lines": [62, 63], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 5, 6, 7, 23, 37, 46, 51, 56, 61], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 3, 5, 6, 7, 23, 25, 26, 27, 29, 30, 32, 34, 37, 42, 43, 46, 47, 48, 51, 52, 53, 56, 57, 58, 61, 62, 63], "summary": {"covered_lines": 28, "num_statements": 30, "percent_covered": 93.33333333333333, "percent_covered_display": "93", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [31, 33], "excluded_lines": []}}}, "src/seedpass/cli/config.py": {"executed_lines": [1, 3, 5, 7, 10, 11, 13, 14, 15, 16, 18, 21, 22, 24, 26, 27, 32, 33, 34, 35, 40, 43, 44, 50, 51, 52, 53, 58, 59, 66, 67, 68, 71, 74, 75, 76, 77, 84, 85, 90, 91, 94, 95, 97, 98, 99, 104, 105, 112, 114, 115, 117, 118, 123, 124], "summary": {"covered_lines": 55, "num_statements": 62, "percent_covered": 88.70967741935483, "percent_covered_display": "89", "missing_lines": 7, "excluded_lines": 15}, "missing_lines": [69, 78, 79, 80, 81, 82, 113], "excluded_lines": [36, 37, 38, 54, 55, 56, 86, 87, 88, 100, 101, 102, 119, 120, 121], "functions": {"config_get": {"executed_lines": [13, 14, 15, 16, 18], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "config_set": {"executed_lines": [24, 26, 27, 32, 33, 34, 35, 40], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 3}, "missing_lines": [], "excluded_lines": [36, 37, 38]}, "config_toggle_secret_mode": {"executed_lines": [50, 51, 52, 53, 58, 59, 66, 67, 68, 71, 74, 75, 76, 77, 84, 85, 90, 91], "summary": {"covered_lines": 18, "num_statements": 24, "percent_covered": 75.0, "percent_covered_display": "75", "missing_lines": 6, "excluded_lines": 6}, "missing_lines": [69, 78, 79, 80, 81, 82], "excluded_lines": [54, 55, 56, 86, 87, 88]}, "config_toggle_offline": {"executed_lines": [97, 98, 99, 104, 105, 112, 114, 115, 117, 118, 123, 124], "summary": {"covered_lines": 12, "num_statements": 13, "percent_covered": 92.3076923076923, "percent_covered_display": "92", "missing_lines": 1, "excluded_lines": 6}, "missing_lines": [113], "excluded_lines": [100, 101, 102, 119, 120, 121]}, "": {"executed_lines": [1, 3, 5, 7, 10, 11, 21, 22, 43, 44, 94, 95], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 3, 5, 7, 10, 11, 13, 14, 15, 16, 18, 21, 22, 24, 26, 27, 32, 33, 34, 35, 40, 43, 44, 50, 51, 52, 53, 58, 59, 66, 67, 68, 71, 74, 75, 76, 77, 84, 85, 90, 91, 94, 95, 97, 98, 99, 104, 105, 112, 114, 115, 117, 118, 123, 124], "summary": {"covered_lines": 55, "num_statements": 62, "percent_covered": 88.70967741935483, "percent_covered_display": "89", "missing_lines": 7, "excluded_lines": 15}, "missing_lines": [69, 78, 79, 80, 81, 82, 113], "excluded_lines": [36, 37, 38, 54, 55, 56, 86, 87, 88, 100, 101, 102, 119, 120, 121]}}}, "src/seedpass/cli/entry.py": {"executed_lines": [1, 3, 4, 5, 6, 8, 9, 11, 12, 13, 15, 18, 19, 33, 34, 39, 40, 41, 42, 43, 44, 45, 47, 50, 51, 63, 64, 65, 66, 69, 70, 71, 72, 73, 75, 78, 79, 81, 82, 83, 84, 87, 96, 97, 98, 99, 100, 101, 102, 109, 110, 115, 118, 119, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 166, 167, 170, 171, 183, 184, 192, 195, 196, 203, 204, 209, 212, 213, 222, 223, 230, 233, 234, 241, 242, 247, 250, 251, 259, 260, 266, 269, 270, 278, 279, 280, 283, 284, 291, 292, 297, 300, 301, 316, 317, 318, 329, 330, 331, 332, 335, 336, 338, 339, 340, 343, 344, 346, 347, 348, 351, 352, 354, 355, 358, 359, 363, 364, 365, 366], "summary": {"covered_lines": 138, "num_statements": 156, "percent_covered": 88.46153846153847, "percent_covered_display": "88", "missing_lines": 18, "excluded_lines": 0}, "missing_lines": [46, 67, 68, 74, 85, 86, 88, 89, 90, 91, 92, 93, 94, 103, 104, 105, 107, 108], "excluded_lines": [], "functions": {"entry_list": {"executed_lines": [33, 34, 39, 40, 41, 42, 43, 44, 45, 47], "summary": {"covered_lines": 10, "num_statements": 11, "percent_covered": 90.9090909090909, "percent_covered_display": "91", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [46], "excluded_lines": []}, "entry_search": {"executed_lines": [63, 64, 65, 66, 69, 70, 71, 72, 73, 75], "summary": {"covered_lines": 10, "num_statements": 13, "percent_covered": 76.92307692307692, "percent_covered_display": "77", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [67, 68, 74], "excluded_lines": []}, "entry_get": {"executed_lines": [81, 82, 83, 84, 87, 96, 97, 98, 99, 100, 101, 102, 109, 110, 115], "summary": {"covered_lines": 15, "num_statements": 29, "percent_covered": 51.724137931034484, "percent_covered_display": "52", "missing_lines": 14, "excluded_lines": 0}, "missing_lines": [85, 86, 88, 89, 90, 91, 92, 93, 94, 103, 104, 105, 107, 108], "excluded_lines": []}, "entry_add": {"executed_lines": [147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 166, 167], "summary": {"covered_lines": 20, "num_statements": 20, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "entry_add_totp": {"executed_lines": [183, 184, 192], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "entry_add_ssh": {"executed_lines": [203, 204, 209], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "entry_add_pgp": {"executed_lines": [222, 223, 230], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "entry_add_nostr": {"executed_lines": [241, 242, 247], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "entry_add_seed": {"executed_lines": [259, 260, 266], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "entry_add_key_value": {"executed_lines": [278, 279, 280], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "entry_add_managed_account": {"executed_lines": [291, 292, 297], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "entry_modify": {"executed_lines": [316, 317, 318, 329, 330, 331, 332], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "entry_archive": {"executed_lines": [338, 339, 340], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "entry_unarchive": {"executed_lines": [346, 347, 348], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "entry_totp_codes": {"executed_lines": [354, 355], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "entry_export_totp": {"executed_lines": [363, 364, 365, 366], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 4, 5, 6, 8, 9, 11, 12, 13, 15, 18, 19, 50, 51, 78, 79, 118, 119, 170, 171, 195, 196, 212, 213, 233, 234, 250, 251, 269, 270, 283, 284, 300, 301, 335, 336, 343, 344, 351, 352, 358, 359], "summary": {"covered_lines": 43, "num_statements": 43, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 3, 4, 5, 6, 8, 9, 11, 12, 13, 15, 18, 19, 33, 34, 39, 40, 41, 42, 43, 44, 45, 47, 50, 51, 63, 64, 65, 66, 69, 70, 71, 72, 73, 75, 78, 79, 81, 82, 83, 84, 87, 96, 97, 98, 99, 100, 101, 102, 109, 110, 115, 118, 119, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 166, 167, 170, 171, 183, 184, 192, 195, 196, 203, 204, 209, 212, 213, 222, 223, 230, 233, 234, 241, 242, 247, 250, 251, 259, 260, 266, 269, 270, 278, 279, 280, 283, 284, 291, 292, 297, 300, 301, 316, 317, 318, 329, 330, 331, 332, 335, 336, 338, 339, 340, 343, 344, 346, 347, 348, 351, 352, 354, 355, 358, 359, 363, 364, 365, 366], "summary": {"covered_lines": 138, "num_statements": 156, "percent_covered": 88.46153846153847, "percent_covered_display": "88", "missing_lines": 18, "excluded_lines": 0}, "missing_lines": [46, 67, 68, 74, 85, 86, 88, 89, 90, 91, 92, 93, 94, 103, 104, 105, 107, 108], "excluded_lines": []}}}, "src/seedpass/cli/fingerprint.py": {"executed_lines": [1, 3, 5, 7, 10, 11, 13, 14, 15, 18, 19, 21, 22, 25, 26, 28, 29, 32, 33, 35, 36, 37], "summary": {"covered_lines": 22, "num_statements": 22, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"fingerprint_list": {"executed_lines": [13, 14, 15], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "fingerprint_add": {"executed_lines": [21, 22], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "fingerprint_remove": {"executed_lines": [28, 29], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "fingerprint_switch": {"executed_lines": [35, 36, 37], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 5, 7, 10, 11, 18, 19, 25, 26, 32, 33], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 3, 5, 7, 10, 11, 13, 14, 15, 18, 19, 21, 22, 25, 26, 28, 29, 32, 33, 35, 36, 37], "summary": {"covered_lines": 22, "num_statements": 22, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/seedpass/cli/nostr.py": {"executed_lines": [1, 3, 5, 7, 12, 13, 15, 16, 17, 18, 19, 20, 21, 22, 23, 28, 29, 31, 32, 33, 36, 37, 39, 40, 41, 42, 45, 46, 48, 49, 50, 54, 57, 58, 60, 61, 62, 66], "summary": {"covered_lines": 38, "num_statements": 39, "percent_covered": 97.43589743589743, "percent_covered_display": "97", "missing_lines": 1, "excluded_lines": 6}, "missing_lines": [25], "excluded_lines": [51, 52, 53, 63, 64, 65], "functions": {"nostr_sync": {"executed_lines": [15, 16, 17, 18, 19, 20, 21, 22, 23], "summary": {"covered_lines": 9, "num_statements": 10, "percent_covered": 90.0, "percent_covered_display": "90", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [25], "excluded_lines": []}, "nostr_get_pubkey": {"executed_lines": [31, 32, 33], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "nostr_list_relays": {"executed_lines": [39, 40, 41, 42], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "nostr_add_relay": {"executed_lines": [48, 49, 50, 54], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 3}, "missing_lines": [], "excluded_lines": [51, 52, 53]}, "nostr_remove_relay": {"executed_lines": [60, 61, 62, 66], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 3}, "missing_lines": [], "excluded_lines": [63, 64, 65]}, "": {"executed_lines": [1, 3, 5, 7, 12, 13, 28, 29, 36, 37, 45, 46, 57, 58], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 3, 5, 7, 12, 13, 15, 16, 17, 18, 19, 20, 21, 22, 23, 28, 29, 31, 32, 33, 36, 37, 39, 40, 41, 42, 45, 46, 48, 49, 50, 54, 57, 58, 60, 61, 62, 66], "summary": {"covered_lines": 38, "num_statements": 39, "percent_covered": 97.43589743589743, "percent_covered_display": "97", "missing_lines": 1, "excluded_lines": 6}, "missing_lines": [25], "excluded_lines": [51, 52, 53, 63, 64, 65]}}}, "src/seedpass/cli/util.py": {"executed_lines": [1, 3, 5, 7, 9, 12, 13, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 57, 58, 61, 62, 64, 65, 68, 69, 71, 72], "summary": {"covered_lines": 35, "num_statements": 35, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"generate_password": {"executed_lines": [38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 57, 58], "summary": {"covered_lines": 20, "num_statements": 20, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "verify_checksum": {"executed_lines": [64, 65], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "update_checksum": {"executed_lines": [71, 72], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 5, 7, 9, 12, 13, 61, 62, 68, 69], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 3, 5, 7, 9, 12, 13, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 57, 58, 61, 62, 64, 65, 68, 69, 71, 72], "summary": {"covered_lines": 35, "num_statements": 35, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/seedpass/cli/vault.py": {"executed_lines": [1, 3, 4, 5, 7, 9, 16, 19, 20, 24, 25, 26, 27, 30, 31, 35, 36, 37, 38, 41, 42, 44, 45, 46, 47, 48, 54, 57, 58, 60, 61, 62, 63, 67, 70, 71, 73, 74, 75, 78, 79, 81, 82, 83, 86, 87, 94, 95, 96], "summary": {"covered_lines": 49, "num_statements": 49, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 6}, "missing_lines": [], "excluded_lines": [51, 52, 53, 64, 65, 66], "functions": {"vault_export": {"executed_lines": [24, 25, 26, 27], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "vault_import": {"executed_lines": [35, 36, 37, 38], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "vault_change_password": {"executed_lines": [44, 45, 46, 47, 48, 54], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 3}, "missing_lines": [], "excluded_lines": [51, 52, 53]}, "vault_unlock": {"executed_lines": [60, 61, 62, 63, 67], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 3}, "missing_lines": [], "excluded_lines": [64, 65, 66]}, "vault_lock": {"executed_lines": [73, 74, 75], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "vault_stats": {"executed_lines": [81, 82, 83], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "vault_reveal_parent_seed": {"executed_lines": [94, 95, 96], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 4, 5, 7, 9, 16, 19, 20, 30, 31, 41, 42, 57, 58, 70, 71, 78, 79, 86, 87], "summary": {"covered_lines": 21, "num_statements": 21, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 3, 4, 5, 7, 9, 16, 19, 20, 24, 25, 26, 27, 30, 31, 35, 36, 37, 38, 41, 42, 44, 45, 46, 47, 48, 54, 57, 58, 60, 61, 62, 63, 67, 70, 71, 73, 74, 75, 78, 79, 81, 82, 83, 86, 87, 94, 95, 96], "summary": {"covered_lines": 49, "num_statements": 49, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 6}, "missing_lines": [], "excluded_lines": [51, 52, 53, 64, 65, 66]}}}, "src/seedpass/core/__init__.py": {"executed_lines": [3, 5, 7, 17, 18, 20, 22, 24, 26, 28, 30], "summary": {"covered_lines": 10, "num_statements": 16, "percent_covered": 62.5, "percent_covered_display": "62", "missing_lines": 6, "excluded_lines": 0}, "missing_lines": [19, 21, 23, 25, 27, 29], "excluded_lines": [], "functions": {"__getattr__": {"executed_lines": [18, 20, 22, 24, 26, 28, 30], "summary": {"covered_lines": 7, "num_statements": 13, "percent_covered": 53.84615384615385, "percent_covered_display": "54", "missing_lines": 6, "excluded_lines": 0}, "missing_lines": [19, 21, 23, 25, 27, 29], "excluded_lines": []}, "": {"executed_lines": [3, 5, 7, 17], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [3, 5, 7, 17, 18, 20, 22, 24, 26, 28, 30], "summary": {"covered_lines": 10, "num_statements": 16, "percent_covered": 62.5, "percent_covered_display": "62", "missing_lines": 6, "excluded_lines": 0}, "missing_lines": [19, 21, 23, 25, 27, 29], "excluded_lines": []}}}, "src/seedpass/core/api.py": {"executed_lines": [1, 3, 10, 11, 12, 13, 14, 16, 18, 19, 20, 23, 24, 26, 29, 30, 32, 35, 36, 38, 41, 42, 44, 45, 48, 49, 51, 54, 55, 57, 60, 61, 63, 64, 67, 68, 70, 71, 74, 75, 77, 80, 81, 83, 84, 85, 88, 89, 91, 92, 93, 94, 95, 96, 97, 98, 101, 102, 103, 104, 105, 108, 109, 112, 113, 116, 117, 119, 120, 121, 123, 126, 127, 128, 130, 133, 134, 135, 137, 140, 141, 142, 145, 147, 150, 151, 154, 155, 156, 158, 161, 162, 164, 167, 168, 169, 171, 174, 175, 177, 180, 181, 185, 188, 189, 192, 193, 195, 196, 197, 199, 202, 203, 205, 208, 209, 210, 214, 217, 218, 220, 223, 224, 227, 228, 230, 231, 232, 234, 237, 238, 239, 240, 241, 242, 243, 245, 248, 249, 251, 254, 255, 258, 259, 261, 262, 263, 265, 271, 272, 278, 291, 292, 294, 295, 296, 298, 299, 300, 301, 302, 303, 304, 306, 307, 308, 311, 313, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 355, 356, 358, 368, 369, 370, 379, 380, 382, 389, 390, 396, 397, 399, 408, 409, 417, 418, 420, 427, 428, 434, 435, 437, 445, 446, 453, 454, 456, 459, 460, 463, 464, 466, 473, 474, 480, 481, 483, 496, 497, 508, 510, 511, 512, 513, 515, 516, 517, 518, 520, 521, 522, 525, 527, 528, 529, 532, 533, 535, 536, 537, 539, 540, 541, 543, 544, 545, 581, 582, 583, 584, 585, 586, 587, 592, 593, 595, 597, 598, 599, 601, 602, 603, 605, 606, 607, 608, 609, 610, 611, 613, 614, 615, 617, 618, 619, 620, 621, 624, 625, 627, 628, 629, 631, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 660, 662, 665, 666, 670, 671, 673, 674, 676, 677, 678, 680, 681, 682, 685, 686, 688, 689, 690, 692, 693, 694, 696, 697, 698, 700, 701, 702, 703, 707, 708, 709, 710], "summary": {"covered_lines": 322, "num_statements": 325, "percent_covered": 99.07692307692308, "percent_covered_display": "99", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [659, 661, 663], "excluded_lines": [], "functions": {"VaultService.__init__": {"executed_lines": [120, 121], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "VaultService.export_vault": {"executed_lines": [126, 127, 128], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "VaultService.import_vault": {"executed_lines": [133, 134, 135], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "VaultService.export_profile": {"executed_lines": [140, 141, 142, 145], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "VaultService.import_profile": {"executed_lines": [150, 151, 154, 155, 156], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "VaultService.change_password": {"executed_lines": [161, 162], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "VaultService.unlock": {"executed_lines": [167, 168, 169], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "VaultService.lock": {"executed_lines": [174, 175], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "VaultService.backup_parent_seed": {"executed_lines": [180, 181], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "VaultService.stats": {"executed_lines": [188, 189], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ProfileService.__init__": {"executed_lines": [196, 197], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ProfileService.list_profiles": {"executed_lines": [202, 203], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ProfileService.add_profile": {"executed_lines": [208, 209, 210], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ProfileService.remove_profile": {"executed_lines": [217, 218], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ProfileService.switch_profile": {"executed_lines": [223, 224], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "SyncService.__init__": {"executed_lines": [231, 232], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "SyncService.sync": {"executed_lines": [237, 238, 239, 240, 241, 242, 243], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "SyncService.start_background_sync": {"executed_lines": [248, 249], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "SyncService.start_background_vault_sync": {"executed_lines": [254, 255], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "EntryService.__init__": {"executed_lines": [262, 263], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "EntryService.list_entries": {"executed_lines": [271, 272], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "EntryService.search_entries": {"executed_lines": [291, 292], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "EntryService.retrieve_entry": {"executed_lines": [295, 296], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "EntryService.generate_password": {"executed_lines": [299, 300, 301, 302, 303, 304], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "EntryService.get_totp_code": {"executed_lines": [307, 308, 311], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "EntryService.add_entry": {"executed_lines": [329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 355, 356], "summary": {"covered_lines": 21, "num_statements": 21, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "EntryService.add_totp": {"executed_lines": [368, 369, 370, 379, 380], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "EntryService.add_ssh_key": {"executed_lines": [389, 390, 396, 397], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "EntryService.add_pgp_key": {"executed_lines": [408, 409, 417, 418], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "EntryService.add_nostr_key": {"executed_lines": [427, 428, 434, 435], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "EntryService.add_seed": {"executed_lines": [445, 446, 453, 454], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "EntryService.add_key_value": {"executed_lines": [459, 460, 463, 464], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "EntryService.add_managed_account": {"executed_lines": [473, 474, 480, 481], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "EntryService.modify_entry": {"executed_lines": [496, 497, 508], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "EntryService.archive_entry": {"executed_lines": [511, 512, 513], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "EntryService.restore_entry": {"executed_lines": [516, 517, 518], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "EntryService.export_totp_entries": {"executed_lines": [521, 522, 525], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "EntryService.display_totp_codes": {"executed_lines": [528, 529], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ConfigService.__init__": {"executed_lines": [536, 537], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ConfigService.get": {"executed_lines": [540, 541], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ConfigService.set": {"executed_lines": [544, 545, 581, 582, 583, 584, 585, 586, 587, 592, 593, 595], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ConfigService.get_secret_mode_enabled": {"executed_lines": [598, 599], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ConfigService.get_clipboard_clear_delay": {"executed_lines": [602, 603], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ConfigService.set_secret_mode": {"executed_lines": [606, 607, 608, 609, 610, 611], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ConfigService.get_offline_mode": {"executed_lines": [614, 615], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ConfigService.set_offline_mode": {"executed_lines": [618, 619, 620, 621], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "UtilityService.__init__": {"executed_lines": [628, 629], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "UtilityService.generate_password": {"executed_lines": [644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 660, 662, 665, 666, 670, 671, 673, 674], "summary": {"covered_lines": 23, "num_statements": 26, "percent_covered": 88.46153846153847, "percent_covered_display": "88", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [659, 661, 663], "excluded_lines": []}, "UtilityService.verify_checksum": {"executed_lines": [677, 678], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "UtilityService.update_checksum": {"executed_lines": [681, 682], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "NostrService.__init__": {"executed_lines": [689, 690], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "NostrService.get_pubkey": {"executed_lines": [693, 694], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "NostrService.list_relays": {"executed_lines": [697, 698], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "NostrService.add_relay": {"executed_lines": [701, 702, 703], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "NostrService.remove_relay": {"executed_lines": [708, 709, 710], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 10, 11, 12, 13, 14, 16, 18, 19, 20, 23, 24, 26, 29, 30, 32, 35, 36, 38, 41, 42, 44, 45, 48, 49, 51, 54, 55, 57, 60, 61, 63, 64, 67, 68, 70, 71, 74, 75, 77, 80, 81, 83, 84, 85, 88, 89, 91, 92, 93, 94, 95, 96, 97, 98, 101, 102, 103, 104, 105, 108, 109, 112, 113, 116, 117, 119, 123, 130, 137, 147, 158, 164, 171, 177, 185, 192, 193, 195, 199, 205, 214, 220, 227, 228, 230, 234, 245, 251, 258, 259, 261, 265, 278, 294, 298, 306, 313, 358, 382, 399, 420, 437, 456, 466, 483, 510, 515, 520, 527, 532, 533, 535, 539, 543, 597, 601, 605, 613, 617, 624, 625, 627, 631, 676, 680, 685, 686, 688, 692, 696, 700, 707], "summary": {"covered_lines": 116, "num_statements": 116, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"VaultExportRequest": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "VaultExportResponse": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "VaultImportRequest": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ChangePasswordRequest": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "UnlockRequest": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "UnlockResponse": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "BackupParentSeedRequest": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ProfileSwitchRequest": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ProfileRemoveRequest": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "SyncResponse": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "PasswordPolicyOptions": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "AddPasswordEntryRequest": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "GeneratePasswordRequest": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "GeneratePasswordResponse": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "VaultService": {"executed_lines": [120, 121, 126, 127, 128, 133, 134, 135, 140, 141, 142, 145, 150, 151, 154, 155, 156, 161, 162, 167, 168, 169, 174, 175, 180, 181, 188, 189], "summary": {"covered_lines": 28, "num_statements": 28, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ProfileService": {"executed_lines": [196, 197, 202, 203, 208, 209, 210, 217, 218, 223, 224], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "SyncService": {"executed_lines": [231, 232, 237, 238, 239, 240, 241, 242, 243, 248, 249, 254, 255], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "EntryService": {"executed_lines": [262, 263, 271, 272, 291, 292, 295, 296, 299, 300, 301, 302, 303, 304, 307, 308, 311, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 355, 356, 368, 369, 370, 379, 380, 389, 390, 396, 397, 408, 409, 417, 418, 427, 428, 434, 435, 445, 446, 453, 454, 459, 460, 463, 464, 473, 474, 480, 481, 496, 497, 508, 511, 512, 513, 516, 517, 518, 521, 522, 525, 528, 529], "summary": {"covered_lines": 81, "num_statements": 81, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ConfigService": {"executed_lines": [536, 537, 540, 541, 544, 545, 581, 582, 583, 584, 585, 586, 587, 592, 593, 595, 598, 599, 602, 603, 606, 607, 608, 609, 610, 611, 614, 615, 618, 619, 620, 621], "summary": {"covered_lines": 32, "num_statements": 32, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "UtilityService": {"executed_lines": [628, 629, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 660, 662, 665, 666, 670, 671, 673, 674, 677, 678, 681, 682], "summary": {"covered_lines": 29, "num_statements": 32, "percent_covered": 90.625, "percent_covered_display": "91", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [659, 661, 663], "excluded_lines": []}, "NostrService": {"executed_lines": [689, 690, 693, 694, 697, 698, 701, 702, 703, 708, 709, 710], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 10, 11, 12, 13, 14, 16, 18, 19, 20, 23, 24, 26, 29, 30, 32, 35, 36, 38, 41, 42, 44, 45, 48, 49, 51, 54, 55, 57, 60, 61, 63, 64, 67, 68, 70, 71, 74, 75, 77, 80, 81, 83, 84, 85, 88, 89, 91, 92, 93, 94, 95, 96, 97, 98, 101, 102, 103, 104, 105, 108, 109, 112, 113, 116, 117, 119, 123, 130, 137, 147, 158, 164, 171, 177, 185, 192, 193, 195, 199, 205, 214, 220, 227, 228, 230, 234, 245, 251, 258, 259, 261, 265, 278, 294, 298, 306, 313, 358, 382, 399, 420, 437, 456, 466, 483, 510, 515, 520, 527, 532, 533, 535, 539, 543, 597, 601, 605, 613, 617, 624, 625, 627, 631, 676, 680, 685, 686, 688, 692, 696, 700, 707], "summary": {"covered_lines": 116, "num_statements": 116, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/seedpass/core/backup.py": {"executed_lines": [3, 14, 15, 16, 17, 18, 19, 21, 23, 24, 27, 30, 31, 39, 41, 51, 52, 53, 54, 55, 56, 57, 61, 62, 63, 64, 74, 75, 76, 77, 78, 80, 81, 82, 84, 85, 86, 87, 89, 90, 95, 97, 98, 99, 101, 102, 103, 104, 105, 106, 107, 114, 115, 116, 122, 127, 128, 129, 130, 131, 132, 148, 150, 151, 152, 156, 157, 158, 159, 170, 193, 194, 195, 197, 198, 199, 200, 202, 203, 206, 207, 208, 209, 210], "summary": {"covered_lines": 82, "num_statements": 116, "percent_covered": 70.6896551724138, "percent_covered_display": "71", "missing_lines": 34, "excluded_lines": 2}, "missing_lines": [65, 66, 72, 91, 92, 93, 123, 124, 125, 137, 138, 141, 153, 154, 155, 160, 161, 164, 171, 172, 178, 179, 180, 181, 183, 184, 185, 188, 189, 190, 191, 215, 216, 219], "excluded_lines": [108, 109], "functions": {"BackupManager.__init__": {"executed_lines": [51, 52, 53, 54, 55, 56, 57], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "BackupManager.create_backup": {"executed_lines": [62, 63, 64, 74, 75, 76, 77, 78, 80, 81, 82, 84, 85, 86, 87, 89, 90], "summary": {"covered_lines": 17, "num_statements": 23, "percent_covered": 73.91304347826087, "percent_covered_display": "74", "missing_lines": 6, "excluded_lines": 0}, "missing_lines": [65, 66, 72, 91, 92, 93], "excluded_lines": []}, "BackupManager._create_additional_backup": {"executed_lines": [97, 98, 99, 101, 102, 103, 104, 105, 106, 107], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2}, "missing_lines": [], "excluded_lines": [108, 109]}, "BackupManager.restore_latest_backup": {"executed_lines": [115, 116, 122, 127, 128, 129, 130, 131, 132], "summary": {"covered_lines": 9, "num_statements": 15, "percent_covered": 60.0, "percent_covered_display": "60", "missing_lines": 6, "excluded_lines": 0}, "missing_lines": [123, 124, 125, 137, 138, 141], "excluded_lines": []}, "BackupManager.restore_from_backup": {"executed_lines": [150, 151, 152, 156, 157, 158, 159], "summary": {"covered_lines": 7, "num_statements": 13, "percent_covered": 53.84615384615385, "percent_covered_display": "54", "missing_lines": 6, "excluded_lines": 0}, "missing_lines": [153, 154, 155, 160, 161, 164], "excluded_lines": []}, "BackupManager.list_backups": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 13, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 13, "excluded_lines": 0}, "missing_lines": [171, 172, 178, 179, 180, 181, 183, 184, 185, 188, 189, 190, 191], "excluded_lines": []}, "BackupManager.restore_backup_by_timestamp": {"executed_lines": [194, 195, 197, 198, 199, 200, 202, 203, 206, 207, 208, 209, 210], "summary": {"covered_lines": 13, "num_statements": 16, "percent_covered": 81.25, "percent_covered_display": "81", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [215, 216, 219], "excluded_lines": []}, "": {"executed_lines": [3, 14, 15, 16, 17, 18, 19, 21, 23, 24, 27, 30, 31, 39, 41, 61, 95, 114, 148, 170, 193], "summary": {"covered_lines": 19, "num_statements": 19, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"BackupManager": {"executed_lines": [51, 52, 53, 54, 55, 56, 57, 62, 63, 64, 74, 75, 76, 77, 78, 80, 81, 82, 84, 85, 86, 87, 89, 90, 97, 98, 99, 101, 102, 103, 104, 105, 106, 107, 115, 116, 122, 127, 128, 129, 130, 131, 132, 150, 151, 152, 156, 157, 158, 159, 194, 195, 197, 198, 199, 200, 202, 203, 206, 207, 208, 209, 210], "summary": {"covered_lines": 63, "num_statements": 97, "percent_covered": 64.94845360824742, "percent_covered_display": "65", "missing_lines": 34, "excluded_lines": 2}, "missing_lines": [65, 66, 72, 91, 92, 93, 123, 124, 125, 137, 138, 141, 153, 154, 155, 160, 161, 164, 171, 172, 178, 179, 180, 181, 183, 184, 185, 188, 189, 190, 191, 215, 216, 219], "excluded_lines": [108, 109]}, "": {"executed_lines": [3, 14, 15, 16, 17, 18, 19, 21, 23, 24, 27, 30, 31, 39, 41, 61, 95, 114, 148, 170, 193], "summary": {"covered_lines": 19, "num_statements": 19, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/seedpass/core/config_manager.py": {"executed_lines": [1, 3, 5, 6, 7, 9, 11, 13, 14, 16, 18, 21, 24, 25, 27, 29, 30, 31, 32, 34, 43, 44, 45, 71, 72, 73, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 102, 103, 104, 105, 106, 107, 115, 120, 122, 123, 124, 129, 131, 132, 133, 134, 135, 137, 139, 140, 141, 142, 144, 146, 147, 148, 150, 152, 154, 155, 156, 159, 161, 162, 163, 165, 167, 169, 170, 171, 173, 178, 180, 182, 183, 184, 186, 188, 189, 191, 199, 201, 202, 204, 212, 217, 219, 220, 221, 223, 225, 226, 227, 229, 231, 232, 233, 235, 237, 238, 239, 241, 243, 244, 246, 248, 249, 251, 253, 255, 256, 257, 259, 261, 262, 264, 266, 268, 269, 270, 272, 274, 275, 278, 280, 282, 283, 294, 299, 304, 309, 314, 316, 317, 318, 320, 322, 323, 324, 326, 328, 329, 330, 332, 334, 335, 336, 338, 340, 341, 342, 344, 346, 347, 349, 351, 353, 354, 355, 357, 359, 360, 362, 364, 366, 367, 368, 370, 372, 373, 375, 380, 381, 382], "summary": {"covered_lines": 191, "num_statements": 241, "percent_covered": 79.25311203319502, "percent_covered_display": "79", "missing_lines": 50, "excluded_lines": 2}, "missing_lines": [74, 108, 109, 110, 111, 112, 114, 116, 117, 118, 125, 126, 127, 149, 157, 168, 175, 176, 181, 193, 194, 195, 196, 197, 206, 207, 208, 209, 210, 214, 215, 254, 267, 295, 296, 297, 300, 301, 302, 305, 306, 307, 310, 311, 312, 352, 365, 376, 377, 378], "excluded_lines": [18, 19], "functions": {"ConfigManager.__init__": {"executed_lines": [30, 31, 32], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ConfigManager.load_config": {"executed_lines": [43, 44, 45, 71, 72, 73, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 102, 103, 104, 105, 106, 107, 115], "summary": {"covered_lines": 37, "num_statements": 47, "percent_covered": 78.72340425531915, "percent_covered_display": "79", "missing_lines": 10, "excluded_lines": 0}, "missing_lines": [74, 108, 109, 110, 111, 112, 114, 116, 117, 118], "excluded_lines": []}, "ConfigManager.save_config": {"executed_lines": [122, 123, 124], "summary": {"covered_lines": 3, "num_statements": 6, "percent_covered": 50.0, "percent_covered_display": "50", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [125, 126, 127], "excluded_lines": []}, "ConfigManager.set_relays": {"executed_lines": [131, 132, 133, 134, 135], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ConfigManager.set_pin": {"executed_lines": [139, 140, 141, 142], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ConfigManager.verify_pin": {"executed_lines": [146, 147, 148, 150], "summary": {"covered_lines": 4, "num_statements": 5, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [149], "excluded_lines": []}, "ConfigManager.change_pin": {"executed_lines": [154, 155, 156], "summary": {"covered_lines": 3, "num_statements": 4, "percent_covered": 75.0, "percent_covered_display": "75", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [157], "excluded_lines": []}, "ConfigManager.set_password_hash": {"executed_lines": [161, 162, 163], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ConfigManager.set_inactivity_timeout": {"executed_lines": [167, 169, 170, 171], "summary": {"covered_lines": 4, "num_statements": 5, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [168], "excluded_lines": []}, "ConfigManager.get_inactivity_timeout": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [175, 176], "excluded_lines": []}, "ConfigManager.set_kdf_iterations": {"executed_lines": [180, 182, 183, 184], "summary": {"covered_lines": 4, "num_statements": 5, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [181], "excluded_lines": []}, "ConfigManager.get_kdf_iterations": {"executed_lines": [188, 189], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ConfigManager.set_kdf_mode": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 0}, "missing_lines": [193, 194, 195, 196, 197], "excluded_lines": []}, "ConfigManager.get_kdf_mode": {"executed_lines": [201, 202], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ConfigManager.set_argon2_time_cost": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 0}, "missing_lines": [206, 207, 208, 209, 210], "excluded_lines": []}, "ConfigManager.get_argon2_time_cost": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [214, 215], "excluded_lines": []}, "ConfigManager.set_additional_backup_path": {"executed_lines": [219, 220, 221], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ConfigManager.get_additional_backup_path": {"executed_lines": [225, 226, 227], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ConfigManager.set_secret_mode_enabled": {"executed_lines": [231, 232, 233], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ConfigManager.set_offline_mode": {"executed_lines": [237, 238, 239], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ConfigManager.get_secret_mode_enabled": {"executed_lines": [243, 244], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ConfigManager.get_offline_mode": {"executed_lines": [248, 249], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ConfigManager.set_clipboard_clear_delay": {"executed_lines": [253, 255, 256, 257], "summary": {"covered_lines": 4, "num_statements": 5, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [254], "excluded_lines": []}, "ConfigManager.get_clipboard_clear_delay": {"executed_lines": [261, 262], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ConfigManager.set_backup_interval": {"executed_lines": [266, 268, 269, 270], "summary": {"covered_lines": 4, "num_statements": 5, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [267], "excluded_lines": []}, "ConfigManager.get_backup_interval": {"executed_lines": [274, 275], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ConfigManager.get_password_policy": {"executed_lines": [280, 282, 283], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ConfigManager.set_min_uppercase": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [295, 296, 297], "excluded_lines": []}, "ConfigManager.set_min_lowercase": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [300, 301, 302], "excluded_lines": []}, "ConfigManager.set_min_digits": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [305, 306, 307], "excluded_lines": []}, "ConfigManager.set_min_special": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [310, 311, 312], "excluded_lines": []}, "ConfigManager.set_include_special_chars": {"executed_lines": [316, 317, 318], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ConfigManager.set_allowed_special_chars": {"executed_lines": [322, 323, 324], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ConfigManager.set_special_mode": {"executed_lines": [328, 329, 330], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ConfigManager.set_exclude_ambiguous": {"executed_lines": [334, 335, 336], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ConfigManager.set_quick_unlock": {"executed_lines": [340, 341, 342], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ConfigManager.get_quick_unlock": {"executed_lines": [346, 347], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ConfigManager.set_nostr_max_retries": {"executed_lines": [351, 353, 354, 355], "summary": {"covered_lines": 4, "num_statements": 5, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [352], "excluded_lines": []}, "ConfigManager.get_nostr_max_retries": {"executed_lines": [359, 360], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ConfigManager.set_nostr_retry_delay": {"executed_lines": [364, 366, 367, 368], "summary": {"covered_lines": 4, "num_statements": 5, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [365], "excluded_lines": []}, "ConfigManager.get_nostr_retry_delay": {"executed_lines": [372, 373], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ConfigManager.set_verbose_timing": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [376, 377, 378], "excluded_lines": []}, "ConfigManager.get_verbose_timing": {"executed_lines": [381, 382], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 5, 6, 7, 9, 11, 13, 14, 16, 18, 21, 24, 25, 27, 29, 34, 120, 129, 137, 144, 152, 159, 165, 173, 178, 186, 191, 199, 204, 212, 217, 223, 229, 235, 241, 246, 251, 259, 264, 272, 278, 294, 299, 304, 309, 314, 320, 326, 332, 338, 344, 349, 357, 362, 370, 375, 380], "summary": {"covered_lines": 55, "num_statements": 55, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2}, "missing_lines": [], "excluded_lines": [18, 19]}}, "classes": {"ConfigManager": {"executed_lines": [30, 31, 32, 43, 44, 45, 71, 72, 73, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 102, 103, 104, 105, 106, 107, 115, 122, 123, 124, 131, 132, 133, 134, 135, 139, 140, 141, 142, 146, 147, 148, 150, 154, 155, 156, 161, 162, 163, 167, 169, 170, 171, 180, 182, 183, 184, 188, 189, 201, 202, 219, 220, 221, 225, 226, 227, 231, 232, 233, 237, 238, 239, 243, 244, 248, 249, 253, 255, 256, 257, 261, 262, 266, 268, 269, 270, 274, 275, 280, 282, 283, 316, 317, 318, 322, 323, 324, 328, 329, 330, 334, 335, 336, 340, 341, 342, 346, 347, 351, 353, 354, 355, 359, 360, 364, 366, 367, 368, 372, 373, 381, 382], "summary": {"covered_lines": 136, "num_statements": 186, "percent_covered": 73.11827956989248, "percent_covered_display": "73", "missing_lines": 50, "excluded_lines": 0}, "missing_lines": [74, 108, 109, 110, 111, 112, 114, 116, 117, 118, 125, 126, 127, 149, 157, 168, 175, 176, 181, 193, 194, 195, 196, 197, 206, 207, 208, 209, 210, 214, 215, 254, 267, 295, 296, 297, 300, 301, 302, 305, 306, 307, 310, 311, 312, 352, 365, 376, 377, 378], "excluded_lines": []}, "": {"executed_lines": [1, 3, 5, 6, 7, 9, 11, 13, 14, 16, 18, 21, 24, 25, 27, 29, 34, 120, 129, 137, 144, 152, 159, 165, 173, 178, 186, 191, 199, 204, 212, 217, 223, 229, 235, 241, 246, 251, 259, 264, 272, 278, 294, 299, 304, 309, 314, 320, 326, 332, 338, 344, 349, 357, 362, 370, 375, 380], "summary": {"covered_lines": 55, "num_statements": 55, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2}, "missing_lines": [], "excluded_lines": [18, 19]}}}, "src/seedpass/core/encryption.py": {"executed_lines": [3, 4, 6, 7, 9, 10, 16, 17, 18, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 35, 38, 40, 41, 42, 45, 46, 48, 49, 52, 53, 56, 57, 62, 71, 72, 74, 75, 79, 80, 82, 83, 85, 94, 95, 97, 99, 105, 106, 107, 108, 110, 111, 112, 117, 131, 133, 135, 136, 137, 138, 139, 144, 145, 146, 147, 152, 153, 154, 155, 156, 157, 158, 161, 162, 163, 166, 167, 168, 171, 181, 182, 183, 184, 185, 188, 192, 193, 198, 199, 200, 206, 211, 212, 213, 214, 215, 218, 219, 220, 221, 222, 223, 225, 228, 234, 237, 238, 239, 247, 266, 267, 268, 269, 271, 275, 276, 277, 279, 281, 282, 283, 285, 286, 289, 291, 292, 293, 295, 297, 298, 299, 300, 303, 311, 312, 313, 316, 317, 318, 319, 320, 321, 322, 325, 330, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 347, 348, 349, 350, 351, 352, 353, 355, 356, 357, 358, 359, 360, 361, 363, 370, 371, 372, 373, 376, 377, 379, 386, 387, 388, 389, 390, 391, 392, 397, 398, 399, 401, 402, 405, 407, 408, 411, 412, 417, 418, 419, 420, 421, 423, 424, 425, 426, 430, 436, 441, 442, 443, 444, 445, 446, 447, 448, 450, 470, 471, 473, 474, 475, 477, 478, 479, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 496, 497, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 512, 515, 516, 517, 518, 521, 527, 528, 560, 562, 563, 564, 565, 568, 569, 570, 571, 572, 575, 576, 579, 580, 581, 582, 589, 590, 591, 592, 593, 594, 595, 603, 609, 610, 611, 612, 613, 614, 619], "summary": {"covered_lines": 285, "num_statements": 343, "percent_covered": 83.09037900874635, "percent_covered_display": "83", "missing_lines": 58, "excluded_lines": 23}, "missing_lines": [76, 86, 87, 91, 109, 113, 114, 115, 140, 141, 172, 173, 176, 240, 241, 301, 315, 375, 395, 414, 427, 428, 429, 437, 438, 439, 481, 529, 530, 531, 535, 541, 542, 543, 566, 583, 584, 596, 597, 601, 615, 616, 617, 620, 621, 622, 623, 625, 626, 627, 628, 630, 631, 632, 633, 634, 635, 636], "excluded_lines": [11, 12, 13, 15, 201, 202, 229, 230, 238, 239, 321, 322, 430, 431, 432, 433, 544, 545, 546, 550, 556, 557, 558], "functions": {"_derive_legacy_key_from_password": {"executed_lines": [40, 41, 42], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "LegacyFormatRequiresMigrationError.__init__": {"executed_lines": [49, 52, 53], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "EncryptionManager.__init__": {"executed_lines": [71, 72, 74, 75, 79, 80, 82, 83, 85, 94, 95, 97], "summary": {"covered_lines": 12, "num_statements": 16, "percent_covered": 75.0, "percent_covered_display": "75", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [76, 86, 87, 91], "excluded_lines": []}, "EncryptionManager.encrypt_data": {"executed_lines": [105, 106, 107, 108, 110, 111, 112], "summary": {"covered_lines": 7, "num_statements": 11, "percent_covered": 63.63636363636363, "percent_covered_display": "64", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [109, 113, 114, 115], "excluded_lines": []}, "EncryptionManager.decrypt_data": {"executed_lines": [131, 133, 135, 136, 137, 138, 139, 144, 145, 146, 147, 152, 153, 154, 155, 156, 157, 158, 161, 162, 163, 166, 167, 168, 171, 181, 182, 183, 184, 185, 188, 192, 193, 198, 199, 200], "summary": {"covered_lines": 36, "num_statements": 41, "percent_covered": 87.8048780487805, "percent_covered_display": "88", "missing_lines": 5, "excluded_lines": 2}, "missing_lines": [140, 141, 172, 173, 176], "excluded_lines": [201, 202]}, "EncryptionManager.decrypt_legacy": {"executed_lines": [211, 212, 213, 214, 215, 218, 219, 220, 221, 222, 223, 225, 228, 234, 237, 238, 239], "summary": {"covered_lines": 15, "num_statements": 17, "percent_covered": 88.23529411764706, "percent_covered_display": "88", "missing_lines": 2, "excluded_lines": 4}, "missing_lines": [240, 241], "excluded_lines": [229, 230, 238, 239]}, "EncryptionManager.resolve_relative_path": {"executed_lines": [266, 267, 268, 269], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "EncryptionManager.encrypt_parent_seed": {"executed_lines": [275, 276, 277], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "EncryptionManager.decrypt_parent_seed": {"executed_lines": [281, 282, 283, 285, 286, 289, 291, 292, 293, 295], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "EncryptionManager._serialize": {"executed_lines": [298, 299, 300], "summary": {"covered_lines": 3, "num_statements": 4, "percent_covered": 75.0, "percent_covered_display": "75", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [301], "excluded_lines": []}, "EncryptionManager._deserialize": {"executed_lines": [311, 312, 313, 316, 317, 318, 319, 320, 321, 322, 325], "summary": {"covered_lines": 9, "num_statements": 10, "percent_covered": 90.0, "percent_covered_display": "90", "missing_lines": 1, "excluded_lines": 2}, "missing_lines": [315], "excluded_lines": [321, 322]}, "EncryptionManager.encrypt_and_save_file": {"executed_lines": [333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "EncryptionManager.decrypt_file": {"executed_lines": [348, 349, 350, 351, 352, 353], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "EncryptionManager.get_file_kdf": {"executed_lines": [356, 357, 358, 359, 360, 361], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "EncryptionManager.save_json_data": {"executed_lines": [370, 371, 372, 373, 376, 377], "summary": {"covered_lines": 6, "num_statements": 7, "percent_covered": 85.71428571428571, "percent_covered_display": "86", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [375], "excluded_lines": []}, "EncryptionManager.load_json_data": {"executed_lines": [386, 387, 388, 389, 390, 391, 392, 397, 398, 399, 401, 402, 405, 407, 408, 411, 412, 417, 418, 419, 420, 421, 423, 424, 425, 426, 430, 436], "summary": {"covered_lines": 27, "num_statements": 35, "percent_covered": 77.14285714285714, "percent_covered_display": "77", "missing_lines": 8, "excluded_lines": 4}, "missing_lines": [395, 414, 427, 428, 429, 437, 438, 439], "excluded_lines": [430, 431, 432, 433]}, "EncryptionManager.get_encrypted_index": {"executed_lines": [442, 443, 444, 445, 446, 447, 448], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "EncryptionManager.decrypt_and_save_index_from_nostr": {"executed_lines": [470, 471, 473, 474, 475, 477, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 512, 515, 516, 517, 518, 521, 527, 528], "summary": {"covered_lines": 25, "num_statements": 32, "percent_covered": 78.125, "percent_covered_display": "78", "missing_lines": 7, "excluded_lines": 7}, "missing_lines": [529, 530, 531, 535, 541, 542, 543], "excluded_lines": [544, 545, 546, 550, 556, 557, 558]}, "EncryptionManager.decrypt_and_save_index_from_nostr._process": {"executed_lines": [478, 479, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 496, 497], "summary": {"covered_lines": 16, "num_statements": 17, "percent_covered": 94.11764705882354, "percent_covered_display": "94", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [481], "excluded_lines": []}, "EncryptionManager.update_checksum": {"executed_lines": [562, 563, 564, 565, 568, 569, 570, 571, 572, 575, 576, 579, 580, 581, 582, 589, 590, 591, 592, 593, 594, 595], "summary": {"covered_lines": 22, "num_statements": 28, "percent_covered": 78.57142857142857, "percent_covered_display": "79", "missing_lines": 6, "excluded_lines": 0}, "missing_lines": [566, 583, 584, 596, 597, 601], "excluded_lines": []}, "EncryptionManager.validate_seed": {"executed_lines": [609, 610, 611, 612, 613, 614], "summary": {"covered_lines": 6, "num_statements": 9, "percent_covered": 66.66666666666667, "percent_covered_display": "67", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [615, 616, 617], "excluded_lines": []}, "EncryptionManager.derive_seed_from_mnemonic": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 15, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 15, "excluded_lines": 0}, "missing_lines": [620, 621, 622, 623, 625, 626, 627, 628, 630, 631, 632, 633, 634, 635, 636], "excluded_lines": []}, "": {"executed_lines": [3, 4, 6, 7, 9, 10, 16, 17, 18, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 35, 38, 45, 46, 48, 56, 57, 62, 99, 117, 206, 247, 271, 279, 297, 303, 330, 347, 355, 363, 379, 441, 450, 560, 603, 619], "summary": {"covered_lines": 46, "num_statements": 46, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 4}, "missing_lines": [], "excluded_lines": [11, 12, 13, 15]}}, "classes": {"LegacyFormatRequiresMigrationError": {"executed_lines": [49, 52, 53], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "EncryptionManager": {"executed_lines": [71, 72, 74, 75, 79, 80, 82, 83, 85, 94, 95, 97, 105, 106, 107, 108, 110, 111, 112, 131, 133, 135, 136, 137, 138, 139, 144, 145, 146, 147, 152, 153, 154, 155, 156, 157, 158, 161, 162, 163, 166, 167, 168, 171, 181, 182, 183, 184, 185, 188, 192, 193, 198, 199, 200, 211, 212, 213, 214, 215, 218, 219, 220, 221, 222, 223, 225, 228, 234, 237, 238, 239, 266, 267, 268, 269, 275, 276, 277, 281, 282, 283, 285, 286, 289, 291, 292, 293, 295, 298, 299, 300, 311, 312, 313, 316, 317, 318, 319, 320, 321, 322, 325, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 348, 349, 350, 351, 352, 353, 356, 357, 358, 359, 360, 361, 370, 371, 372, 373, 376, 377, 386, 387, 388, 389, 390, 391, 392, 397, 398, 399, 401, 402, 405, 407, 408, 411, 412, 417, 418, 419, 420, 421, 423, 424, 425, 426, 430, 436, 442, 443, 444, 445, 446, 447, 448, 470, 471, 473, 474, 475, 477, 478, 479, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 496, 497, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 512, 515, 516, 517, 518, 521, 527, 528, 562, 563, 564, 565, 568, 569, 570, 571, 572, 575, 576, 579, 580, 581, 582, 589, 590, 591, 592, 593, 594, 595, 609, 610, 611, 612, 613, 614], "summary": {"covered_lines": 233, "num_statements": 291, "percent_covered": 80.06872852233677, "percent_covered_display": "80", "missing_lines": 58, "excluded_lines": 19}, "missing_lines": [76, 86, 87, 91, 109, 113, 114, 115, 140, 141, 172, 173, 176, 240, 241, 301, 315, 375, 395, 414, 427, 428, 429, 437, 438, 439, 481, 529, 530, 531, 535, 541, 542, 543, 566, 583, 584, 596, 597, 601, 615, 616, 617, 620, 621, 622, 623, 625, 626, 627, 628, 630, 631, 632, 633, 634, 635, 636], "excluded_lines": [201, 202, 229, 230, 238, 239, 321, 322, 430, 431, 432, 433, 544, 545, 546, 550, 556, 557, 558]}, "": {"executed_lines": [3, 4, 6, 7, 9, 10, 16, 17, 18, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 35, 38, 40, 41, 42, 45, 46, 48, 56, 57, 62, 99, 117, 206, 247, 271, 279, 297, 303, 330, 347, 355, 363, 379, 441, 450, 560, 603, 619], "summary": {"covered_lines": 49, "num_statements": 49, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 4}, "missing_lines": [], "excluded_lines": [11, 12, 13, 15]}}}, "src/seedpass/core/entry_management.py": {"executed_lines": [3, 18, 19, 21, 26, 27, 28, 29, 30, 31, 33, 34, 35, 36, 37, 38, 39, 40, 48, 49, 50, 53, 56, 57, 64, 65, 66, 69, 70, 72, 74, 76, 78, 80, 81, 82, 84, 85, 86, 88, 89, 90, 91, 93, 94, 96, 101, 103, 104, 107, 108, 109, 110, 111, 116, 119, 120, 121, 123, 124, 125, 126, 127, 132, 138, 139, 140, 141, 142, 145, 146, 152, 183, 184, 185, 187, 188, 202, 203, 204, 205, 207, 209, 211, 213, 215, 216, 217, 219, 220, 222, 224, 228, 229, 230, 232, 233, 235, 242, 244, 245, 246, 254, 256, 271, 272, 273, 275, 276, 278, 279, 280, 281, 283, 297, 298, 299, 300, 301, 315, 317, 318, 319, 321, 322, 327, 343, 344, 346, 348, 349, 350, 352, 353, 354, 364, 365, 366, 367, 369, 372, 373, 374, 375, 378, 380, 381, 383, 396, 397, 399, 400, 401, 403, 404, 406, 407, 408, 410, 411, 412, 424, 425, 426, 427, 429, 432, 433, 434, 435, 438, 439, 440, 442, 443, 445, 446, 447, 448, 450, 461, 462, 464, 465, 466, 468, 469, 470, 471, 472, 473, 474, 475, 477, 478, 479, 489, 490, 491, 492, 494, 507, 509, 510, 511, 524, 525, 526, 527, 529, 532, 533, 534, 535, 540, 541, 542, 544, 545, 547, 548, 549, 550, 551, 552, 554, 566, 567, 569, 570, 571, 573, 574, 575, 576, 577, 579, 580, 581, 592, 593, 594, 595, 597, 600, 601, 602, 603, 608, 609, 610, 612, 613, 615, 616, 617, 619, 634, 635, 637, 638, 639, 641, 642, 644, 646, 647, 648, 649, 651, 652, 654, 655, 656, 669, 670, 671, 672, 674, 677, 678, 679, 680, 686, 687, 688, 690, 691, 693, 694, 695, 697, 703, 704, 705, 706, 710, 715, 717, 724, 725, 726, 727, 731, 732, 734, 735, 736, 738, 740, 741, 742, 743, 748, 749, 751, 755, 756, 757, 758, 759, 760, 762, 763, 764, 765, 766, 768, 769, 772, 773, 782, 784, 790, 791, 799, 806, 807, 808, 810, 811, 812, 817, 818, 821, 822, 837, 876, 877, 878, 880, 892, 894, 916, 990, 991, 994, 995, 999, 1000, 1003, 1004, 1005, 1006, 1007, 1008, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1019, 1020, 1021, 1022, 1026, 1027, 1028, 1029, 1030, 1031, 1033, 1036, 1037, 1038, 1040, 1044, 1045, 1046, 1048, 1052, 1053, 1054, 1056, 1057, 1059, 1061, 1063, 1065, 1067, 1069, 1071, 1073, 1078, 1080, 1081, 1085, 1086, 1087, 1089, 1090, 1094, 1095, 1096, 1099, 1101, 1103, 1105, 1107, 1109, 1130, 1131, 1132, 1134, 1135, 1136, 1137, 1138, 1140, 1141, 1142, 1143, 1144, 1147, 1148, 1150, 1153, 1155, 1156, 1158, 1159, 1160, 1164, 1165, 1168, 1169, 1171, 1172, 1173, 1174, 1175, 1176, 1186, 1196, 1197, 1198, 1199, 1202, 1203, 1204, 1205, 1206, 1209, 1215, 1216, 1222, 1227, 1228, 1235, 1236, 1242, 1244, 1252, 1261, 1262, 1264, 1267, 1268, 1272, 1273, 1277, 1278, 1280, 1281, 1284, 1285, 1286, 1288, 1289, 1290, 1291, 1293, 1294, 1305, 1307, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1344, 1348, 1349, 1350, 1351, 1354, 1356, 1358, 1359, 1365, 1407, 1440, 1447, 1448, 1449, 1451, 1452, 1454, 1455, 1456, 1457, 1459, 1462, 1463, 1464, 1466, 1467, 1469, 1470], "summary": {"covered_lines": 535, "num_statements": 667, "percent_covered": 80.20989505247377, "percent_covered_display": "80", "missing_lines": 132, "excluded_lines": 3}, "missing_lines": [92, 95, 100, 102, 105, 106, 112, 113, 114, 128, 129, 130, 144, 147, 148, 149, 150, 206, 208, 210, 212, 214, 218, 237, 238, 239, 240, 277, 282, 323, 324, 325, 376, 436, 538, 606, 684, 709, 711, 712, 713, 714, 730, 733, 746, 761, 767, 771, 792, 793, 794, 797, 824, 825, 826, 828, 829, 832, 835, 881, 884, 890, 1001, 1002, 1034, 1039, 1049, 1050, 1058, 1060, 1062, 1064, 1066, 1068, 1070, 1072, 1074, 1075, 1076, 1151, 1246, 1247, 1248, 1249, 1250, 1265, 1328, 1331, 1338, 1339, 1340, 1361, 1362, 1363, 1371, 1372, 1373, 1374, 1375, 1380, 1382, 1385, 1387, 1388, 1394, 1395, 1397, 1398, 1401, 1415, 1416, 1421, 1422, 1423, 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1435, 1436, 1437, 1438, 1458, 1471, 1472, 1473, 1474], "excluded_lines": [22, 23, 25], "functions": {"EntryManager.__init__": {"executed_lines": [64, 65, 66, 69, 70, 72, 74], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "EntryManager.clear_cache": {"executed_lines": [78], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "EntryManager._load_index": {"executed_lines": [81, 82, 84, 85, 86, 88, 89, 90, 91, 93, 94, 96, 101, 103, 104, 107, 108, 109, 110, 111, 116, 119, 120, 121], "summary": {"covered_lines": 24, "num_statements": 33, "percent_covered": 72.72727272727273, "percent_covered_display": "73", "missing_lines": 9, "excluded_lines": 0}, "missing_lines": [92, 95, 100, 102, 105, 106, 112, 113, 114], "excluded_lines": []}, "EntryManager._save_index": {"executed_lines": [124, 125, 126, 127], "summary": {"covered_lines": 4, "num_statements": 7, "percent_covered": 57.142857142857146, "percent_covered_display": "57", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [128, 129, 130], "excluded_lines": []}, "EntryManager.get_next_index": {"executed_lines": [138, 139, 140, 141, 142, 145, 146], "summary": {"covered_lines": 7, "num_statements": 12, "percent_covered": 58.333333333333336, "percent_covered_display": "58", "missing_lines": 5, "excluded_lines": 0}, "missing_lines": [144, 147, 148, 149, 150], "excluded_lines": []}, "EntryManager.add_entry": {"executed_lines": [183, 184, 185, 187, 188, 202, 203, 204, 205, 207, 209, 211, 213, 215, 216, 217, 219, 220, 222, 224, 228, 229, 230, 232, 233, 235], "summary": {"covered_lines": 26, "num_statements": 36, "percent_covered": 72.22222222222223, "percent_covered_display": "72", "missing_lines": 10, "excluded_lines": 0}, "missing_lines": [206, 208, 210, 212, 214, 218, 237, 238, 239, 240], "excluded_lines": []}, "EntryManager.get_next_totp_index": {"executed_lines": [244, 245, 246, 254], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "EntryManager.add_totp": {"executed_lines": [271, 272, 273, 275, 276, 278, 279, 280, 281, 283, 297, 298, 299, 300, 301, 315, 317, 318, 319, 321, 322], "summary": {"covered_lines": 21, "num_statements": 26, "percent_covered": 80.76923076923077, "percent_covered_display": "81", "missing_lines": 5, "excluded_lines": 0}, "missing_lines": [277, 282, 323, 324, 325], "excluded_lines": []}, "EntryManager.add_ssh_key": {"executed_lines": [343, 344, 346, 348, 349, 350, 352, 353, 354, 364, 365, 366, 367], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "EntryManager.get_ssh_key_pair": {"executed_lines": [372, 373, 374, 375, 378, 380, 381], "summary": {"covered_lines": 7, "num_statements": 8, "percent_covered": 87.5, "percent_covered_display": "88", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [376], "excluded_lines": []}, "EntryManager.add_pgp_key": {"executed_lines": [396, 397, 399, 400, 401, 403, 404, 406, 407, 408, 410, 411, 412, 424, 425, 426, 427], "summary": {"covered_lines": 17, "num_statements": 17, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "EntryManager.get_pgp_key": {"executed_lines": [432, 433, 434, 435, 438, 439, 440, 442, 443, 445, 446, 447, 448], "summary": {"covered_lines": 13, "num_statements": 14, "percent_covered": 92.85714285714286, "percent_covered_display": "93", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [436], "excluded_lines": []}, "EntryManager.add_nostr_key": {"executed_lines": [461, 462, 464, 465, 466, 468, 469, 470, 471, 472, 473, 474, 475, 477, 478, 479, 489, 490, 491, 492], "summary": {"covered_lines": 20, "num_statements": 20, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "EntryManager.add_key_value": {"executed_lines": [507, 509, 510, 511, 524, 525, 526, 527], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "EntryManager.get_nostr_key_pair": {"executed_lines": [532, 533, 534, 535, 540, 541, 542, 544, 545, 547, 548, 549, 550, 551, 552], "summary": {"covered_lines": 15, "num_statements": 16, "percent_covered": 93.75, "percent_covered_display": "94", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [538], "excluded_lines": []}, "EntryManager.add_seed": {"executed_lines": [566, 567, 569, 570, 571, 573, 574, 575, 576, 577, 579, 580, 581, 592, 593, 594, 595], "summary": {"covered_lines": 17, "num_statements": 17, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "EntryManager.get_seed_phrase": {"executed_lines": [600, 601, 602, 603, 608, 609, 610, 612, 613, 615, 616, 617], "summary": {"covered_lines": 12, "num_statements": 13, "percent_covered": 92.3076923076923, "percent_covered_display": "92", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [606], "excluded_lines": []}, "EntryManager.add_managed_account": {"executed_lines": [634, 635, 637, 638, 639, 641, 642, 644, 646, 647, 648, 649, 651, 652, 654, 655, 656, 669, 670, 671, 672], "summary": {"covered_lines": 21, "num_statements": 21, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "EntryManager.get_managed_account_seed": {"executed_lines": [677, 678, 679, 680, 686, 687, 688, 690, 691, 693, 694, 695], "summary": {"covered_lines": 12, "num_statements": 13, "percent_covered": 92.3076923076923, "percent_covered_display": "92", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [684], "excluded_lines": []}, "EntryManager.get_totp_secret": {"executed_lines": [703, 704, 705, 706, 710, 715], "summary": {"covered_lines": 6, "num_statements": 11, "percent_covered": 54.54545454545455, "percent_covered_display": "55", "missing_lines": 5, "excluded_lines": 0}, "missing_lines": [709, 711, 712, 713, 714], "excluded_lines": []}, "EntryManager.get_totp_code": {"executed_lines": [724, 725, 726, 727, 731, 732, 734, 735, 736], "summary": {"covered_lines": 9, "num_statements": 11, "percent_covered": 81.81818181818181, "percent_covered_display": "82", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [730, 733], "excluded_lines": []}, "EntryManager.get_totp_time_remaining": {"executed_lines": [740, 741, 742, 743, 748, 749], "summary": {"covered_lines": 6, "num_statements": 7, "percent_covered": 85.71428571428571, "percent_covered_display": "86", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [746], "excluded_lines": []}, "EntryManager.export_totp_entries": {"executed_lines": [755, 756, 757, 758, 759, 760, 762, 763, 764, 765, 766, 768, 769, 772, 773, 782], "summary": {"covered_lines": 16, "num_statements": 19, "percent_covered": 84.21052631578948, "percent_covered_display": "84", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [761, 767, 771], "excluded_lines": []}, "EntryManager.get_encrypted_index": {"executed_lines": [790, 791], "summary": {"covered_lines": 2, "num_statements": 6, "percent_covered": 33.333333333333336, "percent_covered_display": "33", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [792, 793, 794, 797], "excluded_lines": []}, "EntryManager.retrieve_entry": {"executed_lines": [806, 807, 808, 810, 811, 812, 817, 818, 821, 822], "summary": {"covered_lines": 10, "num_statements": 17, "percent_covered": 58.8235294117647, "percent_covered_display": "59", "missing_lines": 7, "excluded_lines": 0}, "missing_lines": [824, 825, 826, 828, 829, 832, 835], "excluded_lines": []}, "EntryManager.modify_entry": {"executed_lines": [876, 877, 878, 880, 892, 894, 916, 990, 991, 994, 995, 999, 1000, 1003, 1004, 1005, 1006, 1007, 1008, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1019, 1020, 1021, 1022, 1026, 1027, 1028, 1029, 1030, 1031, 1033, 1036, 1037, 1038, 1040, 1044, 1045, 1046, 1048, 1052, 1053, 1054, 1056, 1057, 1059, 1061, 1063, 1065, 1067, 1069, 1071, 1073, 1078, 1080, 1081, 1085, 1086, 1087, 1089, 1090, 1094, 1095, 1096, 1099], "summary": {"covered_lines": 70, "num_statements": 90, "percent_covered": 77.77777777777777, "percent_covered_display": "78", "missing_lines": 20, "excluded_lines": 0}, "missing_lines": [881, 884, 890, 1001, 1002, 1034, 1039, 1049, 1050, 1058, 1060, 1062, 1064, 1066, 1068, 1070, 1072, 1074, 1075, 1076], "excluded_lines": []}, "EntryManager.archive_entry": {"executed_lines": [1103], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "EntryManager.restore_entry": {"executed_lines": [1107], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "EntryManager.list_entries": {"executed_lines": [1130, 1131, 1132, 1134, 1135, 1136, 1137, 1138, 1140, 1153, 1155, 1156, 1158, 1159, 1160, 1164, 1165, 1168, 1169, 1171, 1172, 1173, 1174, 1175, 1176, 1186, 1196, 1197, 1198, 1199, 1202, 1203, 1204, 1205, 1206, 1209, 1215, 1216, 1222, 1227, 1228, 1235, 1236, 1242, 1244], "summary": {"covered_lines": 45, "num_statements": 50, "percent_covered": 90.0, "percent_covered_display": "90", "missing_lines": 5, "excluded_lines": 0}, "missing_lines": [1246, 1247, 1248, 1249, 1250], "excluded_lines": []}, "EntryManager.list_entries.sort_key": {"executed_lines": [1141, 1142, 1143, 1144, 1147, 1148, 1150], "summary": {"covered_lines": 7, "num_statements": 8, "percent_covered": 87.5, "percent_covered_display": "88", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [1151], "excluded_lines": []}, "EntryManager.search_entries": {"executed_lines": [1261, 1262, 1264, 1267, 1268, 1272, 1273, 1277, 1278, 1280, 1281, 1284, 1285, 1286, 1288, 1289, 1290, 1291, 1293, 1294, 1305], "summary": {"covered_lines": 21, "num_statements": 22, "percent_covered": 95.45454545454545, "percent_covered_display": "95", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [1265], "excluded_lines": []}, "EntryManager.delete_entry": {"executed_lines": [1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322], "summary": {"covered_lines": 10, "num_statements": 15, "percent_covered": 66.66666666666667, "percent_covered_display": "67", "missing_lines": 5, "excluded_lines": 0}, "missing_lines": [1328, 1331, 1338, 1339, 1340], "excluded_lines": []}, "EntryManager.update_checksum": {"executed_lines": [1348, 1349, 1350, 1351, 1354, 1356, 1358, 1359], "summary": {"covered_lines": 8, "num_statements": 11, "percent_covered": 72.72727272727273, "percent_covered_display": "73", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [1361, 1362, 1363], "excluded_lines": []}, "EntryManager.restore_from_backup": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 15, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 15, "excluded_lines": 0}, "missing_lines": [1371, 1372, 1373, 1374, 1375, 1380, 1382, 1385, 1387, 1388, 1394, 1395, 1397, 1398, 1401], "excluded_lines": []}, "EntryManager.list_all_entries": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 18, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 18, "excluded_lines": 0}, "missing_lines": [1415, 1416, 1421, 1422, 1423, 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1435, 1436, 1437, 1438], "excluded_lines": []}, "EntryManager.get_entry_summaries": {"executed_lines": [1447, 1448, 1449, 1451, 1452, 1454, 1455, 1456, 1457, 1459, 1462, 1463, 1464, 1466, 1467, 1469, 1470], "summary": {"covered_lines": 17, "num_statements": 22, "percent_covered": 77.27272727272727, "percent_covered_display": "77", "missing_lines": 5, "excluded_lines": 0}, "missing_lines": [1458, 1471, 1472, 1473, 1474], "excluded_lines": []}, "": {"executed_lines": [3, 18, 19, 21, 26, 27, 28, 29, 30, 31, 33, 34, 35, 36, 37, 38, 39, 40, 48, 49, 50, 53, 56, 57, 76, 80, 123, 132, 152, 242, 256, 327, 369, 383, 429, 450, 494, 529, 554, 597, 619, 674, 697, 717, 738, 751, 784, 799, 837, 1101, 1105, 1109, 1252, 1307, 1344, 1365, 1407, 1440], "summary": {"covered_lines": 57, "num_statements": 57, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 3}, "missing_lines": [], "excluded_lines": [22, 23, 25]}}, "classes": {"EntryManager": {"executed_lines": [64, 65, 66, 69, 70, 72, 74, 78, 81, 82, 84, 85, 86, 88, 89, 90, 91, 93, 94, 96, 101, 103, 104, 107, 108, 109, 110, 111, 116, 119, 120, 121, 124, 125, 126, 127, 138, 139, 140, 141, 142, 145, 146, 183, 184, 185, 187, 188, 202, 203, 204, 205, 207, 209, 211, 213, 215, 216, 217, 219, 220, 222, 224, 228, 229, 230, 232, 233, 235, 244, 245, 246, 254, 271, 272, 273, 275, 276, 278, 279, 280, 281, 283, 297, 298, 299, 300, 301, 315, 317, 318, 319, 321, 322, 343, 344, 346, 348, 349, 350, 352, 353, 354, 364, 365, 366, 367, 372, 373, 374, 375, 378, 380, 381, 396, 397, 399, 400, 401, 403, 404, 406, 407, 408, 410, 411, 412, 424, 425, 426, 427, 432, 433, 434, 435, 438, 439, 440, 442, 443, 445, 446, 447, 448, 461, 462, 464, 465, 466, 468, 469, 470, 471, 472, 473, 474, 475, 477, 478, 479, 489, 490, 491, 492, 507, 509, 510, 511, 524, 525, 526, 527, 532, 533, 534, 535, 540, 541, 542, 544, 545, 547, 548, 549, 550, 551, 552, 566, 567, 569, 570, 571, 573, 574, 575, 576, 577, 579, 580, 581, 592, 593, 594, 595, 600, 601, 602, 603, 608, 609, 610, 612, 613, 615, 616, 617, 634, 635, 637, 638, 639, 641, 642, 644, 646, 647, 648, 649, 651, 652, 654, 655, 656, 669, 670, 671, 672, 677, 678, 679, 680, 686, 687, 688, 690, 691, 693, 694, 695, 703, 704, 705, 706, 710, 715, 724, 725, 726, 727, 731, 732, 734, 735, 736, 740, 741, 742, 743, 748, 749, 755, 756, 757, 758, 759, 760, 762, 763, 764, 765, 766, 768, 769, 772, 773, 782, 790, 791, 806, 807, 808, 810, 811, 812, 817, 818, 821, 822, 876, 877, 878, 880, 892, 894, 916, 990, 991, 994, 995, 999, 1000, 1003, 1004, 1005, 1006, 1007, 1008, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1019, 1020, 1021, 1022, 1026, 1027, 1028, 1029, 1030, 1031, 1033, 1036, 1037, 1038, 1040, 1044, 1045, 1046, 1048, 1052, 1053, 1054, 1056, 1057, 1059, 1061, 1063, 1065, 1067, 1069, 1071, 1073, 1078, 1080, 1081, 1085, 1086, 1087, 1089, 1090, 1094, 1095, 1096, 1099, 1103, 1107, 1130, 1131, 1132, 1134, 1135, 1136, 1137, 1138, 1140, 1141, 1142, 1143, 1144, 1147, 1148, 1150, 1153, 1155, 1156, 1158, 1159, 1160, 1164, 1165, 1168, 1169, 1171, 1172, 1173, 1174, 1175, 1176, 1186, 1196, 1197, 1198, 1199, 1202, 1203, 1204, 1205, 1206, 1209, 1215, 1216, 1222, 1227, 1228, 1235, 1236, 1242, 1244, 1261, 1262, 1264, 1267, 1268, 1272, 1273, 1277, 1278, 1280, 1281, 1284, 1285, 1286, 1288, 1289, 1290, 1291, 1293, 1294, 1305, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1348, 1349, 1350, 1351, 1354, 1356, 1358, 1359, 1447, 1448, 1449, 1451, 1452, 1454, 1455, 1456, 1457, 1459, 1462, 1463, 1464, 1466, 1467, 1469, 1470], "summary": {"covered_lines": 478, "num_statements": 610, "percent_covered": 78.36065573770492, "percent_covered_display": "78", "missing_lines": 132, "excluded_lines": 0}, "missing_lines": [92, 95, 100, 102, 105, 106, 112, 113, 114, 128, 129, 130, 144, 147, 148, 149, 150, 206, 208, 210, 212, 214, 218, 237, 238, 239, 240, 277, 282, 323, 324, 325, 376, 436, 538, 606, 684, 709, 711, 712, 713, 714, 730, 733, 746, 761, 767, 771, 792, 793, 794, 797, 824, 825, 826, 828, 829, 832, 835, 881, 884, 890, 1001, 1002, 1034, 1039, 1049, 1050, 1058, 1060, 1062, 1064, 1066, 1068, 1070, 1072, 1074, 1075, 1076, 1151, 1246, 1247, 1248, 1249, 1250, 1265, 1328, 1331, 1338, 1339, 1340, 1361, 1362, 1363, 1371, 1372, 1373, 1374, 1375, 1380, 1382, 1385, 1387, 1388, 1394, 1395, 1397, 1398, 1401, 1415, 1416, 1421, 1422, 1423, 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1435, 1436, 1437, 1438, 1458, 1471, 1472, 1473, 1474], "excluded_lines": []}, "": {"executed_lines": [3, 18, 19, 21, 26, 27, 28, 29, 30, 31, 33, 34, 35, 36, 37, 38, 39, 40, 48, 49, 50, 53, 56, 57, 76, 80, 123, 132, 152, 242, 256, 327, 369, 383, 429, 450, 494, 529, 554, 597, 619, 674, 697, 717, 738, 751, 784, 799, 837, 1101, 1105, 1109, 1252, 1307, 1344, 1365, 1407, 1440], "summary": {"covered_lines": 57, "num_statements": 57, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 3}, "missing_lines": [], "excluded_lines": [22, 23, 25]}}}, "src/seedpass/core/entry_service.py": {"executed_lines": [1, 3, 4, 5, 7, 9, 14, 15, 17, 21, 22, 24, 25, 27, 28, 29, 30, 31, 39, 40, 41, 44, 45, 46, 47, 52, 53, 54, 55, 61, 62, 64, 65, 66, 68, 69, 71, 77, 78, 81, 88, 90, 91, 92, 100, 102, 103, 104, 105, 106, 107, 108, 114, 115, 119, 120, 122, 123, 124, 127, 128, 131, 139, 140, 142, 143, 144, 150, 151, 152, 153, 154, 162, 164, 167, 168, 171, 174, 175, 177, 178, 179, 181, 184, 185, 188, 191, 194, 196, 199, 202, 204, 205, 208, 210, 213, 216, 218, 237], "summary": {"covered_lines": 97, "num_statements": 114, "percent_covered": 85.08771929824562, "percent_covered_display": "85", "missing_lines": 17, "excluded_lines": 8}, "missing_lines": [116, 117, 129, 155, 156, 157, 158, 169, 186, 192, 193, 200, 201, 206, 207, 214, 215], "excluded_lines": [17, 18, 95, 96, 239, 240, 241, 242], "functions": {"EntryService.__init__": {"executed_lines": [25], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "EntryService.handle_add_password": {"executed_lines": [28, 29, 30, 31, 39, 64, 102, 103, 104, 105, 106, 107, 108, 114, 115, 119, 120, 122, 123, 124, 127, 128, 131, 139, 140, 142, 143, 144, 150, 151, 152, 153, 154, 162, 164, 167, 168, 171, 174, 175, 177, 178, 179, 181, 184, 185, 188, 191, 194, 196, 199, 202, 204, 205, 208, 210, 213, 216, 218, 237], "summary": {"covered_lines": 60, "num_statements": 77, "percent_covered": 77.92207792207792, "percent_covered_display": "78", "missing_lines": 17, "excluded_lines": 4}, "missing_lines": [116, 117, 129, 155, 156, 157, 158, 169, 186, 192, 193, 200, 201, 206, 207, 214, 215], "excluded_lines": [239, 240, 241, 242]}, "EntryService.handle_add_password.prompt_length": {"executed_lines": [40, 41, 44, 45, 46, 47, 52, 53, 54, 55, 61, 62], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "EntryService.handle_add_password.finalize_entry": {"executed_lines": [65, 66, 68, 69, 71, 77, 78, 81, 88, 90, 91, 92, 100], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2}, "missing_lines": [], "excluded_lines": [95, 96]}, "": {"executed_lines": [1, 3, 4, 5, 7, 9, 14, 15, 17, 21, 22, 24, 27], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2}, "missing_lines": [], "excluded_lines": [17, 18]}}, "classes": {"EntryService": {"executed_lines": [25, 28, 29, 30, 31, 39, 40, 41, 44, 45, 46, 47, 52, 53, 54, 55, 61, 62, 64, 65, 66, 68, 69, 71, 77, 78, 81, 88, 90, 91, 92, 100, 102, 103, 104, 105, 106, 107, 108, 114, 115, 119, 120, 122, 123, 124, 127, 128, 131, 139, 140, 142, 143, 144, 150, 151, 152, 153, 154, 162, 164, 167, 168, 171, 174, 175, 177, 178, 179, 181, 184, 185, 188, 191, 194, 196, 199, 202, 204, 205, 208, 210, 213, 216, 218, 237], "summary": {"covered_lines": 86, "num_statements": 103, "percent_covered": 83.49514563106796, "percent_covered_display": "83", "missing_lines": 17, "excluded_lines": 6}, "missing_lines": [116, 117, 129, 155, 156, 157, 158, 169, 186, 192, 193, 200, 201, 206, 207, 214, 215], "excluded_lines": [95, 96, 239, 240, 241, 242]}, "": {"executed_lines": [1, 3, 4, 5, 7, 9, 14, 15, 17, 21, 22, 24, 27], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2}, "missing_lines": [], "excluded_lines": [17, 18]}}}, "src/seedpass/core/entry_types.py": {"executed_lines": [2, 4, 7, 8, 10, 11, 12, 13, 14, 15, 16, 17, 21], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [2, 4, 7, 8, 10, 11, 12, 13, 14, 15, 16, 17, 21], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"EntryType": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [2, 4, 7, 8, 10, 11, 12, 13, 14, 15, 16, 17, 21], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/seedpass/core/errors.py": {"executed_lines": [1, 11, 12, 15, 16, 18, 19, 22, 23, 30], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"SeedPassError.__init__": {"executed_lines": [19], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 11, 12, 15, 16, 18, 22, 23, 30], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"SeedPassError": {"executed_lines": [19], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "DecryptionError": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 11, 12, 15, 16, 18, 22, 23, 30], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/seedpass/core/manager.py": {"executed_lines": [3, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 52, 53, 60, 66, 67, 68, 69, 75, 76, 77, 78, 79, 81, 94, 95, 96, 97, 99, 100, 101, 102, 104, 105, 108, 109, 110, 111, 112, 113, 114, 115, 118, 121, 122, 124, 125, 126, 127, 128, 129, 141, 142, 143, 148, 149, 152, 153, 154, 155, 158, 160, 161, 164, 189, 190, 191, 193, 194, 197, 200, 201, 202, 204, 206, 209, 210, 212, 215, 216, 218, 220, 221, 222, 223, 224, 227, 228, 237, 238, 239, 240, 241, 242, 244, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 277, 278, 279, 280, 281, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 304, 305, 306, 309, 310, 311, 314, 316, 318, 321, 323, 327, 328, 339, 340, 345, 348, 349, 350, 351, 352, 353, 355, 357, 363, 364, 365, 366, 367, 369, 371, 372, 373, 374, 375, 376, 377, 378, 386, 387, 391, 392, 394, 396, 398, 399, 400, 405, 407, 408, 422, 423, 425, 426, 427, 428, 432, 434, 435, 436, 437, 438, 439, 441, 443, 444, 445, 446, 447, 448, 450, 452, 453, 454, 458, 462, 463, 465, 467, 469, 470, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 483, 484, 485, 486, 487, 489, 490, 491, 492, 493, 494, 495, 497, 499, 500, 501, 502, 503, 505, 518, 519, 521, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 536, 541, 542, 543, 546, 547, 548, 549, 551, 555, 556, 557, 565, 569, 570, 572, 575, 577, 581, 582, 583, 586, 587, 588, 590, 591, 592, 597, 598, 600, 602, 603, 607, 608, 613, 614, 621, 626, 627, 634, 635, 636, 637, 638, 639, 644, 648, 649, 657, 658, 660, 662, 663, 664, 665, 667, 670, 671, 672, 675, 686, 688, 689, 690, 700, 709, 710, 711, 712, 713, 714, 716, 721, 726, 727, 729, 730, 731, 733, 734, 735, 736, 737, 738, 739, 741, 744, 745, 746, 747, 752, 753, 754, 755, 757, 764, 765, 766, 767, 768, 770, 775, 776, 781, 794, 799, 802, 805, 806, 811, 816, 817, 822, 825, 826, 830, 831, 832, 833, 839, 840, 841, 842, 844, 845, 847, 850, 851, 852, 853, 855, 859, 860, 861, 863, 864, 865, 866, 867, 869, 870, 871, 872, 873, 875, 876, 878, 880, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 894, 895, 896, 897, 898, 900, 901, 987, 988, 993, 995, 1005, 1006, 1007, 1009, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1029, 1032, 1052, 1053, 1054, 1055, 1056, 1058, 1060, 1064, 1065, 1066, 1071, 1077, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1093, 1094, 1095, 1106, 1109, 1115, 1116, 1117, 1118, 1119, 1120, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1133, 1137, 1138, 1139, 1141, 1146, 1147, 1149, 1150, 1152, 1153, 1157, 1158, 1159, 1160, 1169, 1170, 1177, 1178, 1179, 1180, 1182, 1184, 1185, 1186, 1187, 1192, 1193, 1205, 1214, 1217, 1224, 1225, 1226, 1227, 1228, 1233, 1234, 1235, 1238, 1239, 1240, 1241, 1243, 1244, 1246, 1251, 1261, 1262, 1263, 1264, 1265, 1266, 1271, 1278, 1279, 1280, 1281, 1282, 1292, 1293, 1303, 1304, 1305, 1309, 1313, 1318, 1320, 1321, 1323, 1324, 1325, 1326, 1331, 1335, 1336, 1338, 1342, 1347, 1348, 1350, 1351, 1353, 1354, 1358, 1359, 1365, 1369, 1370, 1371, 1372, 1373, 1374, 1376, 1386, 1387, 1389, 1395, 1400, 1402, 1406, 1409, 1413, 1414, 1419, 1420, 1421, 1427, 1428, 1431, 1432, 1433, 1435, 1440, 1441, 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1465, 1466, 1469, 1470, 1471, 1472, 1473, 1474, 1485, 1488, 1490, 1491, 1492, 1499, 1500, 1501, 1502, 1503, 1504, 1507, 1508, 1509, 1530, 1532, 1533, 1534, 1535, 1537, 1539, 1541, 1542, 1543, 1544, 1545, 1546, 1558, 1559, 1560, 1561, 1562, 1563, 1564, 1567, 1568, 1569, 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1594, 1595, 1596, 1597, 1629, 1630, 1631, 1647, 1651, 1652, 1654, 1656, 1657, 1658, 1659, 1660, 1665, 1666, 1667, 1668, 1669, 1670, 1671, 1672, 1674, 1675, 1676, 1677, 1680, 1681, 1683, 1685, 1687, 1688, 1690, 1693, 1695, 1702, 1703, 1704, 1707, 1708, 1709, 1714, 1715, 1716, 1717, 1719, 1720, 1722, 1724, 1725, 1727, 1728, 1729, 1730, 1731, 1737, 1738, 1739, 1740, 1743, 1744, 1745, 1746, 1748, 1750, 1757, 1760, 1761, 1764, 1765, 1766, 1767, 1768, 1769, 1770, 1771, 1772, 1773, 1774, 1780, 1781, 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1789, 1797, 1798, 1799, 1800, 1802, 1803, 1804, 1805, 1807, 1811, 1813, 1814, 1816, 1824, 1835, 1837, 1840, 1841, 1842, 1843, 1848, 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1859, 1861, 1863, 1864, 1866, 1867, 1868, 1869, 1871, 1872, 1875, 1876, 1877, 1878, 1879, 1880, 1887, 1888, 1890, 1891, 1892, 1894, 1895, 1897, 1898, 1899, 1900, 1907, 1908, 1909, 1910, 1911, 1912, 1913, 1916, 1917, 1918, 1923, 1924, 1927, 1932, 1933, 1934, 1939, 1949, 1953, 1954, 1955, 1956, 1957, 1962, 1963, 1964, 1965, 1966, 1967, 1973, 1974, 2036, 2037, 2094, 2095, 2164, 2165, 2232, 2233, 2292, 2293, 2374, 2375, 2437, 2439, 2440, 2441, 2444, 2445, 2453, 2455, 2457, 2458, 2459, 2460, 2461, 2462, 2464, 2481, 2483, 2484, 2485, 2486, 2488, 2492, 2493, 2494, 2496, 2497, 2498, 2500, 2501, 2505, 2506, 2507, 2509, 2511, 2513, 2514, 2515, 2522, 2523, 2524, 2525, 2526, 2528, 2529, 2530, 2531, 2532, 2533, 2534, 2539, 2541, 2544, 2545, 2546, 2547, 2548, 2549, 2550, 2551, 2552, 2553, 2554, 2555, 2556, 2562, 2576, 2577, 2578, 2584, 2587, 2592, 2593, 2594, 2595, 2596, 2597, 2598, 2599, 2602, 2604, 2606, 2607, 2608, 2609, 2616, 2617, 2618, 2623, 2626, 2627, 2628, 2629, 2630, 2631, 2632, 2638, 2644, 2652, 2657, 2662, 2663, 2664, 2665, 2666, 2667, 2680, 2682, 2685, 2687, 2688, 2703, 2704, 2705, 2706, 2713, 2714, 2715, 2716, 2721, 2722, 2724, 2728, 2729, 2730, 2731, 2732, 2733, 2736, 2737, 2738, 2745, 2756, 2758, 2760, 2761, 2762, 2763, 2764, 2765, 2766, 2767, 2768, 2769, 2770, 2771, 2780, 2781, 2782, 2783, 2784, 2785, 2787, 2788, 2790, 2791, 2792, 2793, 2794, 2795, 2796, 2797, 2798, 2799, 2803, 2804, 2812, 2813, 2814, 2815, 2819, 2821, 2822, 2823, 2824, 2827, 2828, 2829, 2830, 2833, 2834, 2835, 2836, 2838, 2839, 2841, 2842, 2843, 2852, 2853, 2857, 2859, 2860, 2861, 2862, 2865, 2866, 2867, 2868, 2869, 2870, 2871, 2872, 2873, 2875, 2876, 2878, 2887, 2888, 2889, 2890, 2892, 2893, 2894, 2895, 2896, 2902, 2906, 2908, 2909, 2910, 2911, 2914, 2915, 2916, 2917, 2920, 2921, 2922, 2923, 2925, 2926, 2928, 2929, 2938, 2942, 2944, 2945, 2946, 2947, 2948, 2951, 2952, 2953, 2954, 2963, 2964, 2966, 2967, 2972, 2974, 2975, 2976, 2977, 2978, 2979, 2980, 2982, 2983, 2985, 2990, 2999, 3001, 3002, 3029, 3031, 3032, 3033, 3034, 3035, 3036, 3037, 3039, 3040, 3041, 3042, 3044, 3049, 3056, 3057, 3060, 3069, 3070, 3071, 3075, 3078, 3079, 3080, 3081, 3082, 3083, 3085, 3091, 3093, 3095, 3096, 3101, 3103, 3104, 3105, 3106, 3113, 3119, 3120, 3121, 3122, 3128, 3129, 3130, 3131, 3132, 3133, 3134, 3135, 3136, 3137, 3138, 3139, 3140, 3141, 3142, 3144, 3145, 3146, 3147, 3148, 3149, 3160, 3163, 3165, 3166, 3168, 3169, 3170, 3177, 3180, 3184, 3186, 3187, 3191, 3192, 3193, 3194, 3195, 3196, 3197, 3198, 3200, 3201, 3206, 3207, 3208, 3215, 3218, 3221, 3224, 3225, 3228, 3230, 3339, 3403, 3512, 3513, 3514, 3515, 3516, 3518, 3524, 3525, 3526, 3527, 3534, 3541, 3547, 3553, 3560, 3561, 3573, 3580, 3581, 3582, 3594, 3597, 3603, 3615, 3616, 3618, 3621, 3622, 3623, 3632, 3638, 3639, 3641, 3642, 3643, 3650, 3651, 3652, 3653, 3654, 3656, 3657, 3662, 3663, 3664, 3671, 3672, 3673, 3674, 3676, 3677, 3679, 3682, 3684, 3690, 3691, 3692, 3693, 3694, 3696, 3698, 3699, 3702, 3703, 3704, 3705, 3706, 3709, 3715, 3716, 3718, 3719, 3721, 3722, 3723, 3724, 3725, 3726, 3732, 3733, 3735, 3736, 3738, 3739, 3740, 3741, 3744, 3745, 3746, 3747, 3748, 3749, 3750, 3751, 3753, 3754, 3756, 3757, 3758, 3759, 3762, 3763, 3764, 3765, 3768, 3769, 3770, 3771, 3776, 3777, 3779, 3780, 3782, 3783, 3784, 3785, 3788, 3789, 3791, 3792, 3794, 3795, 3796, 3797, 3798, 3799, 3800, 3802, 3803, 3805, 3806, 3807, 3808, 3809, 3810, 3811, 3812, 3815, 3816, 3817, 3818, 3819, 3821, 3822, 3824, 3825, 3827, 3828, 3829, 3830, 3831, 3832, 3833, 3834, 3835, 3836, 3837, 3838, 3840, 3846, 3848, 3849, 3850, 3852, 3854, 3855, 3858, 3861, 3863, 3869, 3872, 3873, 3876, 3877, 3878, 3889, 3890, 3892, 3893, 3896, 3899, 3900, 3901, 3902, 3903, 3908, 3909, 3911, 3913, 3916, 3919, 3921, 3922, 3923, 3924, 3925, 3926, 3927, 3928, 3929, 3930, 3931, 3932, 3933, 3940, 3941, 3942, 3943, 3946, 3947, 3948, 3953, 3954, 3955, 3962, 3963, 3964, 3965, 3966, 3967, 3968, 3969, 3970, 3971, 3972, 3973, 3974, 3975, 3976, 3978, 3979, 3986, 3987, 3988, 3990, 3991, 3995, 3996, 3997, 4004, 4005, 4006, 4007, 4008, 4012, 4013, 4015, 4016, 4017, 4019, 4025, 4030, 4031, 4059, 4065, 4066, 4067, 4068, 4069, 4079, 4100, 4104, 4105, 4106, 4107, 4108, 4110, 4111, 4112, 4113, 4114, 4115, 4117, 4121, 4122, 4124, 4125, 4126, 4127, 4128, 4129, 4130, 4135, 4136, 4141, 4142, 4143, 4145, 4148, 4150, 4154, 4155, 4156, 4161, 4165, 4166, 4167, 4176, 4177, 4189, 4190, 4191, 4198, 4199, 4202, 4209, 4210, 4211, 4212, 4213, 4219, 4220, 4223, 4224, 4230, 4233, 4234, 4235, 4240, 4241, 4243, 4244, 4252, 4253, 4259, 4268, 4269, 4270, 4271, 4302, 4303, 4305, 4306, 4307, 4308, 4315, 4316, 4318, 4319, 4320, 4321, 4322, 4323, 4324, 4325, 4330, 4331, 4341, 4345, 4348, 4350, 4352, 4363, 4365, 4366, 4367, 4373, 4374, 4386, 4387, 4388, 4395, 4396, 4400, 4406, 4410, 4415, 4418, 4419, 4422, 4423, 4424, 4431, 4432, 4436, 4439, 4440, 4443, 4444, 4446, 4447, 4451, 4454, 4460, 4461, 4462, 4465, 4470, 4480, 4481, 4482, 4483, 4495, 4496, 4497, 4500, 4515, 4526, 4527, 4528, 4529, 4530, 4532, 4537, 4538, 4539, 4540, 4550, 4573, 4575, 4576, 4577, 4581, 4582, 4585, 4587, 4588, 4591, 4593, 4595, 4596, 4597, 4598, 4599, 4602, 4603, 4604, 4606, 4610, 4611, 4621, 4637, 4638, 4639, 4648, 4720], "summary": {"covered_lines": 1679, "num_statements": 2703, "percent_covered": 62.11616722160562, "percent_covered_display": "62", "missing_lines": 1024, "excluded_lines": 32}, "missing_lines": [130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 174, 175, 176, 177, 180, 182, 183, 185, 186, 203, 333, 334, 335, 343, 389, 395, 401, 402, 403, 410, 411, 412, 413, 414, 417, 418, 419, 420, 429, 430, 455, 456, 468, 520, 522, 558, 559, 560, 563, 604, 605, 610, 616, 617, 618, 619, 641, 642, 645, 676, 682, 697, 698, 758, 759, 760, 761, 762, 777, 778, 779, 780, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 800, 803, 818, 819, 820, 827, 828, 829, 834, 835, 836, 837, 848, 879, 906, 907, 908, 911, 912, 915, 916, 917, 923, 927, 928, 929, 934, 936, 937, 938, 939, 941, 942, 943, 946, 947, 948, 951, 956, 960, 961, 962, 963, 964, 965, 966, 967, 970, 975, 976, 977, 978, 980, 981, 982, 983, 984, 985, 1008, 1010, 1025, 1026, 1030, 1061, 1062, 1063, 1067, 1068, 1069, 1075, 1096, 1102, 1110, 1113, 1161, 1162, 1163, 1165, 1166, 1167, 1188, 1189, 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1203, 1204, 1206, 1212, 1218, 1221, 1229, 1230, 1248, 1249, 1267, 1268, 1269, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1314, 1315, 1360, 1361, 1362, 1363, 1379, 1380, 1381, 1384, 1390, 1391, 1392, 1393, 1403, 1459, 1460, 1461, 1462, 1463, 1464, 1516, 1523, 1540, 1547, 1548, 1553, 1557, 1604, 1610, 1611, 1616, 1623, 1632, 1633, 1638, 1639, 1642, 1648, 1649, 1663, 1689, 1691, 1700, 1732, 1733, 1734, 1735, 1758, 1762, 1801, 1808, 1809, 1822, 1825, 1826, 1827, 1828, 1829, 1830, 1831, 1838, 1844, 1845, 1846, 1873, 1882, 1885, 1914, 1915, 1919, 1922, 1950, 1951, 1968, 1969, 1975, 1976, 1977, 1978, 1979, 1983, 1984, 1985, 1986, 1987, 1988, 1991, 1996, 1997, 2007, 2008, 2009, 2015, 2016, 2017, 2018, 2019, 2023, 2024, 2025, 2026, 2027, 2028, 2030, 2031, 2032, 2033, 2034, 2039, 2040, 2041, 2048, 2049, 2050, 2051, 2052, 2053, 2054, 2059, 2062, 2065, 2066, 2068, 2071, 2072, 2074, 2075, 2076, 2077, 2078, 2079, 2080, 2081, 2082, 2083, 2084, 2088, 2089, 2090, 2091, 2092, 2097, 2098, 2099, 2106, 2107, 2108, 2109, 2110, 2111, 2112, 2113, 2118, 2119, 2120, 2121, 2122, 2125, 2126, 2127, 2129, 2132, 2133, 2135, 2141, 2142, 2143, 2144, 2145, 2146, 2147, 2148, 2150, 2151, 2152, 2153, 2154, 2158, 2159, 2160, 2161, 2162, 2167, 2168, 2169, 2176, 2177, 2178, 2179, 2180, 2184, 2185, 2186, 2187, 2192, 2200, 2203, 2204, 2206, 2209, 2210, 2212, 2213, 2214, 2215, 2216, 2217, 2218, 2219, 2220, 2226, 2227, 2228, 2229, 2230, 2235, 2236, 2237, 2244, 2245, 2246, 2247, 2248, 2249, 2250, 2255, 2258, 2259, 2260, 2261, 2262, 2263, 2264, 2265, 2272, 2273, 2274, 2275, 2278, 2279, 2280, 2286, 2287, 2288, 2289, 2290, 2295, 2296, 2297, 2304, 2305, 2306, 2307, 2308, 2309, 2310, 2311, 2312, 2313, 2314, 2315, 2321, 2322, 2323, 2324, 2325, 2326, 2327, 2328, 2329, 2337, 2345, 2346, 2348, 2349, 2350, 2351, 2352, 2353, 2360, 2361, 2362, 2368, 2369, 2370, 2371, 2372, 2377, 2378, 2379, 2386, 2387, 2388, 2389, 2390, 2391, 2392, 2397, 2400, 2401, 2402, 2403, 2409, 2410, 2411, 2412, 2419, 2420, 2421, 2423, 2424, 2425, 2431, 2432, 2433, 2434, 2435, 2442, 2466, 2467, 2472, 2473, 2474, 2475, 2477, 2478, 2479, 2557, 2558, 2559, 2560, 2561, 2563, 2564, 2565, 2567, 2568, 2569, 2570, 2573, 2574, 2575, 2601, 2619, 2620, 2624, 2625, 2633, 2634, 2635, 2636, 2637, 2639, 2640, 2641, 2642, 2643, 2645, 2646, 2647, 2648, 2649, 2653, 2654, 2655, 2656, 2658, 2659, 2660, 2661, 2669, 2670, 2671, 2672, 2673, 2674, 2675, 2677, 2679, 2689, 2690, 2692, 2696, 2697, 2699, 2700, 2701, 2735, 2740, 2772, 2773, 2786, 2789, 2805, 2806, 2807, 2808, 2809, 2810, 2811, 2837, 2840, 2844, 2845, 2874, 2877, 2879, 2880, 2924, 2927, 2930, 2931, 2955, 2956, 2965, 2968, 2981, 2984, 2991, 2992, 3003, 3004, 3005, 3006, 3007, 3008, 3009, 3010, 3012, 3013, 3014, 3015, 3016, 3017, 3018, 3021, 3028, 3038, 3043, 3061, 3062, 3072, 3073, 3074, 3092, 3094, 3150, 3153, 3162, 3181, 3182, 3183, 3188, 3189, 3219, 3220, 3226, 3231, 3232, 3233, 3234, 3235, 3237, 3243, 3244, 3245, 3251, 3255, 3258, 3259, 3260, 3261, 3263, 3267, 3270, 3271, 3272, 3273, 3275, 3279, 3286, 3287, 3288, 3289, 3290, 3291, 3293, 3297, 3299, 3306, 3307, 3308, 3309, 3310, 3311, 3312, 3313, 3314, 3315, 3316, 3320, 3323, 3329, 3340, 3341, 3342, 3344, 3350, 3356, 3360, 3367, 3368, 3369, 3370, 3371, 3372, 3374, 3378, 3380, 3387, 3390, 3396, 3407, 3408, 3409, 3410, 3412, 3418, 3424, 3430, 3434, 3435, 3439, 3440, 3444, 3451, 3452, 3453, 3454, 3455, 3456, 3458, 3462, 3464, 3471, 3472, 3473, 3474, 3475, 3476, 3479, 3480, 3481, 3482, 3483, 3487, 3490, 3496, 3504, 3505, 3507, 3562, 3563, 3564, 3565, 3567, 3571, 3583, 3584, 3585, 3586, 3587, 3588, 3589, 3590, 3626, 3627, 3634, 3635, 3636, 3658, 3659, 3660, 3675, 3683, 3687, 3688, 3689, 3700, 3717, 3720, 3734, 3737, 3752, 3755, 3778, 3781, 3790, 3793, 3801, 3804, 3820, 3823, 3839, 3859, 3860, 3866, 3867, 3879, 3880, 3885, 3886, 3887, 3897, 3898, 3904, 3905, 3906, 3951, 3952, 3977, 3981, 3982, 3983, 3984, 4026, 4027, 4028, 4033, 4034, 4035, 4036, 4037, 4038, 4045, 4046, 4047, 4054, 4055, 4056, 4057, 4071, 4072, 4073, 4074, 4075, 4076, 4077, 4085, 4086, 4087, 4088, 4089, 4092, 4098, 4109, 4120, 4123, 4157, 4158, 4159, 4172, 4173, 4174, 4214, 4215, 4216, 4217, 4236, 4237, 4238, 4239, 4260, 4261, 4267, 4272, 4273, 4274, 4280, 4282, 4283, 4284, 4285, 4286, 4289, 4290, 4291, 4292, 4293, 4296, 4297, 4299, 4300, 4327, 4328, 4329, 4342, 4343, 4353, 4354, 4355, 4358, 4359, 4360, 4361, 4368, 4369, 4370, 4371, 4407, 4411, 4412, 4433, 4434, 4448, 4449, 4466, 4467, 4468, 4485, 4486, 4487, 4488, 4489, 4491, 4492, 4493, 4499, 4501, 4502, 4503, 4509, 4510, 4511, 4512, 4513, 4543, 4544, 4549, 4551, 4553, 4554, 4555, 4556, 4558, 4559, 4564, 4565, 4568, 4569, 4570, 4571, 4578, 4607, 4608, 4624, 4626, 4627, 4628, 4640, 4641, 4644, 4645, 4646, 4650, 4651, 4653, 4656, 4657, 4658, 4659, 4660, 4661, 4662, 4663, 4666, 4667, 4668, 4669, 4670, 4671, 4672, 4674, 4675, 4676, 4679, 4680, 4681, 4682, 4683, 4685, 4686, 4687, 4689, 4692, 4693, 4694, 4695, 4698, 4701, 4702, 4703, 4708, 4709, 4710, 4711, 4712, 4714, 4715, 4716, 4718, 4722, 4723, 4724, 4725, 4727, 4728, 4729, 4730, 4731, 4732, 4738, 4739, 4744, 4745, 4751, 4757, 4758, 4759, 4760], "excluded_lines": [1804, 1805, 1832, 1833, 2221, 2222, 2281, 2282, 2363, 2364, 2426, 2427, 2741, 2742, 2743, 2816, 2817, 2818, 2854, 2855, 2856, 2903, 2904, 2905, 2939, 2940, 2941, 2969, 2970, 2971, 3772, 3773], "functions": {"AuditLogger.__init__": {"executed_lines": [125, 126, 127, 128, 129], "summary": {"covered_lines": 5, "num_statements": 15, "percent_covered": 33.333333333333336, "percent_covered_display": "33", "missing_lines": 10, "excluded_lines": 0}, "missing_lines": [130, 131, 132, 133, 134, 135, 136, 137, 138, 139], "excluded_lines": []}, "AuditLogger.log": {"executed_lines": [142, 143, 148, 149, 152, 153, 154, 155], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "calculate_profile_id": {"executed_lines": [160, 161], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "restore_backup_index": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 9, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 9, "excluded_lines": 0}, "missing_lines": [174, 175, 176, 177, 180, 182, 183, 185, 186], "excluded_lines": []}, "requires_unlocked": {"executed_lines": [200, 201, 206], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "requires_unlocked.wrapper": {"executed_lines": [202, 204], "summary": {"covered_lines": 2, "num_statements": 3, "percent_covered": 66.66666666666667, "percent_covered_display": "67", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [203], "excluded_lines": []}, "AuthGuard.__init__": {"executed_lines": [215, 216], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "AuthGuard.check_timeout": {"executed_lines": [220, 221, 222, 223, 224], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "PasswordManager.__init__": {"executed_lines": [254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 277, 278, 279, 280, 281, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 304, 305, 306, 309, 310, 311, 314, 316, 318, 321, 323], "summary": {"covered_lines": 55, "num_statements": 55, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "PasswordManager.get_bip85_entropy": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [333, 334, 335], "excluded_lines": []}, "PasswordManager.clear_bip85_cache": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [343], "excluded_lines": []}, "PasswordManager.derive_key_hierarchy": {"executed_lines": [348, 349, 350, 351, 352, 353], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "PasswordManager.ensure_key_hierarchy": {"executed_lines": [357, 363, 364, 365, 366, 367], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "PasswordManager.ensure_script_checksum": {"executed_lines": [371, 372, 373, 374, 375, 376, 377, 378], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "PasswordManager.get_password_prompt": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [389], "excluded_lines": []}, "PasswordManager.parent_seed": {"executed_lines": [400, 405], "summary": {"covered_lines": 2, "num_statements": 5, "percent_covered": 40.0, "percent_covered_display": "40", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [401, 402, 403], "excluded_lines": []}, "PasswordManager.header_fingerprint": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 9, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 9, "excluded_lines": 0}, "missing_lines": [410, 411, 412, 413, 414, 417, 418, 419, 420], "excluded_lines": []}, "PasswordManager.header_fingerprint_args": {"executed_lines": [425, 426, 427, 428], "summary": {"covered_lines": 4, "num_statements": 6, "percent_covered": 66.66666666666667, "percent_covered_display": "67", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [429, 430], "excluded_lines": []}, "PasswordManager.update_activity": {"executed_lines": [434, 435, 436, 437, 438, 439], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "PasswordManager.notify": {"executed_lines": [443, 444, 445, 446, 447, 448], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "PasswordManager.get_current_notification": {"executed_lines": [452, 453, 454, 458, 462, 463], "summary": {"covered_lines": 6, "num_statements": 8, "percent_covered": 75.0, "percent_covered_display": "75", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [455, 456], "excluded_lines": []}, "PasswordManager.poll_background_errors": {"executed_lines": [467, 469, 470, 471, 472, 473, 474, 475], "summary": {"covered_lines": 8, "num_statements": 9, "percent_covered": 88.88888888888889, "percent_covered_display": "89", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [468], "excluded_lines": []}, "PasswordManager.menu_handler": {"executed_lines": [479, 480, 481], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "PasswordManager.profile_service": {"executed_lines": [485, 486, 487], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "PasswordManager.entry_service": {"executed_lines": [491, 492, 493, 494, 495], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "PasswordManager.lock_vault": {"executed_lines": [499, 500, 501, 502, 503], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "PasswordManager.unlock_vault": {"executed_lines": [518, 519, 521, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 536, 541, 542, 543, 546, 547, 548, 549], "summary": {"covered_lines": 21, "num_statements": 23, "percent_covered": 91.30434782608695, "percent_covered_display": "91", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [520, 522], "excluded_lines": []}, "PasswordManager.initialize_fingerprint_manager": {"executed_lines": [555, 556, 557], "summary": {"covered_lines": 3, "num_statements": 7, "percent_covered": 42.857142857142854, "percent_covered_display": "43", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [558, 559, 560, 563], "excluded_lines": []}, "PasswordManager.setup_parent_seed": {"executed_lines": [569, 570, 572, 575], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "PasswordManager.select_or_add_fingerprint": {"executed_lines": [581, 582, 583, 586, 587, 588, 590, 591, 592, 597, 598, 600, 602, 603, 607, 608, 613, 614], "summary": {"covered_lines": 18, "num_statements": 25, "percent_covered": 72.0, "percent_covered_display": "72", "missing_lines": 7, "excluded_lines": 0}, "missing_lines": [604, 605, 610, 616, 617, 618, 619], "excluded_lines": []}, "PasswordManager.add_new_fingerprint": {"executed_lines": [626, 627, 634, 635, 636, 637, 638, 639, 644, 648, 649, 657, 658, 660, 662, 663, 664, 665], "summary": {"covered_lines": 18, "num_statements": 21, "percent_covered": 85.71428571428571, "percent_covered_display": "86", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [641, 642, 645], "excluded_lines": []}, "PasswordManager.select_fingerprint": {"executed_lines": [670, 671, 672, 675, 686, 688, 689, 690], "summary": {"covered_lines": 8, "num_statements": 12, "percent_covered": 66.66666666666667, "percent_covered_display": "67", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [676, 682, 697, 698], "excluded_lines": []}, "PasswordManager.setup_encryption_manager": {"executed_lines": [709, 710, 711, 712, 713, 714, 716, 721, 726, 727, 729, 730, 731, 733, 734, 735, 736, 737, 738, 739, 741, 744, 745, 746, 747, 752, 753, 754, 755, 757, 764, 765, 766, 767, 768, 770, 775, 776, 781], "summary": {"covered_lines": 39, "num_statements": 59, "percent_covered": 66.10169491525424, "percent_covered_display": "66", "missing_lines": 20, "excluded_lines": 0}, "missing_lines": [758, 759, 760, 761, 762, 777, 778, 779, 780, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792], "excluded_lines": []}, "PasswordManager.load_parent_seed": {"executed_lines": [799, 802, 805, 806, 811, 816, 817, 822, 825, 826, 830, 831, 832, 833], "summary": {"covered_lines": 14, "num_statements": 26, "percent_covered": 53.84615384615385, "percent_covered_display": "54", "missing_lines": 12, "excluded_lines": 0}, "missing_lines": [800, 803, 818, 819, 820, 827, 828, 829, 834, 835, 836, 837], "excluded_lines": []}, "PasswordManager.handle_switch_fingerprint": {"executed_lines": [842], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "PasswordManager.load_managed_account": {"executed_lines": [847, 850, 851, 852, 853, 855, 859, 860, 861, 863, 864, 865, 866, 867, 869, 870, 871, 872, 873], "summary": {"covered_lines": 19, "num_statements": 20, "percent_covered": 95.0, "percent_covered_display": "95", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [848], "excluded_lines": []}, "PasswordManager.exit_managed_account": {"executed_lines": [878, 880, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 894, 895, 896, 897, 898], "summary": {"covered_lines": 18, "num_statements": 19, "percent_covered": 94.73684210526316, "percent_covered_display": "95", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [879], "excluded_lines": []}, "PasswordManager.handle_existing_seed": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 44, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 44, "excluded_lines": 0}, "missing_lines": [906, 907, 908, 911, 912, 915, 916, 917, 923, 927, 928, 929, 934, 936, 937, 938, 939, 941, 942, 943, 946, 947, 948, 951, 956, 960, 961, 962, 963, 964, 965, 966, 967, 970, 975, 976, 977, 978, 980, 981, 982, 983, 984, 985], "excluded_lines": []}, "PasswordManager.handle_new_seed_setup": {"executed_lines": [993, 995, 1005, 1006, 1007, 1009, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1029], "summary": {"covered_lines": 20, "num_statements": 25, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 5, "excluded_lines": 0}, "missing_lines": [1008, 1010, 1025, 1026, 1030], "excluded_lines": []}, "PasswordManager.setup_existing_seed": {"executed_lines": [1052, 1053, 1054, 1055, 1056, 1058, 1060, 1064, 1065, 1066], "summary": {"covered_lines": 10, "num_statements": 16, "percent_covered": 62.5, "percent_covered_display": "62", "missing_lines": 6, "excluded_lines": 0}, "missing_lines": [1061, 1062, 1063, 1067, 1068, 1069], "excluded_lines": []}, "PasswordManager.setup_existing_seed_word_by_word": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [1075], "excluded_lines": []}, "PasswordManager._finalize_existing_seed": {"executed_lines": [1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1093, 1094, 1095, 1106, 1109, 1115, 1116, 1117, 1118, 1119, 1120, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1133, 1137, 1138, 1139, 1141, 1146, 1147, 1149, 1150, 1152, 1153, 1157, 1158, 1159, 1160], "summary": {"covered_lines": 43, "num_statements": 53, "percent_covered": 81.13207547169812, "percent_covered_display": "81", "missing_lines": 10, "excluded_lines": 0}, "missing_lines": [1096, 1102, 1110, 1113, 1161, 1162, 1163, 1165, 1166, 1167], "excluded_lines": []}, "PasswordManager.generate_new_seed": {"executed_lines": [1177, 1178, 1179, 1180, 1182, 1184, 1185, 1186, 1187, 1192, 1193, 1205, 1214, 1217, 1224, 1225, 1226, 1227, 1228, 1233, 1234, 1235, 1238, 1239, 1240, 1241, 1243, 1244, 1246], "summary": {"covered_lines": 29, "num_statements": 48, "percent_covered": 60.416666666666664, "percent_covered_display": "60", "missing_lines": 19, "excluded_lines": 0}, "missing_lines": [1188, 1189, 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1203, 1204, 1206, 1212, 1218, 1221, 1229, 1230, 1248, 1249], "excluded_lines": []}, "PasswordManager.validate_bip85_seed": {"executed_lines": [1261, 1262, 1263, 1264, 1265, 1266], "summary": {"covered_lines": 6, "num_statements": 9, "percent_covered": 66.66666666666667, "percent_covered_display": "67", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [1267, 1268, 1269], "excluded_lines": []}, "PasswordManager.generate_bip85_seed": {"executed_lines": [1278, 1279, 1280, 1281, 1282], "summary": {"covered_lines": 5, "num_statements": 13, "percent_covered": 38.46153846153846, "percent_covered_display": "38", "missing_lines": 8, "excluded_lines": 0}, "missing_lines": [1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290], "excluded_lines": []}, "PasswordManager.save_and_encrypt_seed": {"executed_lines": [1303, 1304, 1305, 1309, 1313, 1318, 1320, 1321, 1323, 1324, 1325, 1326, 1331, 1335, 1336, 1338, 1342, 1347, 1348, 1350, 1351, 1353, 1354, 1358, 1359], "summary": {"covered_lines": 25, "num_statements": 31, "percent_covered": 80.64516129032258, "percent_covered_display": "81", "missing_lines": 6, "excluded_lines": 0}, "missing_lines": [1314, 1315, 1360, 1361, 1362, 1363], "excluded_lines": []}, "PasswordManager.initialize_bip85": {"executed_lines": [1369, 1370, 1371, 1372, 1373, 1374, 1376, 1386, 1387, 1389], "summary": {"covered_lines": 10, "num_statements": 14, "percent_covered": 71.42857142857143, "percent_covered_display": "71", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [1390, 1391, 1392, 1393], "excluded_lines": []}, "PasswordManager.initialize_bip85.cached_derive": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 4, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [1379, 1380, 1381, 1384], "excluded_lines": []}, "PasswordManager.initialize_managers": {"executed_lines": [1400, 1402, 1406, 1409, 1413, 1414, 1419, 1420, 1421, 1427, 1428, 1431, 1432, 1433, 1435, 1440, 1441, 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1465, 1466, 1469, 1470, 1471, 1472, 1473, 1474, 1485, 1488, 1490, 1491, 1492, 1499, 1500, 1501, 1502, 1503, 1504, 1507, 1508, 1509, 1530, 1532, 1533, 1534, 1535], "summary": {"covered_lines": 53, "num_statements": 62, "percent_covered": 85.48387096774194, "percent_covered_display": "85", "missing_lines": 9, "excluded_lines": 0}, "missing_lines": [1403, 1459, 1460, 1461, 1462, 1463, 1464, 1516, 1523], "excluded_lines": []}, "PasswordManager.sync_index_from_nostr_async": {"executed_lines": [1539, 1541, 1542, 1543, 1544, 1545, 1546, 1558, 1559, 1560, 1561, 1562, 1563, 1564, 1567, 1568, 1569, 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1594, 1595, 1596, 1597, 1629, 1630, 1631, 1647], "summary": {"covered_lines": 42, "num_statements": 59, "percent_covered": 71.1864406779661, "percent_covered_display": "71", "missing_lines": 17, "excluded_lines": 0}, "missing_lines": [1540, 1547, 1548, 1553, 1557, 1604, 1610, 1611, 1616, 1623, 1632, 1633, 1638, 1639, 1642, 1648, 1649], "excluded_lines": []}, "PasswordManager.sync_index_from_nostr": {"executed_lines": [1652], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "PasswordManager.start_background_sync": {"executed_lines": [1656, 1657, 1658, 1659, 1660, 1665, 1674, 1675, 1676, 1677, 1680, 1681, 1683], "summary": {"covered_lines": 13, "num_statements": 14, "percent_covered": 92.85714285714286, "percent_covered_display": "93", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [1663], "excluded_lines": []}, "PasswordManager.start_background_sync._worker": {"executed_lines": [1666, 1667, 1668, 1669, 1670, 1671, 1672], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "PasswordManager.cleanup": {"executed_lines": [1687, 1688, 1690], "summary": {"covered_lines": 3, "num_statements": 5, "percent_covered": 60.0, "percent_covered_display": "60", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [1689, 1691], "excluded_lines": []}, "PasswordManager.start_background_relay_check": {"executed_lines": [1695, 1702, 1719, 1720], "summary": {"covered_lines": 4, "num_statements": 5, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [1700], "excluded_lines": []}, "PasswordManager.start_background_relay_check._worker": {"executed_lines": [1703, 1704, 1707, 1708, 1709, 1714, 1715, 1716, 1717], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "PasswordManager.start_background_vault_sync": {"executed_lines": [1724, 1725, 1727, 1737, 1738, 1739, 1740, 1743, 1744, 1745, 1746, 1748], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "PasswordManager.start_background_vault_sync._worker": {"executed_lines": [1728, 1729, 1730, 1731], "summary": {"covered_lines": 4, "num_statements": 8, "percent_covered": 50.0, "percent_covered_display": "50", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [1732, 1733, 1734, 1735], "excluded_lines": []}, "PasswordManager.attempt_initial_sync_async": {"executed_lines": [1757, 1760, 1761, 1764, 1765, 1766, 1767, 1768, 1769, 1770, 1771, 1772, 1773, 1774, 1780, 1781, 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1789, 1797, 1798, 1799, 1800, 1802, 1803, 1804, 1805, 1807, 1811], "summary": {"covered_lines": 32, "num_statements": 37, "percent_covered": 86.48648648648648, "percent_covered_display": "86", "missing_lines": 5, "excluded_lines": 2}, "missing_lines": [1758, 1762, 1801, 1808, 1809], "excluded_lines": [1804, 1805]}, "PasswordManager.attempt_initial_sync": {"executed_lines": [1814], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "PasswordManager.sync_index_from_nostr_if_missing": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [1822], "excluded_lines": []}, "PasswordManager.sync_index_from_nostr_if_missing_async": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 7, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 7, "excluded_lines": 2}, "missing_lines": [1825, 1826, 1827, 1828, 1829, 1830, 1831], "excluded_lines": [1832, 1833]}, "PasswordManager.check_nostr_backup_exists": {"executed_lines": [1837, 1840, 1841, 1842, 1843, 1848, 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1859], "summary": {"covered_lines": 16, "num_statements": 20, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [1838, 1844, 1845, 1846], "excluded_lines": []}, "PasswordManager.restore_from_nostr_with_guidance": {"executed_lines": [1863, 1864, 1866, 1867, 1868, 1869, 1871, 1872, 1875, 1876, 1877, 1878, 1879, 1880, 1887, 1888], "summary": {"covered_lines": 16, "num_statements": 19, "percent_covered": 84.21052631578948, "percent_covered_display": "84", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [1873, 1882, 1885], "excluded_lines": []}, "PasswordManager.handle_add_password": {"executed_lines": [1892], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "PasswordManager.handle_add_totp": {"executed_lines": [1897, 1898, 1899, 1900, 1907, 1908, 1909, 1910, 1911, 1912, 1913, 1916, 1917, 1918, 1923, 1924, 1927, 1932, 1933, 1934, 1939, 1949, 1953, 1954, 1955, 1956, 1957, 1962, 1963, 1964, 1965, 1966, 1967, 1973, 1974], "summary": {"covered_lines": 35, "num_statements": 76, "percent_covered": 46.05263157894737, "percent_covered_display": "46", "missing_lines": 41, "excluded_lines": 0}, "missing_lines": [1914, 1915, 1919, 1922, 1950, 1951, 1968, 1969, 1975, 1976, 1977, 1978, 1979, 1983, 1984, 1985, 1986, 1987, 1988, 1991, 1996, 1997, 2007, 2008, 2009, 2015, 2016, 2017, 2018, 2019, 2023, 2024, 2025, 2026, 2027, 2028, 2030, 2031, 2032, 2033, 2034], "excluded_lines": []}, "PasswordManager.handle_add_ssh_key": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 33, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 33, "excluded_lines": 0}, "missing_lines": [2039, 2040, 2041, 2048, 2049, 2050, 2051, 2052, 2053, 2054, 2059, 2062, 2065, 2066, 2068, 2071, 2072, 2074, 2075, 2076, 2077, 2078, 2079, 2080, 2081, 2082, 2083, 2084, 2088, 2089, 2090, 2091, 2092], "excluded_lines": []}, "PasswordManager.handle_add_seed": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 41, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 41, "excluded_lines": 0}, "missing_lines": [2097, 2098, 2099, 2106, 2107, 2108, 2109, 2110, 2111, 2112, 2113, 2118, 2119, 2120, 2121, 2122, 2125, 2126, 2127, 2129, 2132, 2133, 2135, 2141, 2142, 2143, 2144, 2145, 2146, 2147, 2148, 2150, 2151, 2152, 2153, 2154, 2158, 2159, 2160, 2161, 2162], "excluded_lines": []}, "PasswordManager.handle_add_pgp": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 33, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 33, "excluded_lines": 2}, "missing_lines": [2167, 2168, 2169, 2176, 2177, 2178, 2179, 2180, 2184, 2185, 2186, 2187, 2192, 2200, 2203, 2204, 2206, 2209, 2210, 2212, 2213, 2214, 2215, 2216, 2217, 2218, 2219, 2220, 2226, 2227, 2228, 2229, 2230], "excluded_lines": [2221, 2222]}, "PasswordManager.handle_add_nostr_key": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 31, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 31, "excluded_lines": 2}, "missing_lines": [2235, 2236, 2237, 2244, 2245, 2246, 2247, 2248, 2249, 2250, 2255, 2258, 2259, 2260, 2261, 2262, 2263, 2264, 2265, 2272, 2273, 2274, 2275, 2278, 2279, 2280, 2286, 2287, 2288, 2289, 2290], "excluded_lines": [2281, 2282]}, "PasswordManager.handle_add_key_value": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 41, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 41, "excluded_lines": 2}, "missing_lines": [2295, 2296, 2297, 2304, 2305, 2306, 2307, 2308, 2309, 2310, 2311, 2312, 2313, 2314, 2315, 2321, 2322, 2323, 2324, 2325, 2326, 2327, 2328, 2329, 2337, 2345, 2346, 2348, 2349, 2350, 2351, 2352, 2353, 2360, 2361, 2362, 2368, 2369, 2370, 2371, 2372], "excluded_lines": [2363, 2364]}, "PasswordManager.handle_add_managed_account": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 30, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 30, "excluded_lines": 2}, "missing_lines": [2377, 2378, 2379, 2386, 2387, 2388, 2389, 2390, 2391, 2392, 2397, 2400, 2401, 2402, 2403, 2409, 2410, 2411, 2412, 2419, 2420, 2421, 2423, 2424, 2425, 2431, 2432, 2433, 2434, 2435], "excluded_lines": [2426, 2427]}, "PasswordManager.show_entry_details_by_index": {"executed_lines": [2439, 2440, 2441, 2444, 2445, 2453, 2455, 2457, 2458, 2459, 2460, 2461, 2462], "summary": {"covered_lines": 13, "num_statements": 14, "percent_covered": 92.85714285714286, "percent_covered_display": "93", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [2442], "excluded_lines": []}, "PasswordManager._prompt_toggle_archive": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 9, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 9, "excluded_lines": 0}, "missing_lines": [2466, 2467, 2472, 2473, 2474, 2475, 2477, 2478, 2479], "excluded_lines": []}, "PasswordManager._entry_type_str": {"executed_lines": [2483, 2484, 2485, 2486], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "PasswordManager._generate_password_for_entry": {"executed_lines": [2492, 2493, 2494, 2496, 2497, 2498, 2500, 2501, 2505, 2506, 2507, 2509], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "PasswordManager._entry_actions_menu": {"executed_lines": [2513, 2514, 2515, 2522, 2523, 2524, 2525, 2526, 2528, 2529, 2530, 2531, 2532, 2533, 2534, 2539, 2541, 2544, 2545, 2546, 2547, 2548, 2549, 2550, 2551, 2552, 2553, 2554, 2555, 2556, 2562, 2576, 2577, 2578, 2584, 2587, 2592, 2593, 2594, 2595, 2596, 2597, 2598, 2599, 2602], "summary": {"covered_lines": 45, "num_statements": 61, "percent_covered": 73.77049180327869, "percent_covered_display": "74", "missing_lines": 16, "excluded_lines": 0}, "missing_lines": [2557, 2558, 2559, 2560, 2561, 2563, 2564, 2565, 2567, 2568, 2569, 2570, 2573, 2574, 2575, 2601], "excluded_lines": []}, "PasswordManager._entry_edit_menu": {"executed_lines": [2606, 2607, 2608, 2609, 2616, 2617, 2618, 2623, 2626, 2627, 2628, 2629, 2630, 2631, 2632, 2638, 2644, 2652, 2657, 2662, 2663, 2664, 2665, 2666, 2667, 2680], "summary": {"covered_lines": 26, "num_statements": 62, "percent_covered": 41.935483870967744, "percent_covered_display": "42", "missing_lines": 36, "excluded_lines": 0}, "missing_lines": [2619, 2620, 2624, 2625, 2633, 2634, 2635, 2636, 2637, 2639, 2640, 2641, 2642, 2643, 2645, 2646, 2647, 2648, 2649, 2653, 2654, 2655, 2656, 2658, 2659, 2660, 2661, 2669, 2670, 2671, 2672, 2673, 2674, 2675, 2677, 2679], "excluded_lines": []}, "PasswordManager._entry_qr_menu": {"executed_lines": [2685, 2687, 2688, 2703, 2704, 2705, 2706, 2713, 2714, 2715, 2716, 2721, 2722, 2724, 2728, 2729, 2730, 2731, 2732, 2733, 2736, 2737, 2738], "summary": {"covered_lines": 23, "num_statements": 33, "percent_covered": 69.6969696969697, "percent_covered_display": "70", "missing_lines": 10, "excluded_lines": 3}, "missing_lines": [2689, 2690, 2692, 2696, 2697, 2699, 2700, 2701, 2735, 2740], "excluded_lines": [2741, 2742, 2743]}, "PasswordManager.display_sensitive_entry_info": {"executed_lines": [2756, 2758, 2760, 2761, 2762, 2763, 2764, 2765, 2766, 2767, 2768, 2769, 2770, 2771, 2780, 2781, 2782, 2783, 2784, 2785, 2787, 2788, 2790, 2791, 2792, 2793, 2794, 2795, 2796, 2797, 2798, 2799, 2803, 2804, 2812, 2813, 2814, 2815, 2819, 2821, 2822, 2823, 2824, 2827, 2828, 2829, 2830, 2833, 2834, 2835, 2836, 2838, 2839, 2841, 2842, 2843, 2852, 2853, 2857, 2859, 2860, 2861, 2862, 2865, 2866, 2867, 2868, 2869, 2870, 2871, 2872, 2873, 2875, 2876, 2878, 2887, 2888, 2889, 2890, 2892, 2893, 2894, 2895, 2896, 2902, 2906, 2908, 2909, 2910, 2911, 2914, 2915, 2916, 2917, 2920, 2921, 2922, 2923, 2925, 2926, 2928, 2929, 2938, 2942, 2944, 2945, 2946, 2947, 2948, 2951, 2952, 2953, 2954, 2963, 2964, 2966, 2967, 2972, 2974, 2975, 2976, 2977, 2978, 2979, 2980, 2982, 2983, 2985, 2990, 2999, 3001, 3002, 3029, 3031, 3032, 3033, 3034, 3035, 3036, 3037, 3039, 3040, 3041, 3042, 3044, 3049, 3056, 3057, 3060, 3069, 3070, 3071, 3075, 3078, 3079, 3080, 3081, 3082, 3083, 3085, 3091, 3093, 3095, 3096, 3101, 3103, 3104, 3105, 3106, 3113, 3119, 3120, 3121, 3122, 3128, 3129, 3130, 3131, 3132, 3133, 3134, 3135, 3136, 3137, 3138, 3139, 3140, 3141, 3142, 3144, 3145, 3146, 3147, 3148, 3149, 3160, 3163], "summary": {"covered_lines": 197, "num_statements": 257, "percent_covered": 76.65369649805447, "percent_covered_display": "77", "missing_lines": 60, "excluded_lines": 15}, "missing_lines": [2772, 2773, 2786, 2789, 2805, 2806, 2807, 2808, 2809, 2810, 2811, 2837, 2840, 2844, 2845, 2874, 2877, 2879, 2880, 2924, 2927, 2930, 2931, 2955, 2956, 2965, 2968, 2981, 2984, 2991, 2992, 3003, 3004, 3005, 3006, 3007, 3008, 3009, 3010, 3012, 3013, 3014, 3015, 3016, 3017, 3018, 3021, 3028, 3038, 3043, 3061, 3062, 3072, 3073, 3074, 3092, 3094, 3150, 3153, 3162], "excluded_lines": [2816, 2817, 2818, 2854, 2855, 2856, 2903, 2904, 2905, 2939, 2940, 2941, 2969, 2970, 2971]}, "PasswordManager.handle_retrieve_entry": {"executed_lines": [3168, 3169, 3170, 3177, 3180, 3184, 3186, 3187, 3191, 3192, 3193, 3194, 3195, 3196, 3197, 3198], "summary": {"covered_lines": 16, "num_statements": 21, "percent_covered": 76.19047619047619, "percent_covered_display": "76", "missing_lines": 5, "excluded_lines": 0}, "missing_lines": [3181, 3182, 3183, 3188, 3189], "excluded_lines": []}, "PasswordManager.handle_modify_entry": {"executed_lines": [3206, 3207, 3208, 3215, 3218, 3221, 3224, 3225, 3228, 3230, 3339, 3403, 3512, 3513, 3514, 3515, 3516, 3518, 3524, 3525, 3526, 3527, 3534, 3541, 3547, 3553, 3560, 3561, 3573, 3580, 3581, 3582, 3594, 3597, 3603, 3615, 3616, 3618, 3621, 3622, 3623, 3632], "summary": {"covered_lines": 42, "num_statements": 168, "percent_covered": 25.0, "percent_covered_display": "25", "missing_lines": 126, "excluded_lines": 0}, "missing_lines": [3219, 3220, 3226, 3231, 3232, 3233, 3234, 3235, 3237, 3243, 3244, 3245, 3251, 3255, 3258, 3259, 3260, 3261, 3263, 3267, 3270, 3271, 3272, 3273, 3275, 3279, 3286, 3287, 3288, 3289, 3290, 3291, 3293, 3297, 3299, 3306, 3307, 3308, 3309, 3310, 3311, 3312, 3313, 3314, 3315, 3316, 3320, 3323, 3329, 3340, 3341, 3342, 3344, 3350, 3356, 3360, 3367, 3368, 3369, 3370, 3371, 3372, 3374, 3378, 3380, 3387, 3390, 3396, 3407, 3408, 3409, 3410, 3412, 3418, 3424, 3430, 3434, 3435, 3439, 3440, 3444, 3451, 3452, 3453, 3454, 3455, 3456, 3458, 3462, 3464, 3471, 3472, 3473, 3474, 3475, 3476, 3479, 3480, 3481, 3482, 3483, 3487, 3490, 3496, 3504, 3505, 3507, 3562, 3563, 3564, 3565, 3567, 3571, 3583, 3584, 3585, 3586, 3587, 3588, 3589, 3590, 3626, 3627, 3634, 3635, 3636], "excluded_lines": []}, "PasswordManager.handle_search_entries": {"executed_lines": [3641, 3642, 3643, 3650, 3651, 3652, 3653, 3654, 3656, 3657, 3662, 3663, 3664, 3671, 3672, 3673, 3674, 3676, 3677, 3679, 3682, 3684, 3690, 3691, 3692, 3693, 3694], "summary": {"covered_lines": 27, "num_statements": 35, "percent_covered": 77.14285714285714, "percent_covered_display": "77", "missing_lines": 8, "excluded_lines": 0}, "missing_lines": [3658, 3659, 3660, 3675, 3683, 3687, 3688, 3689], "excluded_lines": []}, "PasswordManager.display_entry_details": {"executed_lines": [3698, 3699, 3702, 3703, 3704, 3705, 3706, 3709, 3715, 3716, 3718, 3719, 3721, 3722, 3723, 3724, 3725, 3726, 3732, 3733, 3735, 3736, 3738, 3739, 3740, 3741, 3744, 3745, 3746, 3747, 3748, 3749, 3750, 3751, 3753, 3754, 3756, 3757, 3758, 3759, 3762, 3763, 3764, 3765, 3768, 3769, 3770, 3771, 3776, 3777, 3779, 3780, 3782, 3783, 3784, 3785, 3788, 3789, 3791, 3792, 3794, 3795, 3796, 3797, 3798, 3799, 3800, 3802, 3803, 3805, 3806, 3807, 3808, 3809, 3810, 3811, 3812, 3815, 3816, 3817, 3818, 3819, 3821, 3822, 3824, 3825, 3827, 3828, 3829, 3830, 3831, 3832, 3833, 3834, 3835, 3836, 3837, 3838, 3840, 3846], "summary": {"covered_lines": 100, "num_statements": 116, "percent_covered": 86.20689655172414, "percent_covered_display": "86", "missing_lines": 16, "excluded_lines": 2}, "missing_lines": [3700, 3717, 3720, 3734, 3737, 3752, 3755, 3778, 3781, 3790, 3793, 3801, 3804, 3820, 3823, 3839], "excluded_lines": [3772, 3773]}, "PasswordManager.handle_list_entries": {"executed_lines": [3850], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "PasswordManager.delete_entry": {"executed_lines": [3854, 3855, 3858, 3861, 3863, 3869, 3872, 3873, 3876, 3877, 3878], "summary": {"covered_lines": 11, "num_statements": 20, "percent_covered": 55.0, "percent_covered_display": "55", "missing_lines": 9, "excluded_lines": 0}, "missing_lines": [3859, 3860, 3866, 3867, 3879, 3880, 3885, 3886, 3887], "excluded_lines": []}, "PasswordManager.handle_archive_entry": {"executed_lines": [3892, 3893, 3896, 3899, 3900, 3901, 3902, 3903], "summary": {"covered_lines": 8, "num_statements": 13, "percent_covered": 61.53846153846154, "percent_covered_display": "62", "missing_lines": 5, "excluded_lines": 0}, "missing_lines": [3897, 3898, 3904, 3905, 3906], "excluded_lines": []}, "PasswordManager.handle_view_archived_entries": {"executed_lines": [3911, 3913, 3921, 3922, 3923, 3924, 3925, 3926, 3927, 3928, 3929, 3930, 3931, 3932, 3933, 3940, 3941, 3942, 3943, 3946, 3947, 3948, 3953, 3954, 3955, 3962, 3963, 3964, 3965, 3966, 3967, 3968, 3969, 3970, 3971, 3972, 3973, 3974, 3975, 3976, 3978, 3979], "summary": {"covered_lines": 42, "num_statements": 49, "percent_covered": 85.71428571428571, "percent_covered_display": "86", "missing_lines": 7, "excluded_lines": 0}, "missing_lines": [3951, 3952, 3977, 3981, 3982, 3983, 3984], "excluded_lines": []}, "PasswordManager.handle_view_archived_entries._load_archived_entries": {"executed_lines": [3916, 3919], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "PasswordManager.handle_display_totp_codes": {"executed_lines": [3988], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "PasswordManager.handle_verify_checksum": {"executed_lines": [3995, 3996, 3997, 4004, 4005, 4006, 4007, 4008, 4012, 4013, 4015, 4016, 4017, 4019, 4025], "summary": {"covered_lines": 15, "num_statements": 18, "percent_covered": 83.33333333333333, "percent_covered_display": "83", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [4026, 4027, 4028], "excluded_lines": []}, "PasswordManager.handle_update_script_checksum": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 13, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 13, "excluded_lines": 0}, "missing_lines": [4033, 4034, 4035, 4036, 4037, 4038, 4045, 4046, 4047, 4054, 4055, 4056, 4057], "excluded_lines": []}, "PasswordManager.get_encrypted_data": {"executed_lines": [4065, 4066, 4067, 4068, 4069], "summary": {"covered_lines": 5, "num_statements": 12, "percent_covered": 41.666666666666664, "percent_covered_display": "42", "missing_lines": 7, "excluded_lines": 0}, "missing_lines": [4071, 4072, 4073, 4074, 4075, 4076, 4077], "excluded_lines": []}, "PasswordManager.decrypt_and_save_index_from_nostr": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 7, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 7, "excluded_lines": 0}, "missing_lines": [4085, 4086, 4087, 4088, 4089, 4092, 4098], "excluded_lines": []}, "PasswordManager.sync_vault_async": {"executed_lines": [4104, 4105, 4106, 4107, 4108, 4110, 4111, 4112, 4113, 4114, 4115, 4117, 4121, 4122, 4124, 4125, 4126, 4127, 4128, 4129, 4130, 4135, 4136, 4141, 4142, 4143], "summary": {"covered_lines": 26, "num_statements": 29, "percent_covered": 89.65517241379311, "percent_covered_display": "90", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [4109, 4120, 4123], "excluded_lines": []}, "PasswordManager.sync_vault": {"executed_lines": [4148], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "PasswordManager.backup_database": {"executed_lines": [4154, 4155, 4156], "summary": {"covered_lines": 3, "num_statements": 6, "percent_covered": 50.0, "percent_covered_display": "50", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [4157, 4158, 4159], "excluded_lines": []}, "PasswordManager.restore_database": {"executed_lines": [4165, 4166, 4167], "summary": {"covered_lines": 3, "num_statements": 6, "percent_covered": 50.0, "percent_covered_display": "50", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [4172, 4173, 4174], "excluded_lines": []}, "PasswordManager.handle_export_database": {"executed_lines": [4189, 4190, 4191, 4198, 4199, 4202, 4209, 4210, 4211, 4212, 4213], "summary": {"covered_lines": 11, "num_statements": 15, "percent_covered": 73.33333333333333, "percent_covered_display": "73", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [4214, 4215, 4216, 4217], "excluded_lines": []}, "PasswordManager.handle_import_database": {"executed_lines": [4223, 4224, 4230, 4233, 4234, 4235, 4240, 4241, 4243, 4244, 4252, 4253, 4259, 4268, 4269, 4270, 4271], "summary": {"covered_lines": 17, "num_statements": 42, "percent_covered": 40.476190476190474, "percent_covered_display": "40", "missing_lines": 25, "excluded_lines": 0}, "missing_lines": [4236, 4237, 4238, 4239, 4260, 4261, 4267, 4272, 4273, 4274, 4280, 4282, 4283, 4284, 4285, 4286, 4289, 4290, 4291, 4292, 4293, 4296, 4297, 4299, 4300], "excluded_lines": []}, "PasswordManager.handle_export_totp_codes": {"executed_lines": [4305, 4306, 4307, 4308, 4315, 4316, 4318, 4319, 4320, 4321, 4322, 4323, 4324, 4325, 4330, 4331, 4341, 4345, 4348, 4350, 4352, 4363, 4365, 4366, 4367], "summary": {"covered_lines": 25, "num_statements": 41, "percent_covered": 60.97560975609756, "percent_covered_display": "61", "missing_lines": 16, "excluded_lines": 0}, "missing_lines": [4327, 4328, 4329, 4342, 4343, 4353, 4354, 4355, 4358, 4359, 4360, 4361, 4368, 4369, 4370, 4371], "excluded_lines": []}, "PasswordManager.handle_backup_reveal_parent_seed": {"executed_lines": [4386, 4387, 4388, 4395, 4396, 4400, 4406, 4410, 4415, 4418, 4419, 4422, 4423, 4424, 4431, 4432, 4436, 4439, 4440, 4443, 4444, 4446, 4447, 4451, 4454, 4460, 4461, 4462, 4465], "summary": {"covered_lines": 29, "num_statements": 39, "percent_covered": 74.35897435897436, "percent_covered_display": "74", "missing_lines": 10, "excluded_lines": 0}, "missing_lines": [4407, 4411, 4412, 4433, 4434, 4448, 4449, 4466, 4467, 4468], "excluded_lines": []}, "PasswordManager.verify_password": {"executed_lines": [4480, 4481, 4482, 4483, 4495, 4496, 4497, 4500], "summary": {"covered_lines": 8, "num_statements": 25, "percent_covered": 32.0, "percent_covered_display": "32", "missing_lines": 17, "excluded_lines": 0}, "missing_lines": [4485, 4486, 4487, 4488, 4489, 4491, 4492, 4493, 4499, 4501, 4502, 4503, 4509, 4510, 4511, 4512, 4513], "excluded_lines": []}, "PasswordManager.is_valid_filename": {"executed_lines": [4526, 4527, 4528, 4529, 4530], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "PasswordManager.store_hashed_password": {"executed_lines": [4537, 4538, 4539, 4540, 4550], "summary": {"covered_lines": 5, "num_statements": 21, "percent_covered": 23.80952380952381, "percent_covered_display": "24", "missing_lines": 16, "excluded_lines": 0}, "missing_lines": [4543, 4544, 4549, 4551, 4553, 4554, 4555, 4556, 4558, 4559, 4564, 4565, 4568, 4569, 4570, 4571], "excluded_lines": []}, "PasswordManager.change_password": {"executed_lines": [4575, 4576, 4577, 4581, 4582, 4585, 4587, 4588, 4591, 4593, 4595, 4596, 4597, 4598, 4599, 4602, 4603, 4604, 4606, 4610, 4611, 4621, 4637, 4638, 4639], "summary": {"covered_lines": 25, "num_statements": 37, "percent_covered": 67.56756756756756, "percent_covered_display": "68", "missing_lines": 12, "excluded_lines": 0}, "missing_lines": [4578, 4607, 4608, 4624, 4626, 4627, 4628, 4640, 4641, 4644, 4645, 4646], "excluded_lines": []}, "PasswordManager.get_profile_stats": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 47, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 47, "excluded_lines": 0}, "missing_lines": [4650, 4651, 4653, 4656, 4657, 4658, 4659, 4660, 4661, 4662, 4663, 4666, 4667, 4668, 4669, 4670, 4671, 4672, 4674, 4675, 4676, 4679, 4680, 4681, 4682, 4683, 4685, 4686, 4687, 4689, 4692, 4693, 4694, 4695, 4698, 4701, 4702, 4703, 4708, 4709, 4710, 4711, 4712, 4714, 4715, 4716, 4718], "excluded_lines": []}, "PasswordManager.display_stats": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 19, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 19, "excluded_lines": 0}, "missing_lines": [4722, 4723, 4724, 4725, 4727, 4728, 4729, 4730, 4731, 4732, 4738, 4739, 4744, 4745, 4751, 4757, 4758, 4759, 4760], "excluded_lines": []}, "": {"executed_lines": [3, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 52, 53, 60, 66, 67, 68, 69, 75, 76, 77, 78, 79, 81, 94, 95, 96, 97, 99, 100, 101, 102, 104, 105, 108, 109, 110, 111, 112, 113, 114, 115, 118, 121, 122, 124, 141, 158, 164, 189, 190, 191, 193, 194, 197, 209, 210, 212, 218, 227, 228, 237, 238, 239, 240, 241, 242, 244, 327, 328, 339, 340, 345, 355, 369, 386, 387, 391, 392, 398, 399, 407, 408, 422, 423, 432, 441, 450, 465, 477, 478, 483, 484, 489, 490, 497, 505, 551, 565, 577, 621, 667, 700, 794, 839, 840, 841, 844, 845, 875, 876, 900, 901, 987, 988, 1032, 1071, 1077, 1169, 1170, 1251, 1271, 1292, 1293, 1365, 1395, 1537, 1651, 1654, 1685, 1693, 1722, 1750, 1813, 1816, 1824, 1835, 1861, 1890, 1891, 1894, 1895, 2036, 2037, 2094, 2095, 2164, 2165, 2232, 2233, 2292, 2293, 2374, 2375, 2437, 2464, 2481, 2488, 2511, 2604, 2682, 2745, 3165, 3166, 3200, 3201, 3638, 3639, 3696, 3848, 3849, 3852, 3889, 3890, 3908, 3909, 3986, 3987, 3990, 3991, 4030, 4031, 4059, 4079, 4100, 4145, 4150, 4161, 4176, 4177, 4219, 4220, 4302, 4303, 4373, 4374, 4470, 4515, 4532, 4573, 4648, 4720], "summary": {"covered_lines": 219, "num_statements": 219, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"AuditLogger": {"executed_lines": [125, 126, 127, 128, 129, 142, 143, 148, 149, 152, 153, 154, 155], "summary": {"covered_lines": 13, "num_statements": 23, "percent_covered": 56.52173913043478, "percent_covered_display": "57", "missing_lines": 10, "excluded_lines": 0}, "missing_lines": [130, 131, 132, 133, 134, 135, 136, 137, 138, 139], "excluded_lines": []}, "Notification": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "AuthGuard": {"executed_lines": [215, 216, 220, 221, 222, 223, 224], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "PasswordManager": {"executed_lines": [254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 277, 278, 279, 280, 281, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 304, 305, 306, 309, 310, 311, 314, 316, 318, 321, 323, 348, 349, 350, 351, 352, 353, 357, 363, 364, 365, 366, 367, 371, 372, 373, 374, 375, 376, 377, 378, 394, 396, 400, 405, 425, 426, 427, 428, 434, 435, 436, 437, 438, 439, 443, 444, 445, 446, 447, 448, 452, 453, 454, 458, 462, 463, 467, 469, 470, 471, 472, 473, 474, 475, 479, 480, 481, 485, 486, 487, 491, 492, 493, 494, 495, 499, 500, 501, 502, 503, 518, 519, 521, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 536, 541, 542, 543, 546, 547, 548, 549, 555, 556, 557, 569, 570, 572, 575, 581, 582, 583, 586, 587, 588, 590, 591, 592, 597, 598, 600, 602, 603, 607, 608, 613, 614, 626, 627, 634, 635, 636, 637, 638, 639, 644, 648, 649, 657, 658, 660, 662, 663, 664, 665, 670, 671, 672, 675, 686, 688, 689, 690, 709, 710, 711, 712, 713, 714, 716, 721, 726, 727, 729, 730, 731, 733, 734, 735, 736, 737, 738, 739, 741, 744, 745, 746, 747, 752, 753, 754, 755, 757, 764, 765, 766, 767, 768, 770, 775, 776, 781, 799, 802, 805, 806, 811, 816, 817, 822, 825, 826, 830, 831, 832, 833, 842, 847, 850, 851, 852, 853, 855, 859, 860, 861, 863, 864, 865, 866, 867, 869, 870, 871, 872, 873, 878, 880, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 894, 895, 896, 897, 898, 993, 995, 1005, 1006, 1007, 1009, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1029, 1052, 1053, 1054, 1055, 1056, 1058, 1060, 1064, 1065, 1066, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1093, 1094, 1095, 1106, 1109, 1115, 1116, 1117, 1118, 1119, 1120, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1133, 1137, 1138, 1139, 1141, 1146, 1147, 1149, 1150, 1152, 1153, 1157, 1158, 1159, 1160, 1177, 1178, 1179, 1180, 1182, 1184, 1185, 1186, 1187, 1192, 1193, 1205, 1214, 1217, 1224, 1225, 1226, 1227, 1228, 1233, 1234, 1235, 1238, 1239, 1240, 1241, 1243, 1244, 1246, 1261, 1262, 1263, 1264, 1265, 1266, 1278, 1279, 1280, 1281, 1282, 1303, 1304, 1305, 1309, 1313, 1318, 1320, 1321, 1323, 1324, 1325, 1326, 1331, 1335, 1336, 1338, 1342, 1347, 1348, 1350, 1351, 1353, 1354, 1358, 1359, 1369, 1370, 1371, 1372, 1373, 1374, 1376, 1386, 1387, 1389, 1400, 1402, 1406, 1409, 1413, 1414, 1419, 1420, 1421, 1427, 1428, 1431, 1432, 1433, 1435, 1440, 1441, 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1465, 1466, 1469, 1470, 1471, 1472, 1473, 1474, 1485, 1488, 1490, 1491, 1492, 1499, 1500, 1501, 1502, 1503, 1504, 1507, 1508, 1509, 1530, 1532, 1533, 1534, 1535, 1539, 1541, 1542, 1543, 1544, 1545, 1546, 1558, 1559, 1560, 1561, 1562, 1563, 1564, 1567, 1568, 1569, 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1594, 1595, 1596, 1597, 1629, 1630, 1631, 1647, 1652, 1656, 1657, 1658, 1659, 1660, 1665, 1666, 1667, 1668, 1669, 1670, 1671, 1672, 1674, 1675, 1676, 1677, 1680, 1681, 1683, 1687, 1688, 1690, 1695, 1702, 1703, 1704, 1707, 1708, 1709, 1714, 1715, 1716, 1717, 1719, 1720, 1724, 1725, 1727, 1728, 1729, 1730, 1731, 1737, 1738, 1739, 1740, 1743, 1744, 1745, 1746, 1748, 1757, 1760, 1761, 1764, 1765, 1766, 1767, 1768, 1769, 1770, 1771, 1772, 1773, 1774, 1780, 1781, 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1789, 1797, 1798, 1799, 1800, 1802, 1803, 1804, 1805, 1807, 1811, 1814, 1837, 1840, 1841, 1842, 1843, 1848, 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1859, 1863, 1864, 1866, 1867, 1868, 1869, 1871, 1872, 1875, 1876, 1877, 1878, 1879, 1880, 1887, 1888, 1892, 1897, 1898, 1899, 1900, 1907, 1908, 1909, 1910, 1911, 1912, 1913, 1916, 1917, 1918, 1923, 1924, 1927, 1932, 1933, 1934, 1939, 1949, 1953, 1954, 1955, 1956, 1957, 1962, 1963, 1964, 1965, 1966, 1967, 1973, 1974, 2439, 2440, 2441, 2444, 2445, 2453, 2455, 2457, 2458, 2459, 2460, 2461, 2462, 2483, 2484, 2485, 2486, 2492, 2493, 2494, 2496, 2497, 2498, 2500, 2501, 2505, 2506, 2507, 2509, 2513, 2514, 2515, 2522, 2523, 2524, 2525, 2526, 2528, 2529, 2530, 2531, 2532, 2533, 2534, 2539, 2541, 2544, 2545, 2546, 2547, 2548, 2549, 2550, 2551, 2552, 2553, 2554, 2555, 2556, 2562, 2576, 2577, 2578, 2584, 2587, 2592, 2593, 2594, 2595, 2596, 2597, 2598, 2599, 2602, 2606, 2607, 2608, 2609, 2616, 2617, 2618, 2623, 2626, 2627, 2628, 2629, 2630, 2631, 2632, 2638, 2644, 2652, 2657, 2662, 2663, 2664, 2665, 2666, 2667, 2680, 2685, 2687, 2688, 2703, 2704, 2705, 2706, 2713, 2714, 2715, 2716, 2721, 2722, 2724, 2728, 2729, 2730, 2731, 2732, 2733, 2736, 2737, 2738, 2756, 2758, 2760, 2761, 2762, 2763, 2764, 2765, 2766, 2767, 2768, 2769, 2770, 2771, 2780, 2781, 2782, 2783, 2784, 2785, 2787, 2788, 2790, 2791, 2792, 2793, 2794, 2795, 2796, 2797, 2798, 2799, 2803, 2804, 2812, 2813, 2814, 2815, 2819, 2821, 2822, 2823, 2824, 2827, 2828, 2829, 2830, 2833, 2834, 2835, 2836, 2838, 2839, 2841, 2842, 2843, 2852, 2853, 2857, 2859, 2860, 2861, 2862, 2865, 2866, 2867, 2868, 2869, 2870, 2871, 2872, 2873, 2875, 2876, 2878, 2887, 2888, 2889, 2890, 2892, 2893, 2894, 2895, 2896, 2902, 2906, 2908, 2909, 2910, 2911, 2914, 2915, 2916, 2917, 2920, 2921, 2922, 2923, 2925, 2926, 2928, 2929, 2938, 2942, 2944, 2945, 2946, 2947, 2948, 2951, 2952, 2953, 2954, 2963, 2964, 2966, 2967, 2972, 2974, 2975, 2976, 2977, 2978, 2979, 2980, 2982, 2983, 2985, 2990, 2999, 3001, 3002, 3029, 3031, 3032, 3033, 3034, 3035, 3036, 3037, 3039, 3040, 3041, 3042, 3044, 3049, 3056, 3057, 3060, 3069, 3070, 3071, 3075, 3078, 3079, 3080, 3081, 3082, 3083, 3085, 3091, 3093, 3095, 3096, 3101, 3103, 3104, 3105, 3106, 3113, 3119, 3120, 3121, 3122, 3128, 3129, 3130, 3131, 3132, 3133, 3134, 3135, 3136, 3137, 3138, 3139, 3140, 3141, 3142, 3144, 3145, 3146, 3147, 3148, 3149, 3160, 3163, 3168, 3169, 3170, 3177, 3180, 3184, 3186, 3187, 3191, 3192, 3193, 3194, 3195, 3196, 3197, 3198, 3206, 3207, 3208, 3215, 3218, 3221, 3224, 3225, 3228, 3230, 3339, 3403, 3512, 3513, 3514, 3515, 3516, 3518, 3524, 3525, 3526, 3527, 3534, 3541, 3547, 3553, 3560, 3561, 3573, 3580, 3581, 3582, 3594, 3597, 3603, 3615, 3616, 3618, 3621, 3622, 3623, 3632, 3641, 3642, 3643, 3650, 3651, 3652, 3653, 3654, 3656, 3657, 3662, 3663, 3664, 3671, 3672, 3673, 3674, 3676, 3677, 3679, 3682, 3684, 3690, 3691, 3692, 3693, 3694, 3698, 3699, 3702, 3703, 3704, 3705, 3706, 3709, 3715, 3716, 3718, 3719, 3721, 3722, 3723, 3724, 3725, 3726, 3732, 3733, 3735, 3736, 3738, 3739, 3740, 3741, 3744, 3745, 3746, 3747, 3748, 3749, 3750, 3751, 3753, 3754, 3756, 3757, 3758, 3759, 3762, 3763, 3764, 3765, 3768, 3769, 3770, 3771, 3776, 3777, 3779, 3780, 3782, 3783, 3784, 3785, 3788, 3789, 3791, 3792, 3794, 3795, 3796, 3797, 3798, 3799, 3800, 3802, 3803, 3805, 3806, 3807, 3808, 3809, 3810, 3811, 3812, 3815, 3816, 3817, 3818, 3819, 3821, 3822, 3824, 3825, 3827, 3828, 3829, 3830, 3831, 3832, 3833, 3834, 3835, 3836, 3837, 3838, 3840, 3846, 3850, 3854, 3855, 3858, 3861, 3863, 3869, 3872, 3873, 3876, 3877, 3878, 3892, 3893, 3896, 3899, 3900, 3901, 3902, 3903, 3911, 3913, 3916, 3919, 3921, 3922, 3923, 3924, 3925, 3926, 3927, 3928, 3929, 3930, 3931, 3932, 3933, 3940, 3941, 3942, 3943, 3946, 3947, 3948, 3953, 3954, 3955, 3962, 3963, 3964, 3965, 3966, 3967, 3968, 3969, 3970, 3971, 3972, 3973, 3974, 3975, 3976, 3978, 3979, 3988, 3995, 3996, 3997, 4004, 4005, 4006, 4007, 4008, 4012, 4013, 4015, 4016, 4017, 4019, 4025, 4065, 4066, 4067, 4068, 4069, 4104, 4105, 4106, 4107, 4108, 4110, 4111, 4112, 4113, 4114, 4115, 4117, 4121, 4122, 4124, 4125, 4126, 4127, 4128, 4129, 4130, 4135, 4136, 4141, 4142, 4143, 4148, 4154, 4155, 4156, 4165, 4166, 4167, 4189, 4190, 4191, 4198, 4199, 4202, 4209, 4210, 4211, 4212, 4213, 4223, 4224, 4230, 4233, 4234, 4235, 4240, 4241, 4243, 4244, 4252, 4253, 4259, 4268, 4269, 4270, 4271, 4305, 4306, 4307, 4308, 4315, 4316, 4318, 4319, 4320, 4321, 4322, 4323, 4324, 4325, 4330, 4331, 4341, 4345, 4348, 4350, 4352, 4363, 4365, 4366, 4367, 4386, 4387, 4388, 4395, 4396, 4400, 4406, 4410, 4415, 4418, 4419, 4422, 4423, 4424, 4431, 4432, 4436, 4439, 4440, 4443, 4444, 4446, 4447, 4451, 4454, 4460, 4461, 4462, 4465, 4480, 4481, 4482, 4483, 4495, 4496, 4497, 4500, 4526, 4527, 4528, 4529, 4530, 4537, 4538, 4539, 4540, 4550, 4575, 4576, 4577, 4581, 4582, 4585, 4587, 4588, 4591, 4593, 4595, 4596, 4597, 4598, 4599, 4602, 4603, 4604, 4606, 4610, 4611, 4621, 4637, 4638, 4639], "summary": {"covered_lines": 1433, "num_statements": 2437, "percent_covered": 58.80180549856381, "percent_covered_display": "59", "missing_lines": 1004, "excluded_lines": 32}, "missing_lines": [333, 334, 335, 343, 389, 395, 401, 402, 403, 410, 411, 412, 413, 414, 417, 418, 419, 420, 429, 430, 455, 456, 468, 520, 522, 558, 559, 560, 563, 604, 605, 610, 616, 617, 618, 619, 641, 642, 645, 676, 682, 697, 698, 758, 759, 760, 761, 762, 777, 778, 779, 780, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 800, 803, 818, 819, 820, 827, 828, 829, 834, 835, 836, 837, 848, 879, 906, 907, 908, 911, 912, 915, 916, 917, 923, 927, 928, 929, 934, 936, 937, 938, 939, 941, 942, 943, 946, 947, 948, 951, 956, 960, 961, 962, 963, 964, 965, 966, 967, 970, 975, 976, 977, 978, 980, 981, 982, 983, 984, 985, 1008, 1010, 1025, 1026, 1030, 1061, 1062, 1063, 1067, 1068, 1069, 1075, 1096, 1102, 1110, 1113, 1161, 1162, 1163, 1165, 1166, 1167, 1188, 1189, 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1203, 1204, 1206, 1212, 1218, 1221, 1229, 1230, 1248, 1249, 1267, 1268, 1269, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1314, 1315, 1360, 1361, 1362, 1363, 1379, 1380, 1381, 1384, 1390, 1391, 1392, 1393, 1403, 1459, 1460, 1461, 1462, 1463, 1464, 1516, 1523, 1540, 1547, 1548, 1553, 1557, 1604, 1610, 1611, 1616, 1623, 1632, 1633, 1638, 1639, 1642, 1648, 1649, 1663, 1689, 1691, 1700, 1732, 1733, 1734, 1735, 1758, 1762, 1801, 1808, 1809, 1822, 1825, 1826, 1827, 1828, 1829, 1830, 1831, 1838, 1844, 1845, 1846, 1873, 1882, 1885, 1914, 1915, 1919, 1922, 1950, 1951, 1968, 1969, 1975, 1976, 1977, 1978, 1979, 1983, 1984, 1985, 1986, 1987, 1988, 1991, 1996, 1997, 2007, 2008, 2009, 2015, 2016, 2017, 2018, 2019, 2023, 2024, 2025, 2026, 2027, 2028, 2030, 2031, 2032, 2033, 2034, 2039, 2040, 2041, 2048, 2049, 2050, 2051, 2052, 2053, 2054, 2059, 2062, 2065, 2066, 2068, 2071, 2072, 2074, 2075, 2076, 2077, 2078, 2079, 2080, 2081, 2082, 2083, 2084, 2088, 2089, 2090, 2091, 2092, 2097, 2098, 2099, 2106, 2107, 2108, 2109, 2110, 2111, 2112, 2113, 2118, 2119, 2120, 2121, 2122, 2125, 2126, 2127, 2129, 2132, 2133, 2135, 2141, 2142, 2143, 2144, 2145, 2146, 2147, 2148, 2150, 2151, 2152, 2153, 2154, 2158, 2159, 2160, 2161, 2162, 2167, 2168, 2169, 2176, 2177, 2178, 2179, 2180, 2184, 2185, 2186, 2187, 2192, 2200, 2203, 2204, 2206, 2209, 2210, 2212, 2213, 2214, 2215, 2216, 2217, 2218, 2219, 2220, 2226, 2227, 2228, 2229, 2230, 2235, 2236, 2237, 2244, 2245, 2246, 2247, 2248, 2249, 2250, 2255, 2258, 2259, 2260, 2261, 2262, 2263, 2264, 2265, 2272, 2273, 2274, 2275, 2278, 2279, 2280, 2286, 2287, 2288, 2289, 2290, 2295, 2296, 2297, 2304, 2305, 2306, 2307, 2308, 2309, 2310, 2311, 2312, 2313, 2314, 2315, 2321, 2322, 2323, 2324, 2325, 2326, 2327, 2328, 2329, 2337, 2345, 2346, 2348, 2349, 2350, 2351, 2352, 2353, 2360, 2361, 2362, 2368, 2369, 2370, 2371, 2372, 2377, 2378, 2379, 2386, 2387, 2388, 2389, 2390, 2391, 2392, 2397, 2400, 2401, 2402, 2403, 2409, 2410, 2411, 2412, 2419, 2420, 2421, 2423, 2424, 2425, 2431, 2432, 2433, 2434, 2435, 2442, 2466, 2467, 2472, 2473, 2474, 2475, 2477, 2478, 2479, 2557, 2558, 2559, 2560, 2561, 2563, 2564, 2565, 2567, 2568, 2569, 2570, 2573, 2574, 2575, 2601, 2619, 2620, 2624, 2625, 2633, 2634, 2635, 2636, 2637, 2639, 2640, 2641, 2642, 2643, 2645, 2646, 2647, 2648, 2649, 2653, 2654, 2655, 2656, 2658, 2659, 2660, 2661, 2669, 2670, 2671, 2672, 2673, 2674, 2675, 2677, 2679, 2689, 2690, 2692, 2696, 2697, 2699, 2700, 2701, 2735, 2740, 2772, 2773, 2786, 2789, 2805, 2806, 2807, 2808, 2809, 2810, 2811, 2837, 2840, 2844, 2845, 2874, 2877, 2879, 2880, 2924, 2927, 2930, 2931, 2955, 2956, 2965, 2968, 2981, 2984, 2991, 2992, 3003, 3004, 3005, 3006, 3007, 3008, 3009, 3010, 3012, 3013, 3014, 3015, 3016, 3017, 3018, 3021, 3028, 3038, 3043, 3061, 3062, 3072, 3073, 3074, 3092, 3094, 3150, 3153, 3162, 3181, 3182, 3183, 3188, 3189, 3219, 3220, 3226, 3231, 3232, 3233, 3234, 3235, 3237, 3243, 3244, 3245, 3251, 3255, 3258, 3259, 3260, 3261, 3263, 3267, 3270, 3271, 3272, 3273, 3275, 3279, 3286, 3287, 3288, 3289, 3290, 3291, 3293, 3297, 3299, 3306, 3307, 3308, 3309, 3310, 3311, 3312, 3313, 3314, 3315, 3316, 3320, 3323, 3329, 3340, 3341, 3342, 3344, 3350, 3356, 3360, 3367, 3368, 3369, 3370, 3371, 3372, 3374, 3378, 3380, 3387, 3390, 3396, 3407, 3408, 3409, 3410, 3412, 3418, 3424, 3430, 3434, 3435, 3439, 3440, 3444, 3451, 3452, 3453, 3454, 3455, 3456, 3458, 3462, 3464, 3471, 3472, 3473, 3474, 3475, 3476, 3479, 3480, 3481, 3482, 3483, 3487, 3490, 3496, 3504, 3505, 3507, 3562, 3563, 3564, 3565, 3567, 3571, 3583, 3584, 3585, 3586, 3587, 3588, 3589, 3590, 3626, 3627, 3634, 3635, 3636, 3658, 3659, 3660, 3675, 3683, 3687, 3688, 3689, 3700, 3717, 3720, 3734, 3737, 3752, 3755, 3778, 3781, 3790, 3793, 3801, 3804, 3820, 3823, 3839, 3859, 3860, 3866, 3867, 3879, 3880, 3885, 3886, 3887, 3897, 3898, 3904, 3905, 3906, 3951, 3952, 3977, 3981, 3982, 3983, 3984, 4026, 4027, 4028, 4033, 4034, 4035, 4036, 4037, 4038, 4045, 4046, 4047, 4054, 4055, 4056, 4057, 4071, 4072, 4073, 4074, 4075, 4076, 4077, 4085, 4086, 4087, 4088, 4089, 4092, 4098, 4109, 4120, 4123, 4157, 4158, 4159, 4172, 4173, 4174, 4214, 4215, 4216, 4217, 4236, 4237, 4238, 4239, 4260, 4261, 4267, 4272, 4273, 4274, 4280, 4282, 4283, 4284, 4285, 4286, 4289, 4290, 4291, 4292, 4293, 4296, 4297, 4299, 4300, 4327, 4328, 4329, 4342, 4343, 4353, 4354, 4355, 4358, 4359, 4360, 4361, 4368, 4369, 4370, 4371, 4407, 4411, 4412, 4433, 4434, 4448, 4449, 4466, 4467, 4468, 4485, 4486, 4487, 4488, 4489, 4491, 4492, 4493, 4499, 4501, 4502, 4503, 4509, 4510, 4511, 4512, 4513, 4543, 4544, 4549, 4551, 4553, 4554, 4555, 4556, 4558, 4559, 4564, 4565, 4568, 4569, 4570, 4571, 4578, 4607, 4608, 4624, 4626, 4627, 4628, 4640, 4641, 4644, 4645, 4646, 4650, 4651, 4653, 4656, 4657, 4658, 4659, 4660, 4661, 4662, 4663, 4666, 4667, 4668, 4669, 4670, 4671, 4672, 4674, 4675, 4676, 4679, 4680, 4681, 4682, 4683, 4685, 4686, 4687, 4689, 4692, 4693, 4694, 4695, 4698, 4701, 4702, 4703, 4708, 4709, 4710, 4711, 4712, 4714, 4715, 4716, 4718, 4722, 4723, 4724, 4725, 4727, 4728, 4729, 4730, 4731, 4732, 4738, 4739, 4744, 4745, 4751, 4757, 4758, 4759, 4760], "excluded_lines": [1804, 1805, 1832, 1833, 2221, 2222, 2281, 2282, 2363, 2364, 2426, 2427, 2741, 2742, 2743, 2816, 2817, 2818, 2854, 2855, 2856, 2903, 2904, 2905, 2939, 2940, 2941, 2969, 2970, 2971, 3772, 3773]}, "": {"executed_lines": [3, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 52, 53, 60, 66, 67, 68, 69, 75, 76, 77, 78, 79, 81, 94, 95, 96, 97, 99, 100, 101, 102, 104, 105, 108, 109, 110, 111, 112, 113, 114, 115, 118, 121, 122, 124, 141, 158, 160, 161, 164, 189, 190, 191, 193, 194, 197, 200, 201, 202, 204, 206, 209, 210, 212, 218, 227, 228, 237, 238, 239, 240, 241, 242, 244, 327, 328, 339, 340, 345, 355, 369, 386, 387, 391, 392, 398, 399, 407, 408, 422, 423, 432, 441, 450, 465, 477, 478, 483, 484, 489, 490, 497, 505, 551, 565, 577, 621, 667, 700, 794, 839, 840, 841, 844, 845, 875, 876, 900, 901, 987, 988, 1032, 1071, 1077, 1169, 1170, 1251, 1271, 1292, 1293, 1365, 1395, 1537, 1651, 1654, 1685, 1693, 1722, 1750, 1813, 1816, 1824, 1835, 1861, 1890, 1891, 1894, 1895, 2036, 2037, 2094, 2095, 2164, 2165, 2232, 2233, 2292, 2293, 2374, 2375, 2437, 2464, 2481, 2488, 2511, 2604, 2682, 2745, 3165, 3166, 3200, 3201, 3638, 3639, 3696, 3848, 3849, 3852, 3889, 3890, 3908, 3909, 3986, 3987, 3990, 3991, 4030, 4031, 4059, 4079, 4100, 4145, 4150, 4161, 4176, 4177, 4219, 4220, 4302, 4303, 4373, 4374, 4470, 4515, 4532, 4573, 4648, 4720], "summary": {"covered_lines": 226, "num_statements": 236, "percent_covered": 95.76271186440678, "percent_covered_display": "96", "missing_lines": 10, "excluded_lines": 0}, "missing_lines": [174, 175, 176, 177, 180, 182, 183, 185, 186, 203], "excluded_lines": []}}}, "src/seedpass/core/menu_handler.py": {"executed_lines": [1, 3, 4, 5, 7, 9, 10, 11, 12, 13, 14, 16, 20, 21, 23, 24, 26, 27, 29, 30, 31, 32, 33, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 52, 53, 58, 59, 62, 63, 64, 73, 74, 75, 82, 83, 84, 85, 86, 89, 92, 93, 94, 97, 98, 99, 100, 102, 103, 105, 106, 107, 108, 115, 116, 117, 118, 119, 122, 123, 124, 125, 127, 131, 133, 134, 135, 136, 137, 141, 142, 143, 144, 151, 152, 153, 154, 177, 178, 179, 180, 181, 186, 187, 188, 189, 190, 193, 197, 200, 201, 202, 205, 207, 208, 209], "summary": {"covered_lines": 101, "num_statements": 127, "percent_covered": 79.5275590551181, "percent_covered_display": "80", "missing_lines": 26, "excluded_lines": 8}, "missing_lines": [51, 55, 56, 66, 67, 88, 95, 96, 128, 129, 138, 139, 155, 156, 157, 158, 163, 164, 165, 166, 167, 170, 174, 203, 204, 206], "excluded_lines": [16, 17, 98, 99, 100, 210, 211, 212], "functions": {"MenuHandler.__init__": {"executed_lines": [24], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "MenuHandler.handle_list_entries": {"executed_lines": [29, 30, 31, 32, 33, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 52, 53, 58, 59, 62, 63, 64, 73, 74, 75, 82, 83, 84, 85, 86, 89, 92, 93, 94, 97, 98, 99, 100], "summary": {"covered_lines": 36, "num_statements": 44, "percent_covered": 81.81818181818181, "percent_covered_display": "82", "missing_lines": 8, "excluded_lines": 3}, "missing_lines": [51, 55, 56, 66, 67, 88, 95, 96], "excluded_lines": [98, 99, 100]}, "MenuHandler.handle_display_totp_codes": {"executed_lines": [105, 106, 107, 108, 115, 116, 117, 118, 119, 122, 123, 124, 125, 127, 131, 133, 134, 135, 136, 137, 141, 142, 143, 144, 151, 152, 153, 154, 177, 178, 179, 180, 181, 186, 187, 188, 189, 190, 193, 197, 200, 201, 202, 205, 207, 208, 209], "summary": {"covered_lines": 47, "num_statements": 65, "percent_covered": 72.3076923076923, "percent_covered_display": "72", "missing_lines": 18, "excluded_lines": 3}, "missing_lines": [128, 129, 138, 139, 155, 156, 157, 158, 163, 164, 165, 166, 167, 170, 174, 203, 204, 206], "excluded_lines": [210, 211, 212]}, "": {"executed_lines": [1, 3, 4, 5, 7, 9, 10, 11, 12, 13, 14, 16, 20, 21, 23, 26, 27, 102, 103], "summary": {"covered_lines": 17, "num_statements": 17, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2}, "missing_lines": [], "excluded_lines": [16, 17]}}, "classes": {"MenuHandler": {"executed_lines": [24, 29, 30, 31, 32, 33, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 52, 53, 58, 59, 62, 63, 64, 73, 74, 75, 82, 83, 84, 85, 86, 89, 92, 93, 94, 97, 98, 99, 100, 105, 106, 107, 108, 115, 116, 117, 118, 119, 122, 123, 124, 125, 127, 131, 133, 134, 135, 136, 137, 141, 142, 143, 144, 151, 152, 153, 154, 177, 178, 179, 180, 181, 186, 187, 188, 189, 190, 193, 197, 200, 201, 202, 205, 207, 208, 209], "summary": {"covered_lines": 84, "num_statements": 110, "percent_covered": 76.36363636363636, "percent_covered_display": "76", "missing_lines": 26, "excluded_lines": 6}, "missing_lines": [51, 55, 56, 66, 67, 88, 95, 96, 128, 129, 138, 139, 155, 156, 157, 158, 163, 164, 165, 166, 167, 170, 174, 203, 204, 206], "excluded_lines": [98, 99, 100, 210, 211, 212]}, "": {"executed_lines": [1, 3, 4, 5, 7, 9, 10, 11, 12, 13, 14, 16, 20, 21, 23, 26, 27, 102, 103], "summary": {"covered_lines": 17, "num_statements": 17, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2}, "missing_lines": [], "excluded_lines": [16, 17]}}}, "src/seedpass/core/migrations.py": {"executed_lines": [1, 3, 5, 7, 10, 15, 16, 17, 19, 22, 23, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 46, 47, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 61, 62, 64, 65, 66, 67, 68, 71, 74, 76, 77, 80, 81, 82, 84, 85, 87], "summary": {"covered_lines": 56, "num_statements": 58, "percent_covered": 96.55172413793103, "percent_covered_display": "97", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [78, 83], "excluded_lines": [], "functions": {"migration": {"executed_lines": [15, 19], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "migration.decorator": {"executed_lines": [16, 17], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "_v0_to_v1": {"executed_lines": [25, 26], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "_v1_to_v2": {"executed_lines": [31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "_v2_to_v3": {"executed_lines": [49, 50, 51, 52, 53, 54, 55, 56, 57, 58], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "_v3_to_v4": {"executed_lines": [64, 65, 66, 67, 68], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "apply_migrations": {"executed_lines": [76, 77, 80, 81, 82, 84, 85, 87], "summary": {"covered_lines": 8, "num_statements": 10, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [78, 83], "excluded_lines": []}, "": {"executed_lines": [1, 3, 5, 7, 10, 22, 23, 29, 30, 46, 47, 61, 62, 71, 74], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 3, 5, 7, 10, 15, 16, 17, 19, 22, 23, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 46, 47, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 61, 62, 64, 65, 66, 67, 68, 71, 74, 76, 77, 80, 81, 82, 84, 85, 87], "summary": {"covered_lines": 56, "num_statements": 58, "percent_covered": 96.55172413793103, "percent_covered_display": "97", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [78, 83], "excluded_lines": []}}}, "src/seedpass/core/password_generation.py": {"executed_lines": [3, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 39, 40, 47, 49, 55, 58, 61, 62, 63, 76, 77, 78, 79, 80, 81, 82, 83, 86, 87, 95, 110, 111, 112, 113, 114, 116, 117, 119, 123, 129, 131, 132, 134, 141, 142, 144, 145, 146, 148, 150, 151, 152, 154, 163, 164, 165, 166, 167, 168, 169, 170, 172, 175, 176, 177, 178, 179, 181, 202, 204, 205, 208, 211, 219, 221, 222, 224, 225, 226, 227, 229, 230, 231, 232, 233, 234, 236, 238, 239, 240, 243, 246, 247, 248, 249, 250, 251, 252, 259, 260, 263, 264, 268, 270, 271, 272, 273, 275, 291, 292, 293, 294, 295, 297, 298, 299, 300, 301, 303, 306, 307, 308, 309, 311, 316, 317, 318, 319, 322, 323, 325, 327, 328, 329, 332, 333, 334, 335, 336, 337, 339, 340, 341, 342, 343, 344, 346, 347, 348, 349, 350, 351, 353, 354, 355, 356, 357, 358, 361, 362, 363, 364, 366, 367, 369, 370, 371, 372, 376, 377, 378, 379, 380, 381, 382, 383, 384, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 404, 405, 406, 411, 414, 415, 420, 421, 422, 423, 424, 428, 436, 438, 441, 444, 445, 446, 448, 449, 455, 456, 461, 464, 466, 469, 480, 481, 482, 490, 497, 498, 499, 500, 501, 502, 504, 505, 507, 509, 510, 512, 513, 514, 516, 517, 518, 519, 520, 521, 522, 524, 525, 526, 527, 528, 529, 530, 531, 532, 534, 535, 536, 538, 539, 542, 543, 544, 545, 548, 550, 551, 552, 554, 555, 556, 557, 558, 559, 571], "summary": {"covered_lines": 265, "num_statements": 277, "percent_covered": 95.66787003610108, "percent_covered_display": "96", "missing_lines": 12, "excluded_lines": 13}, "missing_lines": [124, 125, 126, 127, 212, 215, 368, 385, 430, 431, 432, 433], "excluded_lines": [39, 40, 41, 42, 43, 45, 516, 517, 518, 519, 520, 521, 522], "functions": {"PasswordGenerator.__init__": {"executed_lines": [110, 111, 112, 113, 114, 116, 117, 119, 123], "summary": {"covered_lines": 9, "num_statements": 13, "percent_covered": 69.23076923076923, "percent_covered_display": "69", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [124, 125, 126, 127], "excluded_lines": []}, "PasswordGenerator._derive_password_entropy": {"executed_lines": [131, 132, 134, 141, 142, 144, 145, 146], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "PasswordGenerator._map_entropy_to_chars": {"executed_lines": [150, 151, 152], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "PasswordGenerator._fisher_yates_hmac": {"executed_lines": [163, 164, 165, 166, 167, 168, 169, 170], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "PasswordGenerator._shuffle_deterministically": {"executed_lines": [175, 176, 177, 178, 179], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "PasswordGenerator.generate_password": {"executed_lines": [202, 204, 205, 208, 211, 219, 221, 222, 224, 225, 226, 227, 229, 230, 231, 232, 233, 234, 236, 238, 239, 240, 243, 246, 247, 248, 249, 250, 251, 252, 259, 260, 263, 264, 268, 270, 271, 272, 273], "summary": {"covered_lines": 39, "num_statements": 41, "percent_covered": 95.1219512195122, "percent_covered_display": "95", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [212, 215], "excluded_lines": []}, "PasswordGenerator._enforce_complexity": {"executed_lines": [291, 292, 293, 294, 295, 297, 298, 299, 300, 301, 303, 306, 307, 308, 309, 311, 316, 317, 318, 319, 322, 323, 325, 332, 333, 334, 335, 336, 337, 339, 340, 341, 342, 343, 344, 346, 347, 348, 349, 350, 351, 353, 354, 355, 356, 357, 358, 361, 362, 363, 364, 366, 367, 369, 370, 371, 372, 376, 377, 378, 379, 380, 381, 382, 383, 384, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 404, 405, 406, 411, 414, 415, 420, 421, 422, 423, 424, 428], "summary": {"covered_lines": 92, "num_statements": 98, "percent_covered": 93.87755102040816, "percent_covered_display": "94", "missing_lines": 6, "excluded_lines": 0}, "missing_lines": [368, 385, 430, 431, 432, 433], "excluded_lines": []}, "PasswordGenerator._enforce_complexity.get_dk_value": {"executed_lines": [327, 328, 329], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "derive_ssh_key": {"executed_lines": [438], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "derive_ssh_key_pair": {"executed_lines": [444, 445, 446, 448, 449, 455, 456, 461], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "derive_seed_phrase": {"executed_lines": [466], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "derive_pgp_key": {"executed_lines": [480, 481, 482, 490, 497, 498, 499, 500, 501, 502, 504, 505, 507, 509, 510, 512, 516, 524, 525, 526, 527, 528, 529, 530, 531, 532, 534, 535, 536, 538, 539, 542, 543, 544, 545, 548, 550, 551, 552, 554, 555, 556, 557, 558, 559, 571], "summary": {"covered_lines": 44, "num_statements": 44, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1}, "missing_lines": [], "excluded_lines": [516]}, "derive_pgp_key.DRNG.__init__": {"executed_lines": [513, 514], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "derive_pgp_key.DRNG.__call__": {"executed_lines": [517, 518, 519, 520, 521, 522], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 6}, "missing_lines": [], "excluded_lines": [517, 518, 519, 520, 521, 522]}, "": {"executed_lines": [3, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 39, 40, 47, 49, 55, 58, 61, 62, 63, 76, 77, 78, 79, 80, 81, 82, 83, 86, 87, 95, 129, 148, 154, 172, 181, 275, 436, 441, 464, 469], "summary": {"covered_lines": 42, "num_statements": 42, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 6}, "missing_lines": [], "excluded_lines": [39, 40, 41, 42, 43, 45]}}, "classes": {"PasswordPolicy": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "PasswordGenerator": {"executed_lines": [110, 111, 112, 113, 114, 116, 117, 119, 123, 131, 132, 134, 141, 142, 144, 145, 146, 150, 151, 152, 163, 164, 165, 166, 167, 168, 169, 170, 175, 176, 177, 178, 179, 202, 204, 205, 208, 211, 219, 221, 222, 224, 225, 226, 227, 229, 230, 231, 232, 233, 234, 236, 238, 239, 240, 243, 246, 247, 248, 249, 250, 251, 252, 259, 260, 263, 264, 268, 270, 271, 272, 273, 291, 292, 293, 294, 295, 297, 298, 299, 300, 301, 303, 306, 307, 308, 309, 311, 316, 317, 318, 319, 322, 323, 325, 327, 328, 329, 332, 333, 334, 335, 336, 337, 339, 340, 341, 342, 343, 344, 346, 347, 348, 349, 350, 351, 353, 354, 355, 356, 357, 358, 361, 362, 363, 364, 366, 367, 369, 370, 371, 372, 376, 377, 378, 379, 380, 381, 382, 383, 384, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 404, 405, 406, 411, 414, 415, 420, 421, 422, 423, 424, 428], "summary": {"covered_lines": 167, "num_statements": 179, "percent_covered": 93.29608938547486, "percent_covered_display": "93", "missing_lines": 12, "excluded_lines": 0}, "missing_lines": [124, 125, 126, 127, 212, 215, 368, 385, 430, 431, 432, 433], "excluded_lines": []}, "derive_pgp_key.DRNG": {"executed_lines": [513, 514, 517, 518, 519, 520, 521, 522], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 6}, "missing_lines": [], "excluded_lines": [517, 518, 519, 520, 521, 522]}, "": {"executed_lines": [3, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 39, 40, 47, 49, 55, 58, 61, 62, 63, 76, 77, 78, 79, 80, 81, 82, 83, 86, 87, 95, 129, 148, 154, 172, 181, 275, 436, 438, 441, 444, 445, 446, 448, 449, 455, 456, 461, 464, 466, 469, 480, 481, 482, 490, 497, 498, 499, 500, 501, 502, 504, 505, 507, 509, 510, 512, 516, 524, 525, 526, 527, 528, 529, 530, 531, 532, 534, 535, 536, 538, 539, 542, 543, 544, 545, 548, 550, 551, 552, 554, 555, 556, 557, 558, 559, 571], "summary": {"covered_lines": 96, "num_statements": 96, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 7}, "missing_lines": [], "excluded_lines": [39, 40, 41, 42, 43, 45, 516]}}}, "src/seedpass/core/portable_backup.py": {"executed_lines": [2, 4, 6, 7, 8, 9, 10, 11, 12, 13, 15, 16, 17, 18, 22, 23, 24, 26, 28, 29, 32, 33, 35, 36, 39, 42, 45, 62, 63, 64, 65, 66, 68, 69, 71, 72, 77, 78, 79, 80, 81, 83, 84, 85, 87, 89, 99, 100, 101, 102, 104, 121, 124, 132, 133, 136, 137, 140, 141, 143, 144, 149, 150, 151, 152, 153, 154, 158, 160, 161, 162, 164, 165], "summary": {"covered_lines": 71, "num_statements": 84, "percent_covered": 84.52380952380952, "percent_covered_display": "85", "missing_lines": 13, "excluded_lines": 0}, "missing_lines": [105, 106, 107, 108, 109, 110, 111, 117, 118, 119, 134, 138, 156], "excluded_lines": [], "functions": {"_derive_export_key": {"executed_lines": [42], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "export_backup": {"executed_lines": [62, 63, 64, 65, 66, 68, 69, 71, 72, 77, 78, 79, 80, 81, 83, 84, 85, 87, 89, 99, 100, 101, 102, 104, 121], "summary": {"covered_lines": 25, "num_statements": 35, "percent_covered": 71.42857142857143, "percent_covered_display": "71", "missing_lines": 10, "excluded_lines": 0}, "missing_lines": [105, 106, 107, 108, 109, 110, 111, 117, 118, 119], "excluded_lines": []}, "import_backup": {"executed_lines": [132, 133, 136, 137, 140, 141, 143, 144, 149, 150, 151, 152, 153, 154, 158, 160, 161, 162, 164, 165], "summary": {"covered_lines": 20, "num_statements": 23, "percent_covered": 86.95652173913044, "percent_covered_display": "87", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [134, 138, 156], "excluded_lines": []}, "": {"executed_lines": [2, 4, 6, 7, 8, 9, 10, 11, 12, 13, 15, 16, 17, 18, 22, 23, 24, 26, 28, 29, 32, 33, 35, 36, 39, 45, 124], "summary": {"covered_lines": 25, "num_statements": 25, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"PortableMode": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [2, 4, 6, 7, 8, 9, 10, 11, 12, 13, 15, 16, 17, 18, 22, 23, 24, 26, 28, 29, 32, 33, 35, 36, 39, 42, 45, 62, 63, 64, 65, 66, 68, 69, 71, 72, 77, 78, 79, 80, 81, 83, 84, 85, 87, 89, 99, 100, 101, 102, 104, 121, 124, 132, 133, 136, 137, 140, 141, 143, 144, 149, 150, 151, 152, 153, 154, 158, 160, 161, 162, 164, 165], "summary": {"covered_lines": 71, "num_statements": 84, "percent_covered": 84.52380952380952, "percent_covered_display": "85", "missing_lines": 13, "excluded_lines": 0}, "missing_lines": [105, 106, 107, 108, 109, 110, 111, 117, 118, 119, 134, 138, 156], "excluded_lines": []}}}, "src/seedpass/core/profile_service.py": {"executed_lines": [1, 3, 4, 6, 8, 10, 12, 17, 18, 20, 21, 23, 25, 26, 27, 28, 29, 30, 35, 37, 38, 42, 43, 44, 45, 46, 48, 49, 58, 59, 63, 68, 69, 70, 71, 73, 74, 82, 95, 105], "summary": {"covered_lines": 38, "num_statements": 51, "percent_covered": 74.50980392156863, "percent_covered_display": "75", "missing_lines": 13, "excluded_lines": 7}, "missing_lines": [39, 40, 50, 56, 66, 85, 87, 88, 89, 98, 99, 100, 103], "excluded_lines": [12, 13, 14, 106, 107, 108, 109], "functions": {"ProfileService.__init__": {"executed_lines": [21], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ProfileService.handle_switch_fingerprint": {"executed_lines": [25, 26, 27, 28, 29, 30, 35, 37, 38, 42, 43, 44, 45, 46, 48, 49, 58, 59, 63, 68, 69, 70, 71, 73, 74, 82, 95, 105], "summary": {"covered_lines": 28, "num_statements": 41, "percent_covered": 68.29268292682927, "percent_covered_display": "68", "missing_lines": 13, "excluded_lines": 4}, "missing_lines": [39, 40, 50, 56, 66, 85, 87, 88, 89, 98, 99, 100, 103], "excluded_lines": [106, 107, 108, 109]}, "": {"executed_lines": [1, 3, 4, 6, 8, 10, 12, 17, 18, 20, 23], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 3}, "missing_lines": [], "excluded_lines": [12, 13, 14]}}, "classes": {"ProfileService": {"executed_lines": [21, 25, 26, 27, 28, 29, 30, 35, 37, 38, 42, 43, 44, 45, 46, 48, 49, 58, 59, 63, 68, 69, 70, 71, 73, 74, 82, 95, 105], "summary": {"covered_lines": 29, "num_statements": 42, "percent_covered": 69.04761904761905, "percent_covered_display": "69", "missing_lines": 13, "excluded_lines": 4}, "missing_lines": [39, 40, 50, 56, 66, 85, 87, 88, 89, 98, 99, 100, 103], "excluded_lines": [106, 107, 108, 109]}, "": {"executed_lines": [1, 3, 4, 6, 8, 10, 12, 17, 18, 20, 23], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 3}, "missing_lines": [], "excluded_lines": [12, 13, 14]}}}, "src/seedpass/core/pubsub.py": {"executed_lines": [1, 2, 5, 6, 8, 9, 11, 13, 15, 17, 18, 20, 22, 23, 27], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"PubSub.__init__": {"executed_lines": [9], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "PubSub.subscribe": {"executed_lines": [13], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "PubSub.unsubscribe": {"executed_lines": [17, 18], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "PubSub.publish": {"executed_lines": [22, 23], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 5, 6, 8, 11, 15, 20, 27], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"PubSub": {"executed_lines": [9, 13, 17, 18, 22, 23], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 5, 6, 8, 11, 15, 20, 27], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/seedpass/core/seedqr.py": {"executed_lines": [1, 3, 5, 6, 9, 11, 12, 13, 14], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"encode_seedqr": {"executed_lines": [11, 12, 13, 14], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 5, 6, 9], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 3, 5, 6, 9, 11, 12, 13, 14], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/seedpass/core/state_manager.py": {"executed_lines": [1, 3, 4, 5, 6, 8, 9, 12, 13, 15, 17, 18, 19, 21, 22, 23, 31, 32, 33, 34, 43, 44, 47, 48, 49, 50, 51, 52, 53, 55, 56, 57, 58, 59, 60, 61, 63, 64, 65, 67, 68, 69, 70, 73, 74, 76, 77, 78, 79, 81, 82, 83, 85, 86, 87, 88, 90, 92, 93, 94], "summary": {"covered_lines": 59, "num_statements": 65, "percent_covered": 90.76923076923077, "percent_covered_display": "91", "missing_lines": 6, "excluded_lines": 0}, "missing_lines": [35, 45, 46, 80, 89, 91], "excluded_lines": [], "functions": {"StateManager.__init__": {"executed_lines": [18, 19], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "StateManager._load": {"executed_lines": [22, 23, 31, 32, 33, 34, 43, 44, 47, 48, 49, 50, 51, 52, 53], "summary": {"covered_lines": 15, "num_statements": 18, "percent_covered": 83.33333333333333, "percent_covered_display": "83", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [35, 45, 46], "excluded_lines": []}, "StateManager._save": {"executed_lines": [56, 57, 58, 59, 60, 61], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "StateManager.state": {"executed_lines": [65], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "StateManager.update_state": {"executed_lines": [68, 69, 70], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "StateManager.list_relays": {"executed_lines": [74], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "StateManager.add_relay": {"executed_lines": [77, 78, 79, 81, 82, 83], "summary": {"covered_lines": 6, "num_statements": 7, "percent_covered": 85.71428571428571, "percent_covered_display": "86", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [80], "excluded_lines": []}, "StateManager.remove_relay": {"executed_lines": [86, 87, 88, 90, 92, 93, 94], "summary": {"covered_lines": 7, "num_statements": 9, "percent_covered": 77.77777777777777, "percent_covered_display": "78", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [89, 91], "excluded_lines": []}, "": {"executed_lines": [1, 3, 4, 5, 6, 8, 9, 12, 13, 15, 17, 21, 55, 63, 64, 67, 73, 76, 85], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"StateManager": {"executed_lines": [18, 19, 22, 23, 31, 32, 33, 34, 43, 44, 47, 48, 49, 50, 51, 52, 53, 56, 57, 58, 59, 60, 61, 65, 68, 69, 70, 74, 77, 78, 79, 81, 82, 83, 86, 87, 88, 90, 92, 93, 94], "summary": {"covered_lines": 41, "num_statements": 47, "percent_covered": 87.23404255319149, "percent_covered_display": "87", "missing_lines": 6, "excluded_lines": 0}, "missing_lines": [35, 45, 46, 80, 89, 91], "excluded_lines": []}, "": {"executed_lines": [1, 3, 4, 5, 6, 8, 9, 12, 13, 15, 17, 21, 55, 63, 64, 67, 73, 76, 85], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/seedpass/core/stats_manager.py": {"executed_lines": [1, 3, 6, 7, 9, 10, 12, 18, 20], "summary": {"covered_lines": 7, "num_statements": 10, "percent_covered": 70.0, "percent_covered_display": "70", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [14, 15, 16], "excluded_lines": [], "functions": {"StatsManager.__init__": {"executed_lines": [10], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "StatsManager.display_stats_once": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [14, 15, 16], "excluded_lines": []}, "StatsManager.reset": {"executed_lines": [20], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 6, 7, 9, 12, 18], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"StatsManager": {"executed_lines": [10, 20], "summary": {"covered_lines": 2, "num_statements": 5, "percent_covered": 40.0, "percent_covered_display": "40", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [14, 15, 16], "excluded_lines": []}, "": {"executed_lines": [1, 3, 6, 7, 9, 12, 18], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/seedpass/core/totp.py": {"executed_lines": [1, 3, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 20, 22, 25, 26, 28, 29, 31, 33, 34, 38, 39, 40, 41, 42, 44, 45, 47, 48, 50, 51, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 65, 66, 70, 71, 73, 74, 76, 77, 78, 80, 81, 83, 84, 85, 86, 94, 95, 97, 98, 100, 101, 102, 103], "summary": {"covered_lines": 64, "num_statements": 71, "percent_covered": 90.14084507042253, "percent_covered_display": "90", "missing_lines": 7, "excluded_lines": 0}, "missing_lines": [87, 88, 89, 90, 91, 92, 93], "excluded_lines": [], "functions": {"random_totp_secret": {"executed_lines": [22], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "TotpManager.derive_secret": {"executed_lines": [31], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "TotpManager.current_code": {"executed_lines": [38, 39, 40, 41, 42], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "TotpManager.current_code_from_secret": {"executed_lines": [47, 48], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "TotpManager.parse_otpauth": {"executed_lines": [53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "TotpManager.make_otpauth_uri": {"executed_lines": [70, 71], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "TotpManager.time_remaining": {"executed_lines": [76, 77, 78], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "TotpManager.print_progress_bar": {"executed_lines": [83, 84, 85, 86, 94, 95], "summary": {"covered_lines": 6, "num_statements": 13, "percent_covered": 46.15384615384615, "percent_covered_display": "46", "missing_lines": 7, "excluded_lines": 0}, "missing_lines": [87, 88, 89, 90, 91, 92, 93], "excluded_lines": []}, "TotpManager.print_qr_code": {"executed_lines": [100, 101, 102, 103], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 20, 25, 26, 28, 29, 33, 34, 44, 45, 50, 51, 65, 66, 73, 74, 80, 81, 97, 98], "summary": {"covered_lines": 29, "num_statements": 29, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"TotpManager": {"executed_lines": [31, 38, 39, 40, 41, 42, 47, 48, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 70, 71, 76, 77, 78, 83, 84, 85, 86, 94, 95, 100, 101, 102, 103], "summary": {"covered_lines": 34, "num_statements": 41, "percent_covered": 82.92682926829268, "percent_covered_display": "83", "missing_lines": 7, "excluded_lines": 0}, "missing_lines": [87, 88, 89, 90, 91, 92, 93], "excluded_lines": []}, "": {"executed_lines": [1, 3, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 20, 22, 25, 26, 28, 29, 33, 34, 44, 45, 50, 51, 65, 66, 73, 74, 80, 81, 97, 98], "summary": {"covered_lines": 30, "num_statements": 30, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/seedpass/core/vault.py": {"executed_lines": [1, 3, 4, 5, 6, 8, 9, 11, 17, 18, 21, 22, 24, 25, 27, 32, 33, 34, 35, 36, 38, 40, 42, 43, 48, 63, 64, 65, 66, 67, 68, 69, 74, 75, 77, 80, 81, 82, 83, 84, 86, 87, 88, 93, 94, 95, 98, 99, 102, 103, 110, 111, 114, 117, 118, 124, 127, 128, 129, 130, 136, 142, 143, 144, 145, 146, 147, 152, 155, 156, 157, 160, 161, 164, 165, 168, 169, 172, 173, 174, 175, 178, 179, 180, 181, 182, 183, 186, 187, 188, 189, 191, 192, 194, 196, 197, 198, 201, 203, 204, 205, 206, 209, 232, 235, 236, 237, 239, 241, 245, 247, 249, 264, 267, 270, 271, 272, 275, 277, 279, 281], "summary": {"covered_lines": 119, "num_statements": 140, "percent_covered": 85.0, "percent_covered_display": "85", "missing_lines": 21, "excluded_lines": 0}, "missing_lines": [96, 97, 100, 149, 163, 210, 211, 212, 213, 216, 217, 218, 219, 220, 221, 224, 225, 226, 227, 229, 230], "excluded_lines": [], "functions": {"Vault.__init__": {"executed_lines": [32, 33, 34, 35, 36], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Vault.set_encryption_manager": {"executed_lines": [40], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Vault._hkdf_kdf": {"executed_lines": [43], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Vault.load_index": {"executed_lines": [63, 64, 65, 66, 67, 68, 69, 74, 75, 77, 80, 81, 82, 83, 84, 86, 87, 88, 93, 94, 95, 98, 99, 102, 103, 110, 111, 114, 117, 118, 124, 127, 128, 129, 130, 136, 142, 143, 144, 145, 146, 147, 152, 155, 156, 157, 160, 161, 164, 165, 168, 169, 172, 173, 174, 175, 178, 179, 180, 181, 182, 183, 186, 187, 188, 189, 191, 192, 194, 196, 197, 198, 201, 203, 204, 205, 206, 209, 232, 235, 236, 237], "summary": {"covered_lines": 82, "num_statements": 103, "percent_covered": 79.6116504854369, "percent_covered_display": "80", "missing_lines": 21, "excluded_lines": 0}, "missing_lines": [96, 97, 100, 149, 163, 210, 211, 212, 213, 216, 217, 218, 219, 220, 221, 224, 225, 226, 227, 229, 230], "excluded_lines": []}, "Vault.save_index": {"executed_lines": [241], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Vault.get_encrypted_index": {"executed_lines": [247], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Vault.decrypt_and_save_index_from_nostr": {"executed_lines": [264, 267, 270, 271, 272], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Vault.load_config": {"executed_lines": [277], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Vault.save_config": {"executed_lines": [281], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 4, 5, 6, 8, 9, 11, 17, 18, 21, 22, 24, 25, 27, 38, 42, 48, 239, 245, 249, 275, 279], "summary": {"covered_lines": 21, "num_statements": 21, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Vault": {"executed_lines": [32, 33, 34, 35, 36, 40, 43, 63, 64, 65, 66, 67, 68, 69, 74, 75, 77, 80, 81, 82, 83, 84, 86, 87, 88, 93, 94, 95, 98, 99, 102, 103, 110, 111, 114, 117, 118, 124, 127, 128, 129, 130, 136, 142, 143, 144, 145, 146, 147, 152, 155, 156, 157, 160, 161, 164, 165, 168, 169, 172, 173, 174, 175, 178, 179, 180, 181, 182, 183, 186, 187, 188, 189, 191, 192, 194, 196, 197, 198, 201, 203, 204, 205, 206, 209, 232, 235, 236, 237, 241, 247, 264, 267, 270, 271, 272, 277, 281], "summary": {"covered_lines": 98, "num_statements": 119, "percent_covered": 82.3529411764706, "percent_covered_display": "82", "missing_lines": 21, "excluded_lines": 0}, "missing_lines": [96, 97, 100, 149, 163, 210, 211, 212, 213, 216, 217, 218, 219, 220, 221, 224, 225, 226, 227, 229, 230], "excluded_lines": []}, "": {"executed_lines": [1, 3, 4, 5, 6, 8, 9, 11, 17, 18, 21, 22, 24, 25, 27, 38, 42, 48, 239, 245, 249, 275, 279], "summary": {"covered_lines": 21, "num_statements": 21, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/seedpass/errors.py": {"executed_lines": [1, 3, 6, 7, 9, 10, 13], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"VaultLockedError.__init__": {"executed_lines": [10], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 6, 7, 9, 13], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"VaultLockedError": {"executed_lines": [10], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 6, 7, 9, 13], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/seedpass_gui/__init__.py": {"executed_lines": [1, 3, 6, 11], "summary": {"covered_lines": 3, "num_statements": 4, "percent_covered": 75.0, "percent_covered_display": "75", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [8], "excluded_lines": [], "functions": {"main": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [8], "excluded_lines": []}, "": {"executed_lines": [1, 3, 6, 11], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 3, 6, 11], "summary": {"covered_lines": 3, "num_statements": 4, "percent_covered": 75.0, "percent_covered_display": "75", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [8], "excluded_lines": []}}}, "src/seedpass_gui/__main__.py": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [1, 3, 4], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [1, 3, 4], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [1, 3, 4], "excluded_lines": []}}}, "src/seedpass_gui/app.py": {"executed_lines": [1, 3, 4, 6, 7, 8, 9, 11, 12, 13, 15, 21, 24, 25, 27, 33, 36, 37, 38, 40, 41, 42, 46, 47, 48, 49, 50, 51, 53, 54, 55, 56, 60, 66, 67, 68, 71, 72, 74, 81, 84, 85, 86, 87, 88, 89, 90, 91, 93, 94, 100, 101, 102, 103, 104, 105, 107, 108, 109, 110, 111, 112, 113, 115, 117, 118, 119, 120, 121, 123, 125, 126, 127, 150, 154, 161, 165, 169, 173, 176, 177, 179, 182, 183, 185, 186, 187, 189, 194, 195, 196, 197, 198, 199, 203, 204, 206, 207, 208, 209, 210, 212, 213, 217, 218, 219, 220, 223, 224, 226, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 261, 262, 263, 264, 265, 266, 267, 268, 270, 271, 272, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 289, 290, 292, 293, 294, 295, 296, 297, 298, 300, 301, 302, 303, 304, 305, 306, 307, 308, 310, 312, 320, 321, 323, 324, 325, 326, 327, 329, 331, 334, 335, 337, 350, 367, 368, 370, 388, 393, 404, 408, 409, 411, 434, 439, 451, 464, 469, 470, 484], "summary": {"covered_lines": 203, "num_statements": 303, "percent_covered": 66.996699669967, "percent_covered_display": "67", "missing_lines": 100, "excluded_lines": 24}, "missing_lines": [128, 129, 130, 131, 132, 133, 134, 135, 136, 138, 139, 151, 152, 155, 156, 157, 158, 159, 162, 163, 166, 167, 170, 171, 190, 191, 192, 200, 338, 339, 340, 341, 344, 345, 346, 347, 348, 351, 352, 353, 354, 355, 364, 371, 372, 373, 375, 380, 381, 382, 384, 385, 386, 389, 390, 391, 394, 395, 398, 399, 400, 401, 402, 405, 412, 413, 414, 416, 417, 418, 419, 420, 422, 423, 424, 425, 426, 427, 428, 429, 430, 432, 435, 436, 437, 440, 441, 442, 443, 444, 448, 449, 452, 453, 454, 455, 456, 457, 461, 466], "excluded_lines": [57, 58, 59, 445, 446, 447, 458, 459, 460, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 484, 485, 486], "functions": {"LockScreenWindow.__init__": {"executed_lines": [33, 36, 37, 38, 40, 41, 42, 46, 47, 48, 49, 50, 51], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "LockScreenWindow.handle_unlock": {"executed_lines": [54, 55, 56, 60, 66, 67, 68], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 3}, "missing_lines": [], "excluded_lines": [57, 58, 59]}, "MainWindow.__init__": {"executed_lines": [81, 84, 85, 86, 87, 88, 89, 90, 91, 93, 94, 100, 101, 102, 103, 104, 105, 107, 108, 109, 110, 111, 112, 113, 115, 117, 118, 119, 120, 121, 123], "summary": {"covered_lines": 31, "num_statements": 31, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "MainWindow.refresh_entries": {"executed_lines": [126, 127], "summary": {"covered_lines": 2, "num_statements": 13, "percent_covered": 15.384615384615385, "percent_covered_display": "15", "missing_lines": 11, "excluded_lines": 0}, "missing_lines": [128, 129, 130, 131, 132, 133, 134, 135, 136, 138, 139], "excluded_lines": []}, "MainWindow.add_entry": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [151, 152], "excluded_lines": []}, "MainWindow.edit_entry": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 0}, "missing_lines": [155, 156, 157, 158, 159], "excluded_lines": []}, "MainWindow.search_entries": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [162, 163], "excluded_lines": []}, "MainWindow.manage_relays": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [166, 167], "excluded_lines": []}, "MainWindow.show_totp_codes": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [170, 171], "excluded_lines": []}, "MainWindow.start_vault_sync": {"executed_lines": [176, 179], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "MainWindow.start_vault_sync._runner": {"executed_lines": [177], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "MainWindow.sync_started": {"executed_lines": [183], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "MainWindow.sync_finished": {"executed_lines": [186, 187], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "MainWindow.vault_locked": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [190, 191, 192], "excluded_lines": []}, "MainWindow.cleanup": {"executed_lines": [195, 196, 197, 198, 199], "summary": {"covered_lines": 5, "num_statements": 6, "percent_covered": 83.33333333333333, "percent_covered_display": "83", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [200], "excluded_lines": []}, "EntryDialog.__init__": {"executed_lines": [207, 208, 209, 210, 212, 213, 217, 218, 219, 220, 223, 224, 226, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259], "summary": {"covered_lines": 42, "num_statements": 42, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "EntryDialog.save": {"executed_lines": [262, 263, 264, 265, 266, 267, 268, 270, 271, 272, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 289, 290, 292, 293, 294, 295, 296, 297, 298, 300, 301, 302, 303, 304, 305, 306, 307, 308, 310, 312, 320, 321, 323, 324, 325, 326, 327, 329, 331], "summary": {"covered_lines": 51, "num_statements": 51, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "SearchDialog.__init__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 9, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 9, "excluded_lines": 0}, "missing_lines": [338, 339, 340, 341, 344, 345, 346, 347, 348], "excluded_lines": []}, "SearchDialog.do_search": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 6, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 6, "excluded_lines": 0}, "missing_lines": [351, 352, 353, 354, 355, 364], "excluded_lines": []}, "TotpViewerWindow.__init__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 10, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 10, "excluded_lines": 0}, "missing_lines": [371, 372, 373, 375, 380, 381, 382, 384, 385, 386], "excluded_lines": []}, "TotpViewerWindow._update_loop": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [389, 390, 391], "excluded_lines": []}, "TotpViewerWindow.refresh_codes": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 7, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 7, "excluded_lines": 0}, "missing_lines": [394, 395, 398, 399, 400, 401, 402], "excluded_lines": []}, "TotpViewerWindow.cleanup": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [405], "excluded_lines": []}, "RelayManagerDialog.__init__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 18, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 18, "excluded_lines": 0}, "missing_lines": [412, 413, 414, 416, 417, 418, 419, 420, 422, 423, 424, 425, 426, 427, 428, 429, 430, 432], "excluded_lines": []}, "RelayManagerDialog.refresh": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [435, 436, 437], "excluded_lines": []}, "RelayManagerDialog.add_relay": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 7, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 7, "excluded_lines": 3}, "missing_lines": [440, 441, 442, 443, 444, 448, 449], "excluded_lines": [445, 446, 447]}, "RelayManagerDialog.remove_relay": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 7, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 7, "excluded_lines": 3}, "missing_lines": [452, 453, 454, 455, 456, 457, 461], "excluded_lines": [458, 459, 460]}, "build": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [466], "excluded_lines": []}, "SeedPassApp.startup": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 11}, "missing_lines": [], "excluded_lines": [471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481]}, "main": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2}, "missing_lines": [], "excluded_lines": [485, 486]}, "": {"executed_lines": [1, 3, 4, 6, 7, 8, 9, 11, 12, 13, 15, 21, 24, 25, 27, 53, 71, 72, 74, 125, 150, 154, 161, 165, 169, 173, 182, 185, 189, 194, 203, 204, 206, 261, 334, 335, 337, 350, 367, 368, 370, 388, 393, 404, 408, 409, 411, 434, 439, 451, 464, 469, 470, 484], "summary": {"covered_lines": 46, "num_statements": 46, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2}, "missing_lines": [], "excluded_lines": [470, 484]}}, "classes": {"LockScreenWindow": {"executed_lines": [33, 36, 37, 38, 40, 41, 42, 46, 47, 48, 49, 50, 51, 54, 55, 56, 60, 66, 67, 68], "summary": {"covered_lines": 20, "num_statements": 20, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 3}, "missing_lines": [], "excluded_lines": [57, 58, 59]}, "MainWindow": {"executed_lines": [81, 84, 85, 86, 87, 88, 89, 90, 91, 93, 94, 100, 101, 102, 103, 104, 105, 107, 108, 109, 110, 111, 112, 113, 115, 117, 118, 119, 120, 121, 123, 126, 127, 176, 177, 179, 183, 186, 187, 195, 196, 197, 198, 199], "summary": {"covered_lines": 44, "num_statements": 72, "percent_covered": 61.111111111111114, "percent_covered_display": "61", "missing_lines": 28, "excluded_lines": 0}, "missing_lines": [128, 129, 130, 131, 132, 133, 134, 135, 136, 138, 139, 151, 152, 155, 156, 157, 158, 159, 162, 163, 166, 167, 170, 171, 190, 191, 192, 200], "excluded_lines": []}, "EntryDialog": {"executed_lines": [207, 208, 209, 210, 212, 213, 217, 218, 219, 220, 223, 224, 226, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 262, 263, 264, 265, 266, 267, 268, 270, 271, 272, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 289, 290, 292, 293, 294, 295, 296, 297, 298, 300, 301, 302, 303, 304, 305, 306, 307, 308, 310, 312, 320, 321, 323, 324, 325, 326, 327, 329, 331], "summary": {"covered_lines": 93, "num_statements": 93, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "SearchDialog": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 15, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 15, "excluded_lines": 0}, "missing_lines": [338, 339, 340, 341, 344, 345, 346, 347, 348, 351, 352, 353, 354, 355, 364], "excluded_lines": []}, "TotpViewerWindow": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 21, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 21, "excluded_lines": 0}, "missing_lines": [371, 372, 373, 375, 380, 381, 382, 384, 385, 386, 389, 390, 391, 394, 395, 398, 399, 400, 401, 402, 405], "excluded_lines": []}, "RelayManagerDialog": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 35, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 35, "excluded_lines": 6}, "missing_lines": [412, 413, 414, 416, 417, 418, 419, 420, 422, 423, 424, 425, 426, 427, 428, 429, 430, 432, 435, 436, 437, 440, 441, 442, 443, 444, 448, 449, 452, 453, 454, 455, 456, 457, 461], "excluded_lines": [445, 446, 447, 458, 459, 460]}, "SeedPassApp": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 11}, "missing_lines": [], "excluded_lines": [471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481]}, "": {"executed_lines": [1, 3, 4, 6, 7, 8, 9, 11, 12, 13, 15, 21, 24, 25, 27, 53, 71, 72, 74, 125, 150, 154, 161, 165, 169, 173, 182, 185, 189, 194, 203, 204, 206, 261, 334, 335, 337, 350, 367, 368, 370, 388, 393, 404, 408, 409, 411, 434, 439, 451, 464, 469, 470, 484], "summary": {"covered_lines": 46, "num_statements": 47, "percent_covered": 97.87234042553192, "percent_covered_display": "98", "missing_lines": 1, "excluded_lines": 4}, "missing_lines": [466], "excluded_lines": [470, 484, 485, 486]}}}, "src/tests/conftest.py": {"executed_lines": [1, 2, 3, 4, 6, 7, 8, 9, 11, 13, 14, 15, 26, 27, 28, 29, 30, 33, 36, 37, 40, 41, 42, 45, 46, 52, 58, 66, 67, 68, 71, 74, 77, 78, 79, 80, 82, 83, 84, 85, 86, 89, 90, 91, 92, 95, 96, 97, 98, 99, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 115, 116, 117, 145, 146, 147, 148, 149, 150, 153, 154, 156, 157, 159, 160, 161, 162, 163, 164, 165, 166, 167, 169, 170, 172, 174, 175, 176, 178, 181, 182, 183, 185, 186, 187, 188, 189, 191, 194, 195, 196], "summary": {"covered_lines": 103, "num_statements": 105, "percent_covered": 98.0952380952381, "percent_covered_display": "98", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [75, 179], "excluded_lines": [], "functions": {"anyio_backend": {"executed_lines": [37], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "mute_logging": {"executed_lines": [42], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "pytest_addoption": {"executed_lines": [46, 52, 58], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "pytest_configure": {"executed_lines": [67, 68], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "pytest_collection_modifyitems": {"executed_lines": [74, 77, 78, 79, 80, 82, 83, 84, 85, 86], "summary": {"covered_lines": 10, "num_statements": 11, "percent_covered": 90.9090909090909, "percent_covered_display": "91", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [75], "excluded_lines": []}, "vault": {"executed_lines": [91, 92], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "password_manager": {"executed_lines": [97, 98, 99, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "client": {"executed_lines": [117, 145, 146, 147, 148, 149, 150], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "make_dummy_nostr_client": {"executed_lines": [156, 157, 159, 191], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "make_dummy_nostr_client._make": {"executed_lines": [160, 161, 162, 163, 164, 165, 166, 167, 169, 170, 172, 174, 175, 178, 181, 182, 185, 186, 187, 188, 189], "summary": {"covered_lines": 21, "num_statements": 21, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "make_dummy_nostr_client._make.DummyKeys.private_key_hex": {"executed_lines": [176], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "make_dummy_nostr_client._make.DummyKeys.public_key_hex": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [179], "excluded_lines": []}, "make_dummy_nostr_client._make.DummyKeyManager.__init__": {"executed_lines": [183], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "dummy_nostr_client": {"executed_lines": [196], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 6, 7, 8, 9, 11, 13, 14, 15, 26, 27, 28, 29, 30, 33, 36, 40, 41, 45, 66, 71, 89, 90, 95, 96, 115, 116, 153, 154, 194, 195], "summary": {"covered_lines": 34, "num_statements": 34, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"make_dummy_nostr_client._make.DummyKeys": {"executed_lines": [176], "summary": {"covered_lines": 1, "num_statements": 2, "percent_covered": 50.0, "percent_covered_display": "50", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [179], "excluded_lines": []}, "make_dummy_nostr_client._make.DummyKeyManager": {"executed_lines": [183], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 6, 7, 8, 9, 11, 13, 14, 15, 26, 27, 28, 29, 30, 33, 36, 37, 40, 41, 42, 45, 46, 52, 58, 66, 67, 68, 71, 74, 77, 78, 79, 80, 82, 83, 84, 85, 86, 89, 90, 91, 92, 95, 96, 97, 98, 99, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 115, 116, 117, 145, 146, 147, 148, 149, 150, 153, 154, 156, 157, 159, 160, 161, 162, 163, 164, 165, 166, 167, 169, 170, 172, 174, 175, 178, 181, 182, 185, 186, 187, 188, 189, 191, 194, 195, 196], "summary": {"covered_lines": 101, "num_statements": 102, "percent_covered": 99.01960784313725, "percent_covered_display": "99", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [75], "excluded_lines": []}}}, "src/tests/helpers.py": {"executed_lines": [1, 2, 3, 5, 6, 7, 11, 12, 18, 22, 25, 31, 32, 33, 34, 36, 37, 38, 39, 42, 43, 44, 45, 46, 47, 49, 50, 53, 54, 55, 56, 57, 59, 60, 63, 64, 65, 66, 71, 72, 74, 76, 77, 79, 80, 83, 84, 85, 86, 88, 89, 90, 92, 93, 96, 97, 98, 101, 102, 103, 104, 105, 106, 107, 109, 110, 112, 113, 114, 119, 121, 122, 123, 125, 126, 127, 128, 130, 131, 132, 134, 135, 136, 139, 140, 141, 143, 144, 145, 148, 149, 150, 152, 153, 155, 156, 157, 160, 161, 162, 165, 166, 167, 168, 169, 170, 171, 172, 174, 175, 177, 180, 181, 183, 186, 187, 188, 189, 190, 191, 192, 193, 194, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 226, 227, 228, 230, 231, 233], "summary": {"covered_lines": 156, "num_statements": 167, "percent_covered": 93.41317365269461, "percent_covered_display": "93", "missing_lines": 11, "excluded_lines": 0}, "missing_lines": [67, 68, 70, 94, 115, 116, 118, 178, 184, 195, 196], "excluded_lines": [], "functions": {"create_vault": {"executed_lines": [31, 32, 33, 34, 36, 37, 38, 39], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "DummyEvent.__init__": {"executed_lines": [44, 45, 46, 47], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "DummyEvent.content": {"executed_lines": [50], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "DummyUnsignedEvent.__init__": {"executed_lines": [55, 56, 57], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "DummyUnsignedEvent.sign_with_keys": {"executed_lines": [60], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "DummyBuilder.__init__": {"executed_lines": [65, 66, 71, 72], "summary": {"covered_lines": 4, "num_statements": 7, "percent_covered": 57.142857142857146, "percent_covered_display": "57", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [67, 68, 70], "excluded_lines": []}, "DummyBuilder.tags": {"executed_lines": [76, 77], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "DummyBuilder.build": {"executed_lines": [80], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "DummyTag.identifier": {"executed_lines": [86], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "DummyTag.event": {"executed_lines": [90], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "DummyTag.alt": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [94], "excluded_lines": []}, "DummyTag.expiration": {"executed_lines": [98], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "DummyFilter.__init__": {"executed_lines": [103, 104, 105, 106, 107], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "DummyFilter.author": {"executed_lines": [110], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "DummyFilter.kind": {"executed_lines": [113, 114, 119], "summary": {"covered_lines": 3, "num_statements": 6, "percent_covered": 50.0, "percent_covered_display": "50", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [115, 116, 118], "excluded_lines": []}, "DummyFilter.identifier": {"executed_lines": [122, 123], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "DummyFilter.id": {"executed_lines": [126, 127, 128], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "DummyFilter.limit": {"executed_lines": [131, 132], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "DummyFilter.since": {"executed_lines": [135, 136], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "DummyTimestamp.__init__": {"executed_lines": [141], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "DummyTimestamp.from_secs": {"executed_lines": [145], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "DummyEventId.__init__": {"executed_lines": [150], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "DummyEventId.to_hex": {"executed_lines": [153], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "DummyEventId.parse": {"executed_lines": [157], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "DummySendResult.__init__": {"executed_lines": [162], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "DummyRelayClient.__init__": {"executed_lines": [167, 168, 169, 170, 171, 172], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "DummyRelayClient.add_relays": {"executed_lines": [175], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "DummyRelayClient.add_relay": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [178], "excluded_lines": []}, "DummyRelayClient.connect": {"executed_lines": [181], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "DummyRelayClient.disconnect": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [184], "excluded_lines": []}, "DummyRelayClient.send_event": {"executed_lines": [187, 188, 189, 190, 191, 192, 193, 194, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207], "summary": {"covered_lines": 19, "num_statements": 21, "percent_covered": 90.47619047619048, "percent_covered_display": "90", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [195, 196], "excluded_lines": []}, "DummyRelayClient.fetch_events": {"executed_lines": [210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 226, 227, 230, 233], "summary": {"covered_lines": 19, "num_statements": 19, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "DummyRelayClient.fetch_events.Result.__init__": {"executed_lines": [228], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "DummyRelayClient.fetch_events.Result.to_vec": {"executed_lines": [231], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 5, 6, 7, 11, 12, 18, 22, 25, 42, 43, 49, 53, 54, 59, 63, 64, 74, 79, 83, 84, 85, 88, 89, 92, 93, 96, 97, 101, 102, 109, 112, 121, 125, 130, 134, 139, 140, 143, 144, 148, 149, 152, 155, 156, 160, 161, 165, 166, 174, 177, 180, 183, 186, 209], "summary": {"covered_lines": 57, "num_statements": 57, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"DummyEvent": {"executed_lines": [44, 45, 46, 47, 50], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "DummyUnsignedEvent": {"executed_lines": [55, 56, 57, 60], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "DummyBuilder": {"executed_lines": [65, 66, 71, 72, 76, 77, 80], "summary": {"covered_lines": 7, "num_statements": 10, "percent_covered": 70.0, "percent_covered_display": "70", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [67, 68, 70], "excluded_lines": []}, "DummyTag": {"executed_lines": [86, 90, 98], "summary": {"covered_lines": 3, "num_statements": 4, "percent_covered": 75.0, "percent_covered_display": "75", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [94], "excluded_lines": []}, "DummyFilter": {"executed_lines": [103, 104, 105, 106, 107, 110, 113, 114, 119, 122, 123, 126, 127, 128, 131, 132, 135, 136], "summary": {"covered_lines": 18, "num_statements": 21, "percent_covered": 85.71428571428571, "percent_covered_display": "86", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [115, 116, 118], "excluded_lines": []}, "DummyTimestamp": {"executed_lines": [141, 145], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "DummyEventId": {"executed_lines": [150, 153, 157], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "DummySendResult": {"executed_lines": [162], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "DummyRelayClient": {"executed_lines": [167, 168, 169, 170, 171, 172, 175, 181, 187, 188, 189, 190, 191, 192, 193, 194, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 226, 227, 230, 233], "summary": {"covered_lines": 46, "num_statements": 50, "percent_covered": 92.0, "percent_covered_display": "92", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [178, 184, 195, 196], "excluded_lines": []}, "DummyRelayClient.fetch_events.Result": {"executed_lines": [228, 231], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 5, 6, 7, 11, 12, 18, 22, 25, 31, 32, 33, 34, 36, 37, 38, 39, 42, 43, 49, 53, 54, 59, 63, 64, 74, 79, 83, 84, 85, 88, 89, 92, 93, 96, 97, 101, 102, 109, 112, 121, 125, 130, 134, 139, 140, 143, 144, 148, 149, 152, 155, 156, 160, 161, 165, 166, 174, 177, 180, 183, 186, 209], "summary": {"covered_lines": 65, "num_statements": 65, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_add_new_fingerprint_words.py": {"executed_lines": [1, 2, 4, 5, 8, 9, 10, 11, 13, 14, 16, 17, 18, 20, 23, 24, 29, 31, 33, 34, 35], "summary": {"covered_lines": 21, "num_statements": 21, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_add_new_fingerprint_word_entry_exits": {"executed_lines": [9, 10, 11, 13, 14, 16, 20, 23, 24, 29, 31, 33, 34, 35], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_add_new_fingerprint_word_entry_exits.setup_wrapper": {"executed_lines": [17, 18], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 5, 8], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 4, 5, 8, 9, 10, 11, 13, 14, 16, 17, 18, 20, 23, 24, 29, 31, 33, 34, 35], "summary": {"covered_lines": 21, "num_statements": 21, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_add_tags_from_retrieve.py": {"executed_lines": [1, 2, 3, 4, 6, 8, 10, 11, 12, 13, 16, 17, 18, 21, 22, 23, 24, 25, 26, 27, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 41, 43, 44, 46, 48, 49], "summary": {"covered_lines": 37, "num_statements": 37, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"FakePasswordGenerator.generate_password": {"executed_lines": [18], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_add_tags_from_retrieve": {"executed_lines": [22, 23, 24, 25, 26, 27, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 41, 43, 44, 46, 48, 49], "summary": {"covered_lines": 23, "num_statements": 23, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 6, 8, 10, 11, 12, 13, 16, 17, 21], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"FakePasswordGenerator": {"executed_lines": [18], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 6, 8, 10, 11, 12, 13, 16, 17, 21, 22, 23, 24, 25, 26, 27, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 41, 43, 44, 46, 48, 49], "summary": {"covered_lines": 36, "num_statements": 36, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_additional_backup.py": {"executed_lines": [1, 2, 3, 5, 7, 8, 9, 12, 13, 14, 15, 16, 17, 18, 19, 21, 22, 24, 25, 26, 27, 29, 31, 32, 34, 35, 36, 37], "summary": {"covered_lines": 28, "num_statements": 28, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_entry_manager_additional_backup": {"executed_lines": [13, 14, 15, 16, 17, 18, 19, 21, 22, 24, 25, 26, 27, 29, 31, 32, 34, 35, 36, 37], "summary": {"covered_lines": 20, "num_statements": 20, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 5, 7, 8, 9, 12], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 5, 7, 8, 9, 12, 13, 14, 15, 16, 17, 18, 19, 21, 22, 24, 25, 26, 27, 29, 31, 32, 34, 35, 36, 37], "summary": {"covered_lines": 28, "num_statements": 28, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_ai_tui_agent_harness.py": {"executed_lines": [1, 3, 4, 5, 7, 10, 11, 12, 13, 14, 15, 16, 17, 18, 21, 24, 25, 26, 28, 29, 31, 33, 34, 35, 36, 37, 40, 41, 43, 44, 46, 47, 49, 50, 51, 52, 55, 56, 57, 58, 59, 61, 62, 64, 65, 67, 68, 69, 70, 71, 74, 75, 76, 77, 78, 80, 81, 83, 84, 86, 87, 88, 89, 94, 95, 96, 97, 105, 107, 108, 109, 110, 112, 113, 115, 118, 119, 120, 121, 124, 125, 126, 129, 132, 135, 136, 137, 140, 141, 142, 143, 144, 146, 147, 148, 149, 150, 152, 153, 154, 156, 159, 160, 161, 162, 163, 166, 167, 168, 169, 171, 172, 174, 175, 177, 178, 180, 183], "summary": {"covered_lines": 118, "num_statements": 123, "percent_covered": 95.9349593495935, "percent_covered_display": "96", "missing_lines": 5, "excluded_lines": 0}, "missing_lines": [116, 127, 130, 133, 157], "excluded_lines": [], "functions": {"_load_harness_module": {"executed_lines": [11, 12, 13, 14, 15, 16, 17, 18], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_run_step_records_passed_result": {"executed_lines": [25, 26, 28, 31, 33, 34, 35, 36, 37], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_run_step_records_passed_result._ok": {"executed_lines": [29], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_run_step_records_failed_result_and_reraises": {"executed_lines": [41, 43, 46, 47, 49, 50, 51, 52], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_run_step_records_failed_result_and_reraises._boom": {"executed_lines": [44], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_add_entry_menu_open_waits_when_choice_omitted": {"executed_lines": [56, 57, 61, 64, 67, 68, 69, 70, 71], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_add_entry_menu_open_waits_when_choice_omitted.Runner.__init__": {"executed_lines": [58, 59], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_add_entry_menu_open_waits_when_choice_omitted.Runner.sendline": {"executed_lines": [62], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_add_entry_menu_open_waits_when_choice_omitted.Runner.wait_for": {"executed_lines": [65], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_add_entry_menu_open_sends_choice_when_provided": {"executed_lines": [75, 76, 80, 83, 86, 87, 88, 89], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_add_entry_menu_open_sends_choice_when_provided.Runner.__init__": {"executed_lines": [77, 78], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_add_entry_menu_open_sends_choice_when_provided.Runner.sendline": {"executed_lines": [81], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_add_entry_menu_open_sends_choice_when_provided.Runner.expect_and_send": {"executed_lines": [84], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_complete_onboarding_reaches_main_menu_and_sends_password": {"executed_lines": [95, 96, 107, 112, 115, 118, 119, 120, 121], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_complete_onboarding_reaches_main_menu_and_sends_password.Runner.__init__": {"executed_lines": [97, 105], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_complete_onboarding_reaches_main_menu_and_sends_password.Runner.try_wait_for": {"executed_lines": [108, 109, 110], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_complete_onboarding_reaches_main_menu_and_sends_password.Runner.sendline": {"executed_lines": [113], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_complete_onboarding_reaches_main_menu_and_sends_password.Runner.pump": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [116], "excluded_lines": []}, "test_complete_onboarding_times_out_without_expected_prompts": {"executed_lines": [125, 126, 129, 132, 135, 136, 137], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_complete_onboarding_times_out_without_expected_prompts.Runner.try_wait_for": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [127], "excluded_lines": []}, "test_complete_onboarding_times_out_without_expected_prompts.Runner.sendline": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [130], "excluded_lines": []}, "test_complete_onboarding_times_out_without_expected_prompts.Runner.pump": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [133], "excluded_lines": []}, "test_drain_to_main_menu_uses_helper_prompt_then_returns": {"executed_lines": [141, 142, 146, 152, 156, 159, 160, 161, 162, 163], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_drain_to_main_menu_uses_helper_prompt_then_returns.Runner.__init__": {"executed_lines": [143, 144], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_drain_to_main_menu_uses_helper_prompt_then_returns.Runner.wait_for": {"executed_lines": [147, 148, 149, 150], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_drain_to_main_menu_uses_helper_prompt_then_returns.Runner.expect_and_send": {"executed_lines": [153, 154], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_drain_to_main_menu_uses_helper_prompt_then_returns.Runner.pump": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [157], "excluded_lines": []}, "test_drain_to_main_menu_times_out_when_no_prompt_progress": {"executed_lines": [167, 168, 171, 174, 177, 178, 180, 183], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_drain_to_main_menu_times_out_when_no_prompt_progress.Runner.wait_for": {"executed_lines": [169], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_drain_to_main_menu_times_out_when_no_prompt_progress.Runner.expect_and_send": {"executed_lines": [172], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_drain_to_main_menu_times_out_when_no_prompt_progress.Runner.pump": {"executed_lines": [175], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 4, 5, 7, 10, 21, 24, 40, 55, 74, 94, 124, 140, 166], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"test_add_entry_menu_open_waits_when_choice_omitted.Runner": {"executed_lines": [58, 59, 62, 65], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_add_entry_menu_open_sends_choice_when_provided.Runner": {"executed_lines": [77, 78, 81, 84], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_complete_onboarding_reaches_main_menu_and_sends_password.Runner": {"executed_lines": [97, 105, 108, 109, 110, 113], "summary": {"covered_lines": 6, "num_statements": 7, "percent_covered": 85.71428571428571, "percent_covered_display": "86", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [116], "excluded_lines": []}, "test_complete_onboarding_times_out_without_expected_prompts.Runner": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [127, 130, 133], "excluded_lines": []}, "test_drain_to_main_menu_uses_helper_prompt_then_returns.Runner": {"executed_lines": [143, 144, 147, 148, 149, 150, 153, 154], "summary": {"covered_lines": 8, "num_statements": 9, "percent_covered": 88.88888888888889, "percent_covered_display": "89", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [157], "excluded_lines": []}, "test_drain_to_main_menu_times_out_when_no_prompt_progress.Runner": {"executed_lines": [169, 172, 175], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 4, 5, 7, 10, 11, 12, 13, 14, 15, 16, 17, 18, 21, 24, 25, 26, 28, 29, 31, 33, 34, 35, 36, 37, 40, 41, 43, 44, 46, 47, 49, 50, 51, 52, 55, 56, 57, 61, 64, 67, 68, 69, 70, 71, 74, 75, 76, 80, 83, 86, 87, 88, 89, 94, 95, 96, 107, 112, 115, 118, 119, 120, 121, 124, 125, 126, 129, 132, 135, 136, 137, 140, 141, 142, 146, 152, 156, 159, 160, 161, 162, 163, 166, 167, 168, 171, 174, 177, 178, 180, 183], "summary": {"covered_lines": 93, "num_statements": 93, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_api.py": {"executed_lines": [1, 2, 4, 5, 7, 9, 12, 13, 14, 15, 16, 19, 20, 21, 22, 23, 24, 25, 28, 29, 30, 31, 36, 39, 40, 41, 42, 47, 48, 49, 50, 53, 54, 55, 56, 60, 61, 62, 63, 66, 67, 68, 69, 73, 74, 75, 76, 79, 80, 81, 82, 86, 87, 88, 89, 92, 93, 94, 95, 97, 102, 103, 105, 110, 111, 113, 114, 115, 117, 118, 119, 122, 123, 124, 125, 127, 128, 130, 131, 132, 137, 138, 139, 140, 143, 144, 145, 146, 147, 150, 151, 156, 157, 158, 161, 162, 163, 164, 165, 166, 167, 172, 173, 174, 175, 178, 179, 180, 181, 182, 187, 190, 191, 192, 194, 196, 197, 198, 199, 201, 203, 207, 208, 209, 210, 211, 212, 215, 216, 233, 234, 235, 236, 237, 238, 239, 240], "summary": {"covered_lines": 137, "num_statements": 137, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_token_hashed": {"executed_lines": [14, 15, 16], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_cors_and_auth": {"executed_lines": [21, 22, 23, 24, 25], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_invalid_token": {"executed_lines": [30, 31, 36], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_get_entry_by_id": {"executed_lines": [41, 42, 47, 48, 49, 50], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_get_config_value": {"executed_lines": [55, 56, 60, 61, 62, 63], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_list_fingerprint": {"executed_lines": [68, 69, 73, 74, 75, 76], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_get_nostr_pubkey": {"executed_lines": [81, 82, 86, 87, 88, 89], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_create_modify_archive_entry": {"executed_lines": [94, 95, 97, 102, 103, 105, 110, 111, 113, 114, 115, 117, 118, 119], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_update_config": {"executed_lines": [124, 125, 127, 130, 131, 132, 137, 138, 139, 140], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_update_config.set_timeout": {"executed_lines": [128], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_update_config_quick_unlock": {"executed_lines": [145, 146, 147, 150, 151, 156, 157, 158], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_change_password_route": {"executed_lines": [163, 164, 165, 166, 167, 172, 173, 174, 175], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_update_config_unknown_key": {"executed_lines": [180, 181, 182, 187], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_shutdown": {"executed_lines": [192, 194, 196, 197, 201, 203, 207, 208, 209, 210, 211, 212], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_shutdown.Loop.call_soon": {"executed_lines": [198, 199], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_invalid_token_other_endpoints": {"executed_lines": [234, 235, 236, 237, 238, 239, 240], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 5, 7, 9, 12, 13, 19, 20, 28, 29, 39, 40, 53, 54, 66, 67, 79, 80, 92, 93, 122, 123, 143, 144, 161, 162, 178, 179, 190, 191, 215, 216, 233], "summary": {"covered_lines": 35, "num_statements": 35, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"test_shutdown.Loop": {"executed_lines": [198, 199], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 5, 7, 9, 12, 13, 14, 15, 16, 19, 20, 21, 22, 23, 24, 25, 28, 29, 30, 31, 36, 39, 40, 41, 42, 47, 48, 49, 50, 53, 54, 55, 56, 60, 61, 62, 63, 66, 67, 68, 69, 73, 74, 75, 76, 79, 80, 81, 82, 86, 87, 88, 89, 92, 93, 94, 95, 97, 102, 103, 105, 110, 111, 113, 114, 115, 117, 118, 119, 122, 123, 124, 125, 127, 128, 130, 131, 132, 137, 138, 139, 140, 143, 144, 145, 146, 147, 150, 151, 156, 157, 158, 161, 162, 163, 164, 165, 166, 167, 172, 173, 174, 175, 178, 179, 180, 181, 182, 187, 190, 191, 192, 194, 196, 197, 201, 203, 207, 208, 209, 210, 211, 212, 215, 216, 233, 234, 235, 236, 237, 238, 239, 240], "summary": {"covered_lines": 135, "num_statements": 135, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_api_new_endpoints.py": {"executed_lines": [1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 14, 15, 16, 17, 19, 20, 21, 23, 24, 26, 27, 28, 29, 31, 32, 45, 46, 47, 57, 62, 63, 64, 65, 68, 69, 70, 71, 73, 74, 75, 77, 78, 80, 81, 82, 84, 85, 90, 91, 92, 94, 99, 100, 101, 104, 105, 106, 108, 109, 111, 112, 113, 114, 115, 118, 119, 120, 121, 123, 124, 126, 127, 128, 133, 134, 135, 138, 139, 140, 141, 142, 143, 144, 145, 146, 149, 150, 151, 152, 155, 156, 157, 158, 159, 160, 161, 168, 169, 170, 171, 174, 177, 178, 179, 180, 182, 183, 186, 188, 190, 191, 192, 193, 195, 196, 197, 198, 200, 205, 206, 207, 210, 211, 212, 213, 215, 216, 220, 222, 223, 224, 225, 227, 228, 229, 230, 233, 234, 235, 236, 238, 239, 241, 242, 243, 246, 247, 249, 250, 255, 256, 257, 258, 261, 262, 263, 264, 266, 267, 269, 270, 271, 272, 274, 275, 276, 281, 282, 283, 284, 287, 288, 289, 290, 291, 292, 296, 297, 302, 305, 306, 307, 308, 309, 310, 311, 313, 314, 319, 322, 323, 324, 325, 327, 328, 329, 331, 332, 334, 335, 336, 337, 338, 339, 340, 343, 344, 347, 348, 349, 350, 352, 353, 355, 356, 358, 359, 361, 362, 367, 368, 369, 370, 373, 374, 375, 376, 377, 379, 381, 385, 386, 387, 389, 392, 395, 396, 397, 398, 399, 400, 404, 405, 409, 414, 415, 416, 418, 423, 426, 427, 428, 429, 430, 431, 432, 436, 441, 444, 445, 446, 447, 448, 450, 451, 453, 455, 456, 458, 459, 460, 465, 468, 469, 471, 473, 474, 475, 477, 478, 479, 481, 484, 485, 486, 488, 489, 490, 491, 494, 495, 496, 498, 499, 500, 502, 503, 506, 508, 511, 513, 514, 519, 520, 521, 524, 525, 526, 528, 529, 530, 532, 533, 536, 538, 541, 543, 544, 545, 550, 551, 552, 553], "summary": {"covered_lines": 323, "num_statements": 323, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_create_and_modify_totp_entry": {"executed_lines": [16, 17, 19, 23, 26, 27, 28, 29, 31, 32, 45, 46, 47, 57, 62, 63, 64, 65], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_create_and_modify_totp_entry.add_totp": {"executed_lines": [20, 21], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_create_and_modify_totp_entry.modify": {"executed_lines": [24], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_create_and_modify_ssh_entry": {"executed_lines": [70, 71, 73, 77, 80, 81, 82, 84, 85, 90, 91, 92, 94, 99, 100, 101], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_create_and_modify_ssh_entry.add_ssh": {"executed_lines": [74, 75], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_create_and_modify_ssh_entry.modify": {"executed_lines": [78], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_update_entry_error": {"executed_lines": [106, 108, 111, 112, 113, 114, 115], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_update_entry_error.modify": {"executed_lines": [109], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_update_config_secret_mode": {"executed_lines": [120, 121, 123, 126, 127, 128, 133, 134, 135], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_update_config_secret_mode.set_secret": {"executed_lines": [124], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_totp_export_endpoint": {"executed_lines": [140, 141, 142, 143, 144, 145, 146], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_totp_codes_endpoint": {"executed_lines": [151, 152, 155, 156, 157, 158, 159, 160, 161], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_parent_seed_endpoint_removed": {"executed_lines": [170, 171, 174], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_fingerprint_endpoints": {"executed_lines": [179, 180, 182, 183, 186, 188, 190, 191, 192, 193, 195, 196, 197, 198, 200, 205, 206, 207], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_checksum_endpoints": {"executed_lines": [212, 213, 215, 216, 220, 222, 223, 224, 225, 227, 228, 229, 230], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_vault_import_via_path": {"executed_lines": [235, 236, 238, 241, 242, 243, 246, 247, 249, 250, 255, 256, 257, 258], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_vault_import_via_path.import_db": {"executed_lines": [239], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_vault_import_via_upload": {"executed_lines": [263, 264, 266, 269, 270, 271, 272, 274, 275, 276, 281, 282, 283, 284], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_vault_import_via_upload.import_db": {"executed_lines": [267], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_vault_import_invalid_extension": {"executed_lines": [289, 290, 291, 292, 296, 297, 302], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_vault_import_path_traversal_blocked": {"executed_lines": [307, 308, 309, 310, 311, 313, 314, 319], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_vault_lock_endpoint": {"executed_lines": [324, 325, 327, 331, 332, 334, 335, 336, 337, 338, 339, 340, 343, 344], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_vault_lock_endpoint.lock": {"executed_lines": [328, 329], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_secret_mode_endpoint": {"executed_lines": [349, 350, 352, 355, 358, 359, 361, 362, 367, 368, 369, 370], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_secret_mode_endpoint.set_secret": {"executed_lines": [353], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_secret_mode_endpoint.set_delay": {"executed_lines": [356], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_vault_export_endpoint": {"executed_lines": [375, 376, 377, 379, 381, 385, 386, 387, 389, 392], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_backup_parent_seed_endpoint": {"executed_lines": [397, 398, 399, 400, 404, 405, 409, 414, 415, 416, 418, 423], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_backup_parent_seed_path_traversal_blocked": {"executed_lines": [428, 429, 430, 431, 432, 436, 441], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_relay_management_endpoints": {"executed_lines": [446, 447, 448, 450, 453, 455, 458, 459, 460, 465, 468, 469, 471, 473, 474, 475, 477, 478, 479, 481, 484, 485, 486, 488, 489, 490, 491], "summary": {"covered_lines": 27, "num_statements": 27, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_relay_management_endpoints.load_config": {"executed_lines": [451], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_relay_management_endpoints.set_relays": {"executed_lines": [456], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_generate_password_no_special_chars": {"executed_lines": [496, 498, 499, 502, 503, 508, 511, 513, 514, 519, 520, 521], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_generate_password_no_special_chars.DummyEnc.derive_seed_from_mnemonic": {"executed_lines": [500], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_generate_password_no_special_chars.DummyBIP85.derive_entropy": {"executed_lines": [506], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_generate_password_allowed_chars": {"executed_lines": [526, 528, 529, 532, 533, 538, 541, 543, 544, 545, 550, 551, 552, 553], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_generate_password_allowed_chars.DummyEnc.derive_seed_from_mnemonic": {"executed_lines": [530], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_generate_password_allowed_chars.DummyBIP85.derive_entropy": {"executed_lines": [536], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 14, 15, 68, 69, 104, 105, 118, 119, 138, 139, 149, 150, 168, 169, 177, 178, 210, 211, 233, 234, 261, 262, 287, 288, 305, 306, 322, 323, 347, 348, 373, 374, 395, 396, 426, 427, 444, 445, 494, 495, 524, 525], "summary": {"covered_lines": 52, "num_statements": 52, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"test_generate_password_no_special_chars.DummyEnc": {"executed_lines": [500], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_generate_password_no_special_chars.DummyBIP85": {"executed_lines": [506], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_generate_password_allowed_chars.DummyEnc": {"executed_lines": [530], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_generate_password_allowed_chars.DummyBIP85": {"executed_lines": [536], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 14, 15, 16, 17, 19, 20, 21, 23, 24, 26, 27, 28, 29, 31, 32, 45, 46, 47, 57, 62, 63, 64, 65, 68, 69, 70, 71, 73, 74, 75, 77, 78, 80, 81, 82, 84, 85, 90, 91, 92, 94, 99, 100, 101, 104, 105, 106, 108, 109, 111, 112, 113, 114, 115, 118, 119, 120, 121, 123, 124, 126, 127, 128, 133, 134, 135, 138, 139, 140, 141, 142, 143, 144, 145, 146, 149, 150, 151, 152, 155, 156, 157, 158, 159, 160, 161, 168, 169, 170, 171, 174, 177, 178, 179, 180, 182, 183, 186, 188, 190, 191, 192, 193, 195, 196, 197, 198, 200, 205, 206, 207, 210, 211, 212, 213, 215, 216, 220, 222, 223, 224, 225, 227, 228, 229, 230, 233, 234, 235, 236, 238, 239, 241, 242, 243, 246, 247, 249, 250, 255, 256, 257, 258, 261, 262, 263, 264, 266, 267, 269, 270, 271, 272, 274, 275, 276, 281, 282, 283, 284, 287, 288, 289, 290, 291, 292, 296, 297, 302, 305, 306, 307, 308, 309, 310, 311, 313, 314, 319, 322, 323, 324, 325, 327, 328, 329, 331, 332, 334, 335, 336, 337, 338, 339, 340, 343, 344, 347, 348, 349, 350, 352, 353, 355, 356, 358, 359, 361, 362, 367, 368, 369, 370, 373, 374, 375, 376, 377, 379, 381, 385, 386, 387, 389, 392, 395, 396, 397, 398, 399, 400, 404, 405, 409, 414, 415, 416, 418, 423, 426, 427, 428, 429, 430, 431, 432, 436, 441, 444, 445, 446, 447, 448, 450, 451, 453, 455, 456, 458, 459, 460, 465, 468, 469, 471, 473, 474, 475, 477, 478, 479, 481, 484, 485, 486, 488, 489, 490, 491, 494, 495, 496, 498, 499, 502, 503, 508, 511, 513, 514, 519, 520, 521, 524, 525, 526, 528, 529, 532, 533, 538, 541, 543, 544, 545, 550, 551, 552, 553], "summary": {"covered_lines": 319, "num_statements": 319, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_api_notifications.py": {"executed_lines": [1, 2, 3, 4, 7, 8, 9, 10, 11, 12, 13, 16, 17, 21, 24, 25, 26, 27, 28, 29, 32, 33, 34, 35, 38, 41, 42, 43, 44, 45, 46, 47, 48, 52, 55, 56, 57, 58], "summary": {"covered_lines": 38, "num_statements": 38, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_notifications_endpoint": {"executed_lines": [9, 10, 11, 12, 13, 16, 17, 21], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_notifications_endpoint_clears_queue": {"executed_lines": [26, 27, 28, 29, 32, 33, 34, 35, 38], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_notifications_endpoint_does_not_clear_current": {"executed_lines": [43, 44, 45, 46, 47, 48, 52, 55, 56, 57, 58], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 7, 8, 24, 25, 41, 42], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 7, 8, 9, 10, 11, 12, 13, 16, 17, 21, 24, 25, 26, 27, 28, 29, 32, 33, 34, 35, 38, 41, 42, 43, 44, 45, 46, 47, 48, 52, 55, 56, 57, 58], "summary": {"covered_lines": 38, "num_statements": 38, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_api_profile_stats.py": {"executed_lines": [1, 4, 5, 6, 7, 8, 10, 11, 12, 13], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_profile_stats_endpoint": {"executed_lines": [6, 7, 8, 10, 11, 12, 13], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 4, 5], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 4, 5, 6, 7, 8, 10, 11, 12, 13], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_api_rate_limit.py": {"executed_lines": [1, 2, 3, 4, 5, 6, 8, 10, 13, 14, 15, 16, 17, 19, 21, 34, 35, 36, 37, 38, 40, 41, 44, 46, 47], "summary": {"covered_lines": 25, "num_statements": 25, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_rate_limit_exceeded": {"executed_lines": [15, 16, 17, 19, 21, 34, 35, 36, 37, 38, 40, 41, 44, 46, 47], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 6, 8, 10, 13, 14], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 5, 6, 8, 10, 13, 14, 15, 16, 17, 19, 21, 34, 35, 36, 37, 38, 40, 41, 44, 46, 47], "summary": {"covered_lines": 25, "num_statements": 25, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_api_reload_relays.py": {"executed_lines": [1, 2, 4, 7, 8, 9, 11, 12, 14, 21, 23, 24, 26, 27, 28, 29], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_reload_relays_logs_errors": {"executed_lines": [8, 11, 14, 21, 23, 24, 26, 27, 28, 29], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_reload_relays_logs_errors.close": {"executed_lines": [9], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_reload_relays_logs_errors.init": {"executed_lines": [12], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 7], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 4, 7, 8, 9, 11, 12, 14, 21, 23, 24, 26, 27, 28, 29], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_archive_from_retrieve.py": {"executed_lines": [1, 2, 3, 4, 5, 7, 9, 11, 12, 13, 14, 17, 18, 19, 22, 23, 24, 25, 26, 27, 28, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 43, 45, 46, 48, 50, 53, 55, 56, 57, 58, 59, 60, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 75, 76, 78, 79, 81, 83], "summary": {"covered_lines": 63, "num_statements": 63, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"FakePasswordGenerator.generate_password": {"executed_lines": [19], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_archive_entry_from_retrieve": {"executed_lines": [23, 24, 25, 26, 27, 28, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 43, 45, 46, 48, 50], "summary": {"covered_lines": 23, "num_statements": 23, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_restore_entry_from_retrieve": {"executed_lines": [55, 56, 57, 58, 59, 60, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 75, 76, 78, 79, 81, 83], "summary": {"covered_lines": 24, "num_statements": 24, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 7, 9, 11, 12, 13, 14, 17, 18, 22, 53], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"FakePasswordGenerator": {"executed_lines": [19], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 7, 9, 11, 12, 13, 14, 17, 18, 22, 23, 24, 25, 26, 27, 28, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 43, 45, 46, 48, 50, 53, 55, 56, 57, 58, 59, 60, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 75, 76, 78, 79, 81, 83], "summary": {"covered_lines": 62, "num_statements": 62, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_archive_nonpassword.py": {"executed_lines": [1, 2, 3, 5, 7, 9, 10, 11, 12, 15, 16, 17, 18, 19, 22, 23, 24, 25, 26, 27, 29, 30, 34, 35, 36, 37, 40, 44, 45, 46, 47], "summary": {"covered_lines": 31, "num_statements": 31, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"setup_entry_mgr": {"executed_lines": [16, 17, 18, 19], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_archive_nonpassword_list_search": {"executed_lines": [23, 24, 25, 26, 27, 29, 30, 34, 35, 36, 37, 40, 44, 45, 46, 47], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 5, 7, 9, 10, 11, 12, 15, 22], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 5, 7, 9, 10, 11, 12, 15, 16, 17, 18, 19, 22, 23, 24, 25, 26, 27, 29, 30, 34, 35, 36, 37, 40, 44, 45, 46, 47], "summary": {"covered_lines": 31, "num_statements": 31, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_archive_restore.py": {"executed_lines": [1, 2, 3, 4, 5, 7, 9, 11, 13, 14, 15, 16, 17, 20, 21, 22, 23, 24, 27, 28, 29, 30, 31, 33, 34, 38, 39, 40, 41, 44, 48, 49, 50, 51, 56, 57, 58, 59, 60, 61, 62, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 76, 78, 79, 80, 82, 83, 84, 85, 88, 89, 90, 91, 92, 93, 94, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 108, 110, 111, 112, 114, 115, 116, 117, 118, 119, 122, 123, 124, 125, 126, 127, 128, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 142, 144, 145, 146, 148, 149, 150, 151, 153, 154, 155, 156, 157, 160, 161, 162, 163, 164, 165, 166, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 180, 181, 184, 185, 186, 187, 190, 191, 192, 193, 194, 195, 198, 199, 200, 201, 202, 203, 204, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 218, 219, 220, 222, 227, 228, 229, 231, 233, 234, 235, 236], "summary": {"covered_lines": 179, "num_statements": 179, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"setup_entry_mgr": {"executed_lines": [21, 22, 23, 24], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_archive_restore_affects_listing_and_search": {"executed_lines": [28, 29, 30, 31, 33, 34, 38, 39, 40, 41, 44, 48, 49, 50, 51], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_view_archived_entries_cli": {"executed_lines": [57, 58, 59, 60, 61, 62, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 76, 78, 79, 80, 82, 83, 84, 85], "summary": {"covered_lines": 25, "num_statements": 25, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_view_archived_entries_view_only": {"executed_lines": [89, 90, 91, 92, 93, 94, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 108, 110, 111, 112, 114, 115, 116, 117, 118, 119], "summary": {"covered_lines": 27, "num_statements": 27, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_view_archived_entries_removed_after_restore": {"executed_lines": [123, 124, 125, 126, 127, 128, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 142, 144, 145, 146, 148, 149, 150, 151, 153, 154, 155, 156, 157], "summary": {"covered_lines": 30, "num_statements": 30, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_archived_entries_menu_hides_active": {"executed_lines": [161, 162, 163, 164, 165, 166, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 180, 181, 184, 185, 186, 187, 190, 191, 192, 193, 194, 195], "summary": {"covered_lines": 29, "num_statements": 29, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_view_archived_entries_refreshes_after_view_action": {"executed_lines": [199, 200, 201, 202, 203, 204, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 218, 219, 220, 222, 227, 228, 229, 231, 233, 234, 235, 236], "summary": {"covered_lines": 29, "num_statements": 29, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 7, 9, 11, 13, 14, 15, 16, 17, 20, 27, 56, 88, 122, 160, 198], "summary": {"covered_lines": 20, "num_statements": 20, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 5, 7, 9, 11, 13, 14, 15, 16, 17, 20, 21, 22, 23, 24, 27, 28, 29, 30, 31, 33, 34, 38, 39, 40, 41, 44, 48, 49, 50, 51, 56, 57, 58, 59, 60, 61, 62, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 76, 78, 79, 80, 82, 83, 84, 85, 88, 89, 90, 91, 92, 93, 94, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 108, 110, 111, 112, 114, 115, 116, 117, 118, 119, 122, 123, 124, 125, 126, 127, 128, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 142, 144, 145, 146, 148, 149, 150, 151, 153, 154, 155, 156, 157, 160, 161, 162, 163, 164, 165, 166, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 180, 181, 184, 185, 186, 187, 190, 191, 192, 193, 194, 195, 198, 199, 200, 201, 202, 203, 204, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 218, 219, 220, 222, 227, 228, 229, 231, 233, 234, 235, 236], "summary": {"covered_lines": 179, "num_statements": 179, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_atomic_write.py": {"executed_lines": [1, 2, 3, 5, 8, 13, 16, 17, 19, 23, 24, 25, 26, 28, 29, 30], "summary": {"covered_lines": 16, "num_statements": 18, "percent_covered": 88.88888888888889, "percent_covered_display": "89", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [9, 10], "excluded_lines": [], "functions": {"_writer": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [9, 10], "excluded_lines": []}, "test_atomic_write_concurrent": {"executed_lines": [16, 17, 19, 23, 24, 25, 26, 28, 29, 30], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 5, 8, 13], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 5, 8, 13, 16, 17, 19, 23, 24, 25, 26, 28, 29, 30], "summary": {"covered_lines": 16, "num_statements": 18, "percent_covered": 88.88888888888889, "percent_covered_display": "89", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [9, 10], "excluded_lines": []}}}, "src/tests/test_audit_logger.py": {"executed_lines": [1, 2, 3, 4, 5, 6, 8, 9, 11, 12, 15, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 33, 35, 36, 37, 38, 39, 40, 42, 43, 46, 47, 49, 50, 51, 52, 53, 54, 57, 58, 59, 60, 61, 62, 63, 66, 67, 68, 69, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85], "summary": {"covered_lines": 67, "num_statements": 67, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_audit_logger_records_events": {"executed_lines": [16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 33, 35, 36, 37, 38, 39, 40, 42, 43, 46, 47, 49, 50, 51, 52, 53, 54], "summary": {"covered_lines": 31, "num_statements": 31, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "_verify_chain": {"executed_lines": [58, 59, 60, 61, 62, 63, 66, 67, 68, 69], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_audit_log_tamper_evident": {"executed_lines": [73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 6, 8, 9, 11, 12, 15, 57, 72], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 5, 6, 8, 9, 11, 12, 15, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 33, 35, 36, 37, 38, 39, 40, 42, 43, 46, 47, 49, 50, 51, 52, 53, 54, 57, 58, 59, 60, 61, 62, 63, 66, 67, 68, 69, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85], "summary": {"covered_lines": 67, "num_statements": 67, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_auto_sync.py": {"executed_lines": [1, 2, 3, 4, 6, 8, 10, 13, 14, 30, 32, 34, 36, 37, 39, 40, 42, 43], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_auto_sync_triggers_post": {"executed_lines": [14, 30, 32, 36, 37, 39, 40, 42, 43], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_auto_sync_triggers_post.fake_post": {"executed_lines": [34], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 6, 8, 10, 13], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 6, 8, 10, 13, 14, 30, 32, 34, 36, 37, 39, 40, 42, 43], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_background_error_reporting.py": {"executed_lines": [1, 2, 4, 7, 8, 9, 10, 11, 12, 15, 16, 19, 20, 22, 23, 25, 26, 28, 29, 31, 32, 34, 35, 36, 39, 40, 42, 43, 44, 46, 48, 49, 51, 52, 54, 55, 56], "summary": {"covered_lines": 37, "num_statements": 37, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"_make_pm": {"executed_lines": [8, 9, 10, 11, 12, 15, 16], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_start_background_sync_error": {"executed_lines": [20, 22, 25, 26, 28, 29, 31, 32, 34, 35, 36], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_start_background_sync_error.failing_sync": {"executed_lines": [23], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_start_background_relay_check_error": {"executed_lines": [40, 42, 43, 46, 48, 49, 51, 52, 54, 55, 56], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_start_background_relay_check_error.DummyClient.check_relay_health": {"executed_lines": [44], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 7, 19, 39], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"test_start_background_relay_check_error.DummyClient": {"executed_lines": [44], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 7, 8, 9, 10, 11, 12, 15, 16, 19, 20, 22, 23, 25, 26, 28, 29, 31, 32, 34, 35, 36, 39, 40, 42, 43, 46, 48, 49, 51, 52, 54, 55, 56], "summary": {"covered_lines": 36, "num_statements": 36, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_background_relay_check.py": {"executed_lines": [1, 2, 3, 4, 5, 7, 9, 10, 13, 14, 15, 16, 17, 18, 23, 24, 26, 29, 30, 31, 32, 33, 34, 36, 37, 39, 40, 41], "summary": {"covered_lines": 28, "num_statements": 28, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_background_relay_check_runs_async": {"executed_lines": [14, 15, 16, 17, 18, 23, 24, 26], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_background_relay_check_warns_when_unhealthy": {"executed_lines": [30, 31, 32, 33, 34, 36, 37, 39, 40, 41], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 7, 9, 10, 13, 29], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 5, 7, 9, 10, 13, 14, 15, 16, 17, 18, 23, 24, 26, 29, 30, 31, 32, 33, 34, 36, 37, 39, 40, 41], "summary": {"covered_lines": 28, "num_statements": 28, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_background_sync_always.py": {"executed_lines": [1, 2, 3, 5, 7, 8, 11, 12, 13, 14, 19, 20, 21, 22, 23, 25, 26, 29, 30, 31, 33, 35, 36, 38, 40, 41, 44, 45, 46, 47, 49, 50, 53, 54, 55, 56, 58, 60, 61, 63, 65, 66], "summary": {"covered_lines": 42, "num_statements": 42, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_switch_fingerprint_triggers_bg_sync": {"executed_lines": [12, 13, 14, 19, 20, 21, 22, 23, 25, 26, 29, 30, 31, 33, 35, 38, 40, 41], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_switch_fingerprint_triggers_bg_sync.fake_bg": {"executed_lines": [36], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_exit_managed_account_triggers_bg_sync": {"executed_lines": [45, 46, 47, 49, 50, 53, 54, 55, 56, 58, 60, 63, 65, 66], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_exit_managed_account_triggers_bg_sync.fake_bg": {"executed_lines": [61], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 5, 7, 8, 11, 44], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 5, 7, 8, 11, 12, 13, 14, 19, 20, 21, 22, 23, 25, 26, 29, 30, 31, 33, 35, 36, 38, 40, 41, 44, 45, 46, 47, 49, 50, 53, 54, 55, 56, 58, 60, 61, 63, 65, 66], "summary": {"covered_lines": 42, "num_statements": 42, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_background_vault_sync_paths.py": {"executed_lines": [1, 3, 4, 7, 8, 9, 11, 13, 14, 16, 17, 21, 22, 23, 24, 26, 27, 29, 31, 33, 34, 37, 38, 39, 41, 43, 44, 46, 47, 51, 52, 53, 55, 57, 58], "summary": {"covered_lines": 35, "num_statements": 35, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_start_background_vault_sync_thread_worker_path": {"executed_lines": [8, 9, 11, 13, 16, 17, 21, 22, 26, 29, 31, 33, 34], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_start_background_vault_sync_thread_worker_path.fake_sync_vault_async": {"executed_lines": [14], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_start_background_vault_sync_thread_worker_path.ImmediateThread.__init__": {"executed_lines": [23, 24], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_start_background_vault_sync_thread_worker_path.ImmediateThread.start": {"executed_lines": [27], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_start_background_vault_sync_async_worker_path": {"executed_lines": [38, 39, 41, 43, 46, 47, 51, 55, 57, 58], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_start_background_vault_sync_async_worker_path.fake_sync_vault_async": {"executed_lines": [44], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_start_background_vault_sync_async_worker_path.runner": {"executed_lines": [52, 53], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 4, 7, 37], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"test_start_background_vault_sync_thread_worker_path.ImmediateThread": {"executed_lines": [23, 24, 27], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 4, 7, 8, 9, 11, 13, 14, 16, 17, 21, 22, 26, 29, 31, 33, 34, 37, 38, 39, 41, 43, 44, 46, 47, 51, 52, 53, 55, 57, 58], "summary": {"covered_lines": 32, "num_statements": 32, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_backup_interval.py": {"executed_lines": [1, 2, 3, 5, 7, 8, 11, 12, 13, 14, 15, 16, 17, 19, 21, 22, 23, 24, 26, 27, 28, 29, 31, 32, 33, 34], "summary": {"covered_lines": 26, "num_statements": 26, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_backup_interval": {"executed_lines": [12, 13, 14, 15, 16, 17, 19, 21, 22, 23, 24, 26, 27, 28, 29, 31, 32, 33, 34], "summary": {"covered_lines": 19, "num_statements": 19, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 5, 7, 8, 11], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 5, 7, 8, 11, 12, 13, 14, 15, 16, 17, 19, 21, 22, 23, 24, 26, 27, 28, 29, 31, 32, 33, 34], "summary": {"covered_lines": 26, "num_statements": 26, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_backup_restore.py": {"executed_lines": [1, 2, 3, 4, 5, 7, 9, 11, 12, 15, 16, 17, 18, 19, 20, 22, 24, 39, 40, 42, 43, 44, 45, 46, 47, 49, 64, 65, 67, 68, 69, 70, 71, 72, 74, 75, 76, 78, 79, 80, 82, 83, 84, 85, 88, 89, 90, 91, 92, 93, 94, 96, 98, 99, 101, 102, 104, 105, 106, 107], "summary": {"covered_lines": 60, "num_statements": 60, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_backup_restore_workflow": {"executed_lines": [16, 17, 18, 19, 20, 22, 24, 39, 40, 42, 43, 44, 45, 46, 47, 49, 64, 65, 67, 68, 69, 70, 71, 72, 74, 75, 76, 78, 79, 80, 82, 83, 84, 85], "summary": {"covered_lines": 34, "num_statements": 34, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_additional_backup_location": {"executed_lines": [89, 90, 91, 92, 93, 94, 96, 98, 99, 101, 102, 104, 105, 106, 107], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 7, 9, 11, 12, 15, 88], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 5, 7, 9, 11, 12, 15, 16, 17, 18, 19, 20, 22, 24, 39, 40, 42, 43, 44, 45, 46, 47, 49, 64, 65, 67, 68, 69, 70, 71, 72, 74, 75, 76, 78, 79, 80, 82, 83, 84, 85, 88, 89, 90, 91, 92, 93, 94, 96, 98, 99, 101, 102, 104, 105, 106, 107], "summary": {"covered_lines": 60, "num_statements": 60, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_backup_restore_startup.py": {"executed_lines": [1, 2, 5, 6, 7, 8, 10, 11, 13, 14, 15, 16, 17, 19, 20, 21, 23, 24, 25, 26, 27, 28, 31, 32, 33, 34, 36, 37, 39, 40, 41, 42, 43, 45, 46, 47, 48, 49, 51, 52, 53, 54, 55, 56], "summary": {"covered_lines": 44, "num_statements": 44, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_cli_flag_restores_before_init": {"executed_lines": [6, 7, 8, 10, 13, 14, 19, 20, 21, 23, 24, 25, 26, 27, 28], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_cli_flag_restores_before_init.fake_restore": {"executed_lines": [11], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_cli_flag_restores_before_init.DummyPM.__init__": {"executed_lines": [15, 16, 17], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_menu_option_restores_before_init": {"executed_lines": [32, 33, 34, 36, 39, 40, 45, 46, 47, 48, 49, 51, 52, 53, 54, 55, 56], "summary": {"covered_lines": 17, "num_statements": 17, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_menu_option_restores_before_init.fake_restore": {"executed_lines": [37], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_menu_option_restores_before_init.DummyPM.__init__": {"executed_lines": [41, 42, 43], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 5, 31], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"test_cli_flag_restores_before_init.DummyPM": {"executed_lines": [15, 16, 17], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_menu_option_restores_before_init.DummyPM": {"executed_lines": [41, 42, 43], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 5, 6, 7, 8, 10, 11, 13, 14, 19, 20, 21, 23, 24, 25, 26, 27, 28, 31, 32, 33, 34, 36, 37, 39, 40, 45, 46, 47, 48, 49, 51, 52, 53, 54, 55, 56], "summary": {"covered_lines": 38, "num_statements": 38, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_bip85_derivation_path.py": {"executed_lines": [1, 4, 5, 6, 8, 9, 11, 12, 15, 16, 17, 19, 20, 21, 24, 25, 26, 27, 29, 35, 36, 42, 45, 46, 47, 48, 50, 52], "summary": {"covered_lines": 28, "num_statements": 28, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"DummyChild.PrivateKey": {"executed_lines": [6], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "DummyChild.Raw": {"executed_lines": [9], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "DummyChild.ToBytes": {"executed_lines": [12], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "DummyCtx.__init__": {"executed_lines": [17], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "DummyCtx.DerivePath": {"executed_lines": [20, 21], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_derivation_paths_for_entropy_lengths": {"executed_lines": [25, 26, 27, 29, 35, 36, 42], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_default_word_count_from_entropy_bytes": {"executed_lines": [46, 47, 48, 50, 52], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 4, 5, 8, 11, 15, 16, 19, 24, 45], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"DummyChild": {"executed_lines": [6, 9, 12], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "DummyCtx": {"executed_lines": [17, 20, 21], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 4, 5, 8, 11, 15, 16, 19, 24, 25, 26, 27, 29, 35, 36, 42, 45, 46, 47, 48, 50, 52], "summary": {"covered_lines": 22, "num_statements": 22, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_bip85_init.py": {"executed_lines": [1, 2, 4, 6, 7, 8, 9, 11, 14, 15, 16, 17, 20, 21, 22, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 36, 38, 39], "summary": {"covered_lines": 28, "num_statements": 28, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_init_with_seed_bytes": {"executed_lines": [15, 16, 17], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_init_with_xprv": {"executed_lines": [21, 22], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_initialize_bip85_works_while_locked": {"executed_lines": [26, 27, 28, 29, 30, 31, 32, 33, 34, 36, 38, 39], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 6, 7, 8, 9, 11, 14, 20, 25], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 4, 6, 7, 8, 9, 11, 14, 15, 16, 17, 20, 21, 22, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 36, 38, 39], "summary": {"covered_lines": 28, "num_statements": 28, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_bip85_vectors.py": {"executed_lines": [1, 2, 3, 5, 7, 8, 12, 14, 16, 18, 20, 21, 22, 25, 26, 27, 30, 31, 34, 35, 38, 39, 42, 43, 46, 47, 50, 51, 54, 55, 56, 57, 58], "summary": {"covered_lines": 33, "num_statements": 33, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"bip85": {"executed_lines": [27], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_bip85_mnemonic_12": {"executed_lines": [31], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_bip85_mnemonic_24": {"executed_lines": [35], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_bip85_symmetric_key": {"executed_lines": [39], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_derive_totp_secret": {"executed_lines": [43], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_derive_ssh_key": {"executed_lines": [47], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_derive_seed_phrase": {"executed_lines": [51], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_invalid_params": {"executed_lines": [55, 56, 57, 58], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 5, 7, 8, 12, 14, 16, 18, 20, 21, 22, 25, 26, 30, 34, 38, 42, 46, 50, 54], "summary": {"covered_lines": 22, "num_statements": 22, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 5, 7, 8, 12, 14, 16, 18, 20, 21, 22, 25, 26, 27, 30, 31, 34, 35, 38, 39, 42, 43, 46, 47, 50, 51, 54, 55, 56, 57, 58], "summary": {"covered_lines": 33, "num_statements": 33, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_check_critical_coverage.py": {"executed_lines": [1, 3, 4, 5, 7, 10, 11, 12, 13, 16, 17, 18, 19, 20, 23, 26, 27, 30, 31, 34, 44, 45, 46, 49, 50, 56, 57, 60, 61, 62, 78, 81, 82, 83, 84], "summary": {"covered_lines": 35, "num_statements": 35, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"_load_module": {"executed_lines": [11, 12, 13, 16, 17, 18, 19, 20], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_parse_threshold_overrides_valid": {"executed_lines": [27, 30, 31], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_parse_threshold_overrides_invalid": {"executed_lines": [45, 46], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_find_file_payload_accepts_absolute_path_suffix": {"executed_lines": [50, 56, 57], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_compute_function_coverage_reports_uncovered": {"executed_lines": [61, 62, 78, 81, 82, 83, 84], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 4, 5, 7, 10, 23, 26, 34, 44, 49, 60], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 3, 4, 5, 7, 10, 11, 12, 13, 16, 17, 18, 19, 20, 23, 26, 27, 30, 31, 34, 44, 45, 46, 49, 50, 56, 57, 60, 61, 62, 78, 81, 82, 83, 84], "summary": {"covered_lines": 35, "num_statements": 35, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_checksum_utils.py": {"executed_lines": [1, 2, 3, 5, 8, 9, 10, 13, 16, 17, 18, 19, 20, 21, 22, 25, 26, 27, 30, 31, 32, 33, 34, 36, 37, 38, 41, 42, 43, 44, 45, 46, 47], "summary": {"covered_lines": 33, "num_statements": 33, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_json_checksum": {"executed_lines": [9, 10, 13], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_calculate_checksum": {"executed_lines": [17, 18, 19, 20, 21, 22], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_calculate_checksum_missing": {"executed_lines": [26, 27], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_verify_and_update": {"executed_lines": [31, 32, 33, 34, 36, 37, 38], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_initialize_checksum": {"executed_lines": [42, 43, 44, 45, 46, 47], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 5, 8, 16, 25, 30, 41], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 5, 8, 9, 10, 13, 16, 17, 18, 19, 20, 21, 22, 25, 26, 27, 30, 31, 32, 33, 34, 36, 37, 38, 41, 42, 43, 44, 45, 46, 47], "summary": {"covered_lines": 33, "num_statements": 33, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_cli_clipboard_flag.py": {"executed_lines": [1, 3, 4, 5, 7, 10, 11, 12, 13, 15, 16, 18, 19, 20, 21, 23, 26, 27, 30, 31, 32, 35, 36, 39, 42, 43], "summary": {"covered_lines": 26, "num_statements": 26, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"_stub_service": {"executed_lines": [11, 12, 15, 18, 23], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "_stub_service.Service.search_entries": {"executed_lines": [13], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "_stub_service.Service.retrieve_entry": {"executed_lines": [16], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "_stub_service.Service.generate_password": {"executed_lines": [19, 20, 21], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_entry_get_handles_missing_clipboard": {"executed_lines": [27, 30, 31, 32], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_entry_get_no_clipboard_flag": {"executed_lines": [36, 39, 42, 43], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 4, 5, 7, 10, 26, 35], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"_stub_service.Service": {"executed_lines": [13, 16, 19, 20, 21], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 4, 5, 7, 10, 11, 12, 15, 18, 23, 26, 27, 30, 31, 32, 35, 36, 39, 42, 43], "summary": {"covered_lines": 21, "num_statements": 21, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_cli_config_set_extra.py": {"executed_lines": [1, 2, 3, 5, 6, 8, 11, 31, 32, 34, 35, 36, 38, 42, 44, 46, 47, 48, 49, 50], "summary": {"covered_lines": 20, "num_statements": 20, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_config_set_variants": {"executed_lines": [32, 34, 38, 42, 44, 46, 47, 48, 49, 50], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_config_set_variants.func": {"executed_lines": [35, 36], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 5, 6, 8, 11, 31], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 5, 6, 8, 11, 31, 32, 34, 35, 36, 38, 42, 44, 46, 47, 48, 49, 50], "summary": {"covered_lines": 20, "num_statements": 20, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_cli_core_services.py": {"executed_lines": [1, 3, 4, 6, 7, 8, 9, 11, 14, 15, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 30, 31, 33, 34, 35, 37, 38, 39, 41, 42, 43, 45, 53, 56, 57, 58, 59, 60, 63, 66, 67, 68, 71, 72, 73, 74], "summary": {"covered_lines": 46, "num_statements": 46, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_cli_vault_unlock": {"executed_lines": [15, 17, 21, 22, 23, 24, 25, 26, 27], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_cli_vault_unlock.unlock_vault": {"executed_lines": [18, 19], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_cli_entry_add_search_sync": {"executed_lines": [31, 33, 37, 41, 45, 53, 56, 57, 58, 59, 60, 63, 66, 67, 68, 71, 72, 73, 74], "summary": {"covered_lines": 19, "num_statements": 19, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_cli_entry_add_search_sync.add_entry": {"executed_lines": [34, 35], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_cli_entry_add_search_sync.search_entries": {"executed_lines": [38, 39], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_cli_entry_add_search_sync.start_background_vault_sync": {"executed_lines": [42, 43], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 4, 6, 7, 8, 9, 11, 14, 30], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 3, 4, 6, 7, 8, 9, 11, 14, 15, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 30, 31, 33, 34, 35, 37, 38, 39, 41, 42, 43, 45, 53, 56, 57, 58, 59, 60, 63, 66, 67, 68, 71, 72, 73, 74], "summary": {"covered_lines": 46, "num_statements": 46, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_cli_doc_examples.py": {"executed_lines": [1, 2, 3, 4, 5, 7, 9, 10, 11, 12, 13, 16, 17, 18, 40, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 57, 60, 65, 66, 82, 83, 84, 87, 88, 89, 90, 91, 92, 93, 94, 95, 98, 101, 102, 103, 104, 105, 108, 111, 114, 115, 116, 117, 118], "summary": {"covered_lines": 56, "num_statements": 56, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"DummyPM.__init__": {"executed_lines": [18, 40, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 57, 60, 65, 66, 82, 83, 84], "summary": {"covered_lines": 21, "num_statements": 21, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "load_doc_commands": {"executed_lines": [88, 89, 90, 91, 92, 93, 94, 95], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "_setup": {"executed_lines": [102, 103, 104, 105, 108], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_doc_cli_examples": {"executed_lines": [116, 117, 118], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 7, 9, 10, 11, 12, 13, 16, 17, 87, 98, 101, 111, 114, 115], "summary": {"covered_lines": 19, "num_statements": 19, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"DummyPM": {"executed_lines": [18, 40, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 57, 60, 65, 66, 82, 83, 84], "summary": {"covered_lines": 21, "num_statements": 21, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 7, 9, 10, 11, 12, 13, 16, 17, 87, 88, 89, 90, 91, 92, 93, 94, 95, 98, 101, 102, 103, 104, 105, 108, 111, 114, 115, 116, 117, 118], "summary": {"covered_lines": 35, "num_statements": 35, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_cli_entry_add_commands.py": {"executed_lines": [1, 2, 3, 5, 6, 7, 9, 12, 138, 141, 143, 144, 145, 146, 148, 149, 151, 157, 158, 159, 160, 161, 162, 163], "summary": {"covered_lines": 24, "num_statements": 24, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_entry_add_commands": {"executed_lines": [141, 143, 148, 151, 157, 158, 159, 160, 161, 162, 163], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_entry_add_commands.func": {"executed_lines": [144, 145, 146], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_entry_add_commands.start_background_vault_sync": {"executed_lines": [149], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 5, 6, 7, 9, 12, 138], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 5, 6, 7, 9, 12, 138, 141, 143, 144, 145, 146, 148, 149, 151, 157, 158, 159, 160, 161, 162, 163], "summary": {"covered_lines": 24, "num_statements": 24, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_cli_export_import.py": {"executed_lines": [1, 2, 4, 6, 8, 9, 10, 11, 12, 15, 16, 17, 18, 19, 28, 31, 32, 33, 46, 48, 49, 50, 51, 53, 54, 55, 56, 59, 60, 61, 74, 76, 77, 84, 86, 87, 88, 89, 91, 92, 93, 96, 97, 98, 111, 113, 114, 115, 116, 118, 119, 120, 121, 123, 124, 125, 126], "summary": {"covered_lines": 57, "num_statements": 57, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"_setup_pm": {"executed_lines": [16, 17, 18, 19, 28], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_cli_export_creates_file": {"executed_lines": [32, 33, 46, 48, 49, 50, 51, 53, 54, 55, 56], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_cli_import_round_trip": {"executed_lines": [60, 61, 74, 76, 77, 84, 86, 87, 88, 89, 91, 92, 93], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_cli_export_import_unencrypted": {"executed_lines": [97, 98, 111, 113, 114, 115, 116, 118, 119, 120, 121, 123, 124, 125, 126], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 6, 8, 9, 10, 11, 12, 15, 31, 59, 96], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 4, 6, 8, 9, 10, 11, 12, 15, 16, 17, 18, 19, 28, 31, 32, 33, 46, 48, 49, 50, 51, 53, 54, 55, 56, 59, 60, 61, 74, 76, 77, 84, 86, 87, 88, 89, 91, 92, 93, 96, 97, 98, 111, 113, 114, 115, 116, 118, 119, 120, 121, 123, 124, 125, 126], "summary": {"covered_lines": 57, "num_statements": 57, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_cli_integration.py": {"executed_lines": [1, 2, 3, 4, 6, 8, 9, 10, 11, 12, 15, 17, 18, 19, 20, 21, 22, 23, 26, 27, 28, 29, 32, 33, 34, 37, 42, 47, 51, 56, 57, 59, 61, 63, 65, 66, 67, 68, 69, 71], "summary": {"covered_lines": 40, "num_statements": 41, "percent_covered": 97.5609756097561, "percent_covered_display": "98", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [52], "excluded_lines": [], "functions": {"test_cli_integration": {"executed_lines": [17, 18, 19, 20, 21, 22, 23, 26, 27, 28, 29, 32, 33, 34, 37, 42, 47, 51, 56, 57, 59, 61, 63, 65, 66, 67, 68, 69, 71], "summary": {"covered_lines": 29, "num_statements": 29, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_cli_integration.auto_add": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [52], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 6, 8, 9, 10, 11, 12, 15], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 6, 8, 9, 10, 11, 12, 15, 17, 18, 19, 20, 21, 22, 23, 26, 27, 28, 29, 32, 33, 34, 37, 42, 47, 51, 56, 57, 59, 61, 63, 65, 66, 67, 68, 69, 71], "summary": {"covered_lines": 40, "num_statements": 41, "percent_covered": 97.5609756097561, "percent_covered_display": "98", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [52], "excluded_lines": []}}}, "src/tests/test_cli_invalid_input.py": {"executed_lines": [1, 2, 3, 4, 6, 8, 10, 13, 14, 15, 17, 20, 23, 26, 27, 29, 30, 32, 33, 34, 36, 52, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104], "summary": {"covered_lines": 66, "num_statements": 69, "percent_covered": 95.65217391304348, "percent_covered_display": "96", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [18, 21, 24], "excluded_lines": [], "functions": {"_make_pm": {"executed_lines": [14, 15, 17, 20, 23, 26, 29, 32, 36, 52], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "_make_pm.add": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [18], "excluded_lines": []}, "_make_pm.retrieve": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [21], "excluded_lines": []}, "_make_pm.modify": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [24], "excluded_lines": []}, "_make_pm.update": {"executed_lines": [27], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "_make_pm.lock": {"executed_lines": [30], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "_make_pm.unlock": {"executed_lines": [33, 34], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_empty_and_non_numeric_choice": {"executed_lines": [56, 57, 58, 59, 60, 61, 62, 63, 64], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_out_of_range_menu": {"executed_lines": [68, 69, 70, 71, 72, 73, 74, 75, 76], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_invalid_add_entry_submenu": {"executed_lines": [80, 81, 82, 83, 84, 85, 86, 87, 88, 89], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_inactivity_timeout_loop": {"executed_lines": [93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 6, 8, 10, 13, 55, 67, 79, 92], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 6, 8, 10, 13, 14, 15, 17, 20, 23, 26, 27, 29, 30, 32, 33, 34, 36, 52, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104], "summary": {"covered_lines": 66, "num_statements": 69, "percent_covered": 95.65217391304348, "percent_covered_display": "96", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [18, 21, 24], "excluded_lines": []}}}, "src/tests/test_cli_relays.py": {"executed_lines": [1, 2, 4, 5, 8, 9, 10, 12, 15, 16, 18, 19, 21, 23, 24, 26, 28, 31, 34, 35, 37, 38, 40, 41, 43, 44, 46, 47, 48, 49, 51, 52, 53], "summary": {"covered_lines": 33, "num_statements": 37, "percent_covered": 89.1891891891892, "percent_covered_display": "89", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [13, 20, 25, 27], "excluded_lines": [], "functions": {"DummyService.__init__": {"executed_lines": [10], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "DummyService.get_pubkey": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [13], "excluded_lines": []}, "DummyService.list_relays": {"executed_lines": [16], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "DummyService.add_relay": {"executed_lines": [19, 21], "summary": {"covered_lines": 2, "num_statements": 3, "percent_covered": 66.66666666666667, "percent_covered_display": "67", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [20], "excluded_lines": []}, "DummyService.remove_relay": {"executed_lines": [24, 26, 28], "summary": {"covered_lines": 3, "num_statements": 5, "percent_covered": 60.0, "percent_covered_display": "60", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [25, 27], "excluded_lines": []}, "test_cli_relay_crud": {"executed_lines": [35, 37, 40, 41, 43, 44, 46, 47, 48, 49, 51, 52, 53], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_cli_relay_crud.pm_factory": {"executed_lines": [38], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 5, 8, 9, 12, 15, 18, 23, 31, 34], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"DummyService": {"executed_lines": [10, 16, 19, 21, 24, 26, 28], "summary": {"covered_lines": 7, "num_statements": 11, "percent_covered": 63.63636363636363, "percent_covered_display": "64", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [13, 20, 25, 27], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 5, 8, 9, 12, 15, 18, 23, 31, 34, 35, 37, 38, 40, 41, 43, 44, 46, 47, 48, 49, 51, 52, 53], "summary": {"covered_lines": 26, "num_statements": 26, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_cli_subcommands.py": {"executed_lines": [1, 2, 3, 5, 7, 8, 11, 12, 17, 18, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 54, 55, 56, 57, 58, 59, 60, 61, 62, 65, 66, 67, 68, 69, 70, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 85, 86, 90, 91, 92, 93, 94, 95, 96, 97, 98, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 114, 115, 119, 120, 121, 122, 123, 124, 125, 126, 127, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 143, 145, 147, 148, 149, 151, 152, 153, 154, 156, 157, 158], "summary": {"covered_lines": 113, "num_statements": 113, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"make_pm": {"executed_lines": [12, 17, 18, 26], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_search_command": {"executed_lines": [30, 31, 32, 33, 34, 35, 36, 37, 38], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_get_command": {"executed_lines": [42, 43, 44, 45, 46, 47, 48, 49, 50, 51], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_totp_command": {"executed_lines": [55, 56, 57, 58, 59, 60, 61, 62, 65, 66, 67, 68, 69, 70], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_search_command_no_results": {"executed_lines": [74, 75, 76, 77, 78, 79, 80, 81, 82], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_get_command_multiple_matches": {"executed_lines": [86, 90, 91, 92, 93, 94, 95, 96, 97, 98], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_get_command_wrong_type": {"executed_lines": [102, 103, 104, 105, 106, 107, 108, 109, 110, 111], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_totp_command_multiple_matches": {"executed_lines": [115, 119, 120, 121, 122, 123, 124, 125, 126, 127], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_totp_command_wrong_type": {"executed_lines": [131, 132, 133, 134, 135, 136, 137, 138, 139, 140], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_main_fingerprint_option": {"executed_lines": [145, 147, 151, 152, 153, 154, 156, 157, 158], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_main_fingerprint_option.fake_pm": {"executed_lines": [148, 149], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 5, 7, 8, 11, 29, 41, 54, 73, 85, 101, 114, 130, 143], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 5, 7, 8, 11, 12, 17, 18, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 54, 55, 56, 57, 58, 59, 60, 61, 62, 65, 66, 67, 68, 69, 70, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 85, 86, 90, 91, 92, 93, 94, 95, 96, 97, 98, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 114, 115, 119, 120, 121, 122, 123, 124, 125, 126, 127, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 143, 145, 147, 148, 149, 151, 152, 153, 154, 156, 157, 158], "summary": {"covered_lines": 113, "num_statements": 113, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_cli_toggle_offline_mode.py": {"executed_lines": [1, 2, 4, 5, 7, 10, 11, 15, 20, 23, 24, 25, 26, 27, 28, 29, 30, 33, 34, 35, 36, 37, 38, 39, 40], "summary": {"covered_lines": 25, "num_statements": 25, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"_make_pm": {"executed_lines": [11, 15, 20], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_toggle_offline_updates": {"executed_lines": [24, 25, 26, 27, 28, 29, 30], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_toggle_offline_keep": {"executed_lines": [34, 35, 36, 37, 38, 39, 40], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 5, 7, 10, 23, 33], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 4, 5, 7, 10, 11, 15, 20, 23, 24, 25, 26, 27, 28, 29, 30, 33, 34, 35, 36, 37, 38, 39, 40], "summary": {"covered_lines": 25, "num_statements": 25, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_cli_toggle_secret_mode.py": {"executed_lines": [1, 2, 3, 5, 6, 8, 11, 12, 18, 24, 27, 28, 29, 30, 31, 32, 33, 34, 37, 38, 39, 40, 41, 42, 43, 44], "summary": {"covered_lines": 26, "num_statements": 26, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"_make_pm": {"executed_lines": [12, 18, 24], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_toggle_secret_mode_updates": {"executed_lines": [28, 29, 30, 31, 32, 33, 34], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_toggle_secret_mode_keep": {"executed_lines": [38, 39, 40, 41, 42, 43, 44], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 5, 6, 8, 11, 27, 37], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 5, 6, 8, 11, 12, 18, 24, 27, 28, 29, 30, 31, 32, 33, 34, 37, 38, 39, 40, 41, 42, 43, 44], "summary": {"covered_lines": 26, "num_statements": 26, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_cli_vault_stats.py": {"executed_lines": [1, 2, 3, 5, 6, 8, 11, 12, 16, 19, 20, 21, 22, 24, 25], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_vault_stats_command": {"executed_lines": [12, 16, 19, 20, 21, 22, 24, 25], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 5, 6, 8, 11], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 5, 6, 8, 11, 12, 16, 19, 20, 21, 22, 24, 25], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_clipboard_utils.py": {"executed_lines": [1, 2, 3, 4, 6, 8, 10, 12, 15, 16, 18, 19, 21, 22, 24, 26, 27, 28, 29, 31, 32, 34, 35, 36, 38, 39, 40, 41, 42, 43, 46, 47, 49, 50, 52, 53, 55, 57, 58, 59, 61, 62, 64, 65, 66, 68, 69, 70, 71, 74, 75, 76, 78, 79, 80, 82, 83], "summary": {"covered_lines": 57, "num_statements": 57, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_copy_to_clipboard_clears": {"executed_lines": [16, 18, 21, 24, 26, 27, 31, 34, 35, 36, 38, 39, 40, 41, 42, 43], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_copy_to_clipboard_clears.fake_copy": {"executed_lines": [19], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_copy_to_clipboard_clears.fake_paste": {"executed_lines": [22], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_copy_to_clipboard_clears.DummyTimer.__init__": {"executed_lines": [28, 29], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_copy_to_clipboard_clears.DummyTimer.start": {"executed_lines": [32], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_copy_to_clipboard_does_not_clear_if_changed": {"executed_lines": [47, 49, 52, 55, 57, 58, 61, 64, 65, 66, 68, 69, 70, 71], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_copy_to_clipboard_does_not_clear_if_changed.fake_copy": {"executed_lines": [50], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_copy_to_clipboard_does_not_clear_if_changed.fake_paste": {"executed_lines": [53], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_copy_to_clipboard_does_not_clear_if_changed.DummyTimer.__init__": {"executed_lines": [59], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_copy_to_clipboard_does_not_clear_if_changed.DummyTimer.start": {"executed_lines": [62], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_copy_to_clipboard_missing_dependency": {"executed_lines": [75, 78, 79, 80, 82, 83], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_copy_to_clipboard_missing_dependency.fail_copy": {"executed_lines": [76], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 6, 8, 10, 12, 15, 46, 74], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"test_copy_to_clipboard_clears.DummyTimer": {"executed_lines": [28, 29, 32], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_copy_to_clipboard_does_not_clear_if_changed.DummyTimer": {"executed_lines": [59, 62], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 6, 8, 10, 12, 15, 16, 18, 19, 21, 22, 24, 26, 27, 31, 34, 35, 36, 38, 39, 40, 41, 42, 43, 46, 47, 49, 50, 52, 53, 55, 57, 58, 61, 64, 65, 66, 68, 69, 70, 71, 74, 75, 76, 78, 79, 80, 82, 83], "summary": {"covered_lines": 52, "num_statements": 52, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_concurrency_stress.py": {"executed_lines": [1, 2, 3, 4, 5, 6, 8, 10, 11, 12, 13, 14, 17, 29, 39, 51, 52, 53, 54, 55, 56, 57, 58, 59, 61, 62, 70, 71, 72, 73, 75, 76, 79, 81, 82], "summary": {"covered_lines": 35, "num_statements": 55, "percent_covered": 63.63636363636363, "percent_covered_display": "64", "missing_lines": 20, "excluded_lines": 6}, "missing_lines": [18, 19, 20, 21, 22, 23, 24, 30, 31, 32, 33, 34, 40, 41, 42, 43, 44, 45, 46, 77], "excluded_lines": [25, 26, 35, 36, 47, 48], "functions": {"_writer": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 7, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 7, "excluded_lines": 2}, "missing_lines": [18, 19, 20, 21, 22, 23, 24], "excluded_lines": [25, 26]}, "_reader": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 2}, "missing_lines": [30, 31, 32, 33, 34], "excluded_lines": [35, 36]}, "_backup": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 7, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 7, "excluded_lines": 2}, "missing_lines": [40, 41, 42, 43, 44, 45, 46], "excluded_lines": [47, 48]}, "test_concurrency_stress": {"executed_lines": [54, 55, 56, 57, 58, 59, 61, 62, 70, 71, 72, 73, 75, 76, 79, 81, 82], "summary": {"covered_lines": 17, "num_statements": 18, "percent_covered": 94.44444444444444, "percent_covered_display": "94", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [77], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 6, 8, 10, 11, 12, 13, 14, 17, 29, 39, 51, 52, 53], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 5, 6, 8, 10, 11, 12, 13, 14, 17, 29, 39, 51, 52, 53, 54, 55, 56, 57, 58, 59, 61, 62, 70, 71, 72, 73, 75, 76, 79, 81, 82], "summary": {"covered_lines": 35, "num_statements": 55, "percent_covered": 63.63636363636363, "percent_covered_display": "64", "missing_lines": 20, "excluded_lines": 6}, "missing_lines": [18, 19, 20, 21, 22, 23, 24, 30, 31, 32, 33, 34, 40, 41, 42, 43, 44, 45, 46, 77], "excluded_lines": [25, 26, 35, 36, 47, 48]}}}, "src/tests/test_config_manager.py": {"executed_lines": [1, 2, 3, 4, 5, 6, 8, 10, 11, 12, 13, 16, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 29, 30, 32, 33, 34, 37, 38, 39, 40, 42, 43, 44, 45, 46, 49, 52, 53, 54, 55, 57, 58, 60, 61, 62, 64, 65, 66, 67, 70, 71, 72, 73, 74, 75, 76, 79, 80, 81, 82, 83, 84, 87, 88, 89, 90, 92, 93, 95, 96, 97, 100, 101, 102, 105, 106, 108, 109, 111, 112, 114, 115, 116, 119, 120, 121, 122, 125, 127, 128, 129, 130, 132, 133, 134, 137, 138, 139, 140, 142, 143, 144, 146, 147, 148, 149, 150, 153, 154, 155, 156, 158, 160, 161, 164, 165, 166, 167, 169, 171, 172, 175, 176, 177, 178, 180, 182, 183, 186, 187, 188, 189, 191, 192, 193, 195, 196, 197, 198, 201, 202, 203, 204, 206, 207, 208, 209, 210, 212, 213, 214, 215, 217, 218, 219, 220, 221, 224, 225, 226, 227, 229, 230, 231, 232, 234, 235, 236, 237, 238], "summary": {"covered_lines": 171, "num_statements": 171, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_config_defaults_and_round_trip": {"executed_lines": [17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 29, 30, 32, 33, 34], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_pin_verification_and_change": {"executed_lines": [38, 39, 40, 42, 43, 44, 45, 46], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_config_file_encrypted_after_save": {"executed_lines": [53, 54, 55, 57, 58, 60, 61, 62, 64, 65, 66, 67], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_set_relays_persists_changes": {"executed_lines": [71, 72, 73, 74, 75, 76], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_set_relays_requires_at_least_one": {"executed_lines": [80, 81, 82, 83, 84], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_inactivity_timeout_round_trip": {"executed_lines": [88, 89, 90, 92, 93, 95, 96, 97], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_password_hash_migrates_from_file": {"executed_lines": [101, 102, 105, 106, 108, 109, 111, 112, 114, 115, 116], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_additional_backup_path_round_trip": {"executed_lines": [120, 121, 122, 125, 127, 128, 129, 130, 132, 133, 134], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_secret_mode_round_trip": {"executed_lines": [138, 139, 140, 142, 143, 144, 146, 147, 148, 149, 150], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_kdf_iterations_round_trip": {"executed_lines": [154, 155, 156, 158, 160, 161], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_backup_interval_round_trip": {"executed_lines": [165, 166, 167, 169, 171, 172], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_quick_unlock_round_trip": {"executed_lines": [176, 177, 178, 180, 182, 183], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_nostr_retry_settings_round_trip": {"executed_lines": [187, 188, 189, 191, 192, 193, 195, 196, 197, 198], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_special_char_settings_round_trip": {"executed_lines": [202, 203, 204, 206, 207, 208, 209, 210, 212, 213, 214, 215, 217, 218, 219, 220, 221], "summary": {"covered_lines": 17, "num_statements": 17, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_password_policy_extended_fields": {"executed_lines": [225, 226, 227, 229, 230, 231, 232, 234, 235, 236, 237, 238], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 6, 8, 10, 11, 12, 13, 16, 37, 49, 52, 70, 79, 87, 100, 119, 137, 153, 164, 175, 186, 201, 224], "summary": {"covered_lines": 27, "num_statements": 27, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 5, 6, 8, 10, 11, 12, 13, 16, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 29, 30, 32, 33, 34, 37, 38, 39, 40, 42, 43, 44, 45, 46, 49, 52, 53, 54, 55, 57, 58, 60, 61, 62, 64, 65, 66, 67, 70, 71, 72, 73, 74, 75, 76, 79, 80, 81, 82, 83, 84, 87, 88, 89, 90, 92, 93, 95, 96, 97, 100, 101, 102, 105, 106, 108, 109, 111, 112, 114, 115, 116, 119, 120, 121, 122, 125, 127, 128, 129, 130, 132, 133, 134, 137, 138, 139, 140, 142, 143, 144, 146, 147, 148, 149, 150, 153, 154, 155, 156, 158, 160, 161, 164, 165, 166, 167, 169, 171, 172, 175, 176, 177, 178, 180, 182, 183, 186, 187, 188, 189, 191, 192, 193, 195, 196, 197, 198, 201, 202, 203, 204, 206, 207, 208, 209, 210, 212, 213, 214, 215, 217, 218, 219, 220, 221, 224, 225, 226, 227, 229, 230, 231, 232, 234, 235, 236, 237, 238], "summary": {"covered_lines": 171, "num_statements": 171, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_core_api_services.py": {"executed_lines": [1, 2, 3, 4, 5, 6, 8, 30, 31, 34, 35, 36, 37, 40, 41, 43, 46, 47, 48, 49, 50, 51, 52, 53, 56, 57, 58, 60, 63, 64, 66, 67, 70, 71, 72, 73, 75, 76, 77, 79, 80, 82, 83, 84, 86, 87, 89, 90, 91, 92, 94, 96, 97, 100, 103, 105, 106, 107, 108, 112, 114, 117, 120, 122, 123, 124, 126, 128, 129, 130, 131, 133, 134, 136, 137, 138, 140, 141, 142, 144, 148, 149, 150, 152, 154, 155, 158, 159, 160, 161, 163, 164, 165, 167, 168, 170, 171, 172, 174, 175, 177, 178, 179, 181, 185, 186, 187, 189, 192, 193, 194, 195, 197, 198, 199, 201, 203, 206, 207, 209, 210, 212, 214, 217, 219, 220, 221, 223, 224, 225, 228, 229, 230, 231, 233, 234, 235, 237, 240, 242, 243, 244, 246, 249, 251, 252, 253, 254, 256, 257, 259, 261, 262, 263, 265, 267, 268, 270, 272, 273, 275, 277, 278, 280, 281, 282, 284, 286, 287, 289, 290, 292, 294, 295, 296, 298, 299, 301, 303, 304, 305, 307, 308, 310, 312, 313, 314, 316, 317, 319, 321, 322, 323, 325, 326, 328, 330, 331, 332, 334, 335, 337, 339, 340, 341, 343, 344, 346, 348, 349, 350, 352, 353, 355, 357, 358, 359, 361, 362, 364, 375, 377, 378, 380, 381, 383, 384, 386, 387, 389, 390, 392, 394, 395, 397, 398, 399, 402, 403, 404, 405, 407, 408, 409, 411, 414, 416, 417, 418, 420, 421, 422, 426, 433, 434, 438, 439, 440, 442, 443, 444, 446, 447, 448, 450, 451, 453, 456, 459, 460, 462, 463, 464, 466, 467, 469, 470, 473, 474, 475, 476, 478, 479, 482, 483, 485, 489, 490, 493, 495, 496, 497, 499, 500, 501, 504, 505, 506, 507, 509, 510, 511, 513, 514, 515, 517, 518, 519, 521, 522, 524, 525, 526, 528, 529], "summary": {"covered_lines": 315, "num_statements": 315, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"mock_manager": {"executed_lines": [43, 46, 47, 48, 49, 50, 51, 52, 53, 56, 57, 58, 60], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "mock_bus": {"executed_lines": [66, 67], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "TestVaultService.service": {"executed_lines": [73], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "TestVaultService.test_export_vault": {"executed_lines": [76, 77, 79, 80], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "TestVaultService.test_import_vault": {"executed_lines": [83, 84, 86, 87], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "TestVaultService.test_export_profile": {"executed_lines": [90, 91, 92, 94, 96, 97, 100, 103], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "TestVaultService.test_import_profile": {"executed_lines": [106, 107, 108, 112, 114, 117, 120], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "TestVaultService.test_change_password": {"executed_lines": [123, 124, 126], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "TestVaultService.test_unlock": {"executed_lines": [129, 130, 131, 133, 134], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "TestVaultService.test_lock": {"executed_lines": [137, 138], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "TestVaultService.test_backup_parent_seed": {"executed_lines": [141, 142, 144], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "TestVaultService.test_stats": {"executed_lines": [149, 150, 152, 154, 155], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "TestProfileService.service": {"executed_lines": [161], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "TestProfileService.test_list_profiles": {"executed_lines": [164, 165, 167, 168], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "TestProfileService.test_add_profile": {"executed_lines": [171, 172, 174, 175], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "TestProfileService.test_remove_profile": {"executed_lines": [178, 179, 181], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "TestProfileService.test_switch_profile": {"executed_lines": [186, 187, 189], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "TestSyncService.service": {"executed_lines": [195], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "TestSyncService.test_sync": {"executed_lines": [198, 199, 201, 203, 206, 207], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "TestSyncService.test_sync_none": {"executed_lines": [210, 212, 214, 217], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "TestSyncService.test_start_background_sync": {"executed_lines": [220, 221], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "TestSyncService.test_start_background_vault_sync": {"executed_lines": [224, 225], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "TestEntryService.service": {"executed_lines": [231], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "TestEntryService.test_list_entries": {"executed_lines": [234, 235, 237, 240], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "TestEntryService.test_search_entries": {"executed_lines": [243, 244, 246, 249], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "TestEntryService.test_retrieve_entry": {"executed_lines": [252, 253, 254, 256, 257], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "TestEntryService.test_generate_password_default": {"executed_lines": [261, 262, 263, 265, 267, 268], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "TestEntryService.test_generate_password_custom": {"executed_lines": [272, 273, 275, 277, 278], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "TestEntryService.test_get_totp_code": {"executed_lines": [281, 282, 284, 286, 287], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "TestEntryService.test_add_entry": {"executed_lines": [290, 292, 294, 295, 296], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "TestEntryService.test_add_totp": {"executed_lines": [299, 301, 303, 304, 305], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "TestEntryService.test_add_ssh_key": {"executed_lines": [308, 310, 312, 313, 314], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "TestEntryService.test_add_pgp_key": {"executed_lines": [317, 319, 321, 322, 323], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "TestEntryService.test_add_nostr_key": {"executed_lines": [326, 328, 330, 331, 332], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "TestEntryService.test_add_seed": {"executed_lines": [335, 337, 339, 340, 341], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "TestEntryService.test_add_key_value": {"executed_lines": [344, 346, 348, 349, 350], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "TestEntryService.test_add_managed_account": {"executed_lines": [353, 355, 357, 358, 359], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "TestEntryService.test_modify_entry": {"executed_lines": [362, 364, 375], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "TestEntryService.test_archive_entry": {"executed_lines": [378, 380, 381], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "TestEntryService.test_restore_entry": {"executed_lines": [384, 386, 387], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "TestEntryService.test_export_totp_entries": {"executed_lines": [390, 392, 394, 395], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "TestEntryService.test_display_totp_codes": {"executed_lines": [398, 399], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "TestConfigService.service": {"executed_lines": [405], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "TestConfigService.test_get": {"executed_lines": [408, 409, 411, 414], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "TestConfigService.test_set_simple": {"executed_lines": [417, 418], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "TestConfigService.test_set_bool": {"executed_lines": [421, 422], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "TestConfigService.test_set_relays": {"executed_lines": [433, 434], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "TestConfigService.test_set_invalid_key": {"executed_lines": [439, 440], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "TestConfigService.test_get_secret_mode_enabled": {"executed_lines": [443, 444], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "TestConfigService.test_get_clipboard_clear_delay": {"executed_lines": [447, 448], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "TestConfigService.test_set_secret_mode": {"executed_lines": [451, 453, 456, 459, 460], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "TestConfigService.test_get_offline_mode": {"executed_lines": [463, 464], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "TestConfigService.test_set_offline_mode": {"executed_lines": [467, 469, 470], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "TestUtilityService.service": {"executed_lines": [476], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "TestUtilityService.test_generate_password": {"executed_lines": [479, 482, 483, 485, 489, 490, 493], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "TestUtilityService.test_verify_checksum": {"executed_lines": [496, 497], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "TestUtilityService.test_update_checksum": {"executed_lines": [500, 501], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "TestNostrService.service": {"executed_lines": [507], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "TestNostrService.test_get_pubkey": {"executed_lines": [510, 511], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "TestNostrService.test_list_relays": {"executed_lines": [514, 515], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "TestNostrService.test_add_relay": {"executed_lines": [518, 519, 521, 522], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "TestNostrService.test_remove_relay": {"executed_lines": [525, 526, 528, 529], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 6, 8, 30, 31, 34, 35, 36, 37, 40, 41, 63, 64, 70, 71, 72, 75, 82, 89, 105, 122, 128, 136, 140, 148, 158, 159, 160, 163, 170, 177, 185, 192, 193, 194, 197, 209, 219, 223, 228, 229, 230, 233, 242, 251, 259, 270, 280, 289, 298, 307, 316, 325, 334, 343, 352, 361, 377, 383, 389, 397, 402, 403, 404, 407, 416, 420, 426, 438, 442, 446, 450, 462, 466, 473, 474, 475, 478, 495, 499, 504, 505, 506, 509, 513, 517, 524], "summary": {"covered_lines": 91, "num_statements": 91, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"MockPolicy": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "TestVaultService": {"executed_lines": [73, 76, 77, 79, 80, 83, 84, 86, 87, 90, 91, 92, 94, 96, 97, 100, 103, 106, 107, 108, 112, 114, 117, 120, 123, 124, 126, 129, 130, 131, 133, 134, 137, 138, 141, 142, 144, 149, 150, 152, 154, 155], "summary": {"covered_lines": 42, "num_statements": 42, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "TestProfileService": {"executed_lines": [161, 164, 165, 167, 168, 171, 172, 174, 175, 178, 179, 181, 186, 187, 189], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "TestSyncService": {"executed_lines": [195, 198, 199, 201, 203, 206, 207, 210, 212, 214, 217, 220, 221, 224, 225], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "TestEntryService": {"executed_lines": [231, 234, 235, 237, 240, 243, 244, 246, 249, 252, 253, 254, 256, 257, 261, 262, 263, 265, 267, 268, 272, 273, 275, 277, 278, 281, 282, 284, 286, 287, 290, 292, 294, 295, 296, 299, 301, 303, 304, 305, 308, 310, 312, 313, 314, 317, 319, 321, 322, 323, 326, 328, 330, 331, 332, 335, 337, 339, 340, 341, 344, 346, 348, 349, 350, 353, 355, 357, 358, 359, 362, 364, 375, 378, 380, 381, 384, 386, 387, 390, 392, 394, 395, 398, 399], "summary": {"covered_lines": 85, "num_statements": 85, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "TestConfigService": {"executed_lines": [405, 408, 409, 411, 414, 417, 418, 421, 422, 433, 434, 439, 440, 443, 444, 447, 448, 451, 453, 456, 459, 460, 463, 464, 467, 469, 470], "summary": {"covered_lines": 27, "num_statements": 27, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "TestUtilityService": {"executed_lines": [476, 479, 482, 483, 485, 489, 490, 493, 496, 497, 500, 501], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "TestNostrService": {"executed_lines": [507, 510, 511, 514, 515, 518, 519, 521, 522, 525, 526, 528, 529], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 6, 8, 30, 31, 34, 35, 36, 37, 40, 41, 43, 46, 47, 48, 49, 50, 51, 52, 53, 56, 57, 58, 60, 63, 64, 66, 67, 70, 71, 72, 75, 82, 89, 105, 122, 128, 136, 140, 148, 158, 159, 160, 163, 170, 177, 185, 192, 193, 194, 197, 209, 219, 223, 228, 229, 230, 233, 242, 251, 259, 270, 280, 289, 298, 307, 316, 325, 334, 343, 352, 361, 377, 383, 389, 397, 402, 403, 404, 407, 416, 420, 426, 438, 442, 446, 450, 462, 466, 473, 474, 475, 478, 495, 499, 504, 505, 506, 509, 513, 517, 524], "summary": {"covered_lines": 106, "num_statements": 106, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_core_services.py": {"executed_lines": [1, 2, 4, 5, 8, 9, 11, 12, 13, 15, 16, 17, 18, 19, 22, 23, 25, 26, 27, 29, 30, 31, 33, 34, 36, 37, 38, 44, 45, 46, 47, 48, 50, 51, 52, 55, 56, 58, 59, 60, 66, 67, 68, 69, 70, 71, 72], "summary": {"covered_lines": 47, "num_statements": 47, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_vault_service_unlock": {"executed_lines": [9, 11, 15, 16, 17, 18, 19], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_vault_service_unlock.unlock_vault": {"executed_lines": [12, 13], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_entry_service_add_entry_and_search": {"executed_lines": [23, 25, 29, 33, 36, 37, 38, 44, 45, 46, 47, 48, 50, 51, 52], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_entry_service_add_entry_and_search.add_entry": {"executed_lines": [26, 27], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_entry_service_add_entry_and_search.search_entries": {"executed_lines": [30, 31], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_entry_service_add_entry_and_search.start_background_vault_sync": {"executed_lines": [34], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_sync_service_sync": {"executed_lines": [56, 58, 66, 67, 68, 69, 70, 71, 72], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_sync_service_sync.sync_vault": {"executed_lines": [59, 60], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 5, 8, 22, 55], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 4, 5, 8, 9, 11, 12, 13, 15, 16, 17, 18, 19, 22, 23, 25, 26, 27, 29, 30, 31, 33, 34, 36, 37, 38, 44, 45, 46, 47, 48, 50, 51, 52, 55, 56, 58, 59, 60, 66, 67, 68, 69, 70, 71, 72], "summary": {"covered_lines": 47, "num_statements": 47, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_custom_fields_display.py": {"executed_lines": [1, 2, 3, 5, 8, 9, 10, 11, 13, 22, 23, 25, 26, 27, 28, 29, 30], "summary": {"covered_lines": 17, "num_statements": 17, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_retrieve_entry_shows_custom_fields": {"executed_lines": [9, 10, 11, 13, 22, 23, 25, 26, 27, 28, 29, 30], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 5, 8], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 5, 8, 9, 10, 11, 13, 22, 23, 25, 26, 27, 28, 29, 30], "summary": {"covered_lines": 17, "num_statements": 17, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_decrypt_messages.py": {"executed_lines": [1, 2, 3, 5, 6, 8, 9, 13, 16, 17, 18, 19, 21, 22, 23, 25, 26, 27, 30, 31, 32, 33, 34, 36, 40, 41, 42, 44, 45, 46, 47, 50, 51, 52, 53, 54, 56, 57, 58], "summary": {"covered_lines": 39, "num_statements": 39, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_wrong_password_message": {"executed_lines": [17, 18, 19, 21, 22, 23, 25, 26, 27], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_legacy_file_requires_migration_message": {"executed_lines": [31, 36, 40, 41, 42, 44, 45, 46, 47], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_legacy_file_requires_migration_message._fast_legacy_key": {"executed_lines": [32, 33, 34], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_corrupted_data_message": {"executed_lines": [51, 52, 53, 54, 56, 57, 58], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 5, 6, 8, 9, 13, 16, 30, 50], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 5, 6, 8, 9, 13, 16, 17, 18, 19, 21, 22, 23, 25, 26, 27, 30, 31, 32, 33, 34, 36, 40, 41, 42, 44, 45, 46, 47, 50, 51, 52, 53, 54, 56, 57, 58], "summary": {"covered_lines": 39, "num_statements": 39, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_default_encryption_mode.py": {"executed_lines": [1, 2, 4, 6, 7, 9, 10, 13, 14, 26, 28, 29], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_default_encryption_mode": {"executed_lines": [14, 26, 28, 29], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 6, 7, 9, 10, 13], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 4, 6, 7, 9, 10, 13, 14, 26, 28, 29], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_delta_merge.py": {"executed_lines": [1, 2, 4, 6, 7, 8, 9, 12, 13, 14, 15, 16, 19, 20, 21, 22, 23, 25, 26, 29, 30, 31, 32, 34, 35, 36, 37, 38, 40, 41, 42, 43, 44, 46, 47, 48, 49], "summary": {"covered_lines": 37, "num_statements": 37, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"_setup_mgr": {"executed_lines": [13, 14, 15, 16], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_merge_modified_ts": {"executed_lines": [20, 21, 22, 23, 25, 26, 29, 30, 31, 32, 34, 35, 36, 37, 38, 40, 41, 42, 43, 44, 46, 47, 48, 49], "summary": {"covered_lines": 24, "num_statements": 24, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 6, 7, 8, 9, 12, 19], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 4, 6, 7, 8, 9, 12, 13, 14, 15, 16, 19, 20, 21, 22, 23, 25, 26, 29, 30, 31, 32, 34, 35, 36, 37, 38, 40, 41, 42, 43, 44, 46, 47, 48, 49], "summary": {"covered_lines": 37, "num_statements": 37, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_duplicate_seed_profile_creation.py": {"executed_lines": [1, 2, 3, 5, 6, 7, 9, 12, 13, 14, 15, 16, 17, 18, 22, 23, 24, 26, 27, 29, 30, 31, 34, 35, 36, 37, 38, 39, 42, 43, 44, 45, 47, 48, 49, 51, 52, 53], "summary": {"covered_lines": 38, "num_statements": 38, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"_setup_pm": {"executed_lines": [13, 14, 15, 16, 17, 18, 22, 23, 26, 29, 30, 31, 34, 35, 36, 37, 38, 39], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "_setup_pm.DummyEnc.__init__": {"executed_lines": [24], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "_setup_pm.DummyEnc.encrypt_parent_seed": {"executed_lines": [27], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_duplicate_seed_profile_creation": {"executed_lines": [43, 44, 45, 47, 48, 49, 51, 52, 53], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 5, 6, 7, 9, 12, 42], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"_setup_pm.DummyEnc": {"executed_lines": [24, 27], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 5, 6, 7, 9, 12, 13, 14, 15, 16, 17, 18, 22, 23, 26, 29, 30, 31, 34, 35, 36, 37, 38, 39, 42, 43, 44, 45, 47, 48, 49, 51, 52, 53], "summary": {"covered_lines": 36, "num_statements": 36, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_edit_tags_from_retrieve.py": {"executed_lines": [1, 2, 3, 5, 8, 9, 10, 13, 14, 15, 16, 18, 20, 21, 23, 25, 26], "summary": {"covered_lines": 17, "num_statements": 17, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"FakePasswordGenerator.generate_password": {"executed_lines": [10], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_edit_tags_from_retrieve": {"executed_lines": [14, 15, 16, 18, 20, 21, 23, 25, 26], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 5, 8, 9, 13], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"FakePasswordGenerator": {"executed_lines": [10], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 5, 8, 9, 13, 14, 15, 16, 18, 20, 21, 23, 25, 26], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_encryption_checksum.py": {"executed_lines": [1, 2, 3, 4, 5, 7, 8, 10, 12, 13, 16, 17, 18, 19, 20, 22, 23, 24, 26, 27, 29, 30, 32, 33, 35, 36, 39, 40, 41, 43, 45, 46, 48, 50, 51, 53, 54, 56, 57], "summary": {"covered_lines": 39, "num_statements": 39, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_encryption_checksum_workflow": {"executed_lines": [17, 18, 19, 20, 22, 23, 24, 26, 27, 29, 30, 32, 33, 35, 36], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_update_checksum_removes_legacy": {"executed_lines": [40, 41, 43, 45, 46, 48, 50, 51, 53, 54, 56, 57], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 7, 8, 10, 12, 13, 16, 39], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 5, 7, 8, 10, 12, 13, 16, 17, 18, 19, 20, 22, 23, 24, 26, 27, 29, 30, 32, 33, 35, 36, 39, 40, 41, 43, 45, 46, 48, 50, 51, 53, 54, 56, 57], "summary": {"covered_lines": 39, "num_statements": 39, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_encryption_files.py": {"executed_lines": [1, 2, 3, 4, 6, 7, 8, 10, 12, 15, 16, 17, 18, 20, 21, 22, 23, 25, 26, 27, 30, 31, 32, 33, 35, 36, 37, 38, 39, 41, 42, 43, 46, 47, 48, 49, 51, 52, 54, 55], "summary": {"covered_lines": 40, "num_statements": 40, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_json_save_and_load_round_trip": {"executed_lines": [16, 17, 18, 20, 21, 22, 23, 25, 26, 27], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_encrypt_and_decrypt_file_binary_round_trip": {"executed_lines": [31, 32, 33, 35, 36, 37, 38, 39, 41, 42, 43], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_encrypt_file_rejects_traversal": {"executed_lines": [47, 48, 49, 51, 52, 54, 55], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 6, 7, 8, 10, 12, 15, 30, 46], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 6, 7, 8, 10, 12, 15, 16, 17, 18, 20, 21, 22, 23, 25, 26, 27, 30, 31, 32, 33, 35, 36, 37, 38, 39, 41, 42, 43, 46, 47, 48, 49, 51, 52, 54, 55], "summary": {"covered_lines": 40, "num_statements": 40, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_encryption_fuzz.py": {"executed_lines": [1, 2, 3, 4, 6, 9, 10, 15, 17, 18, 19, 20, 23, 24, 29, 31, 32, 33, 34, 35, 36, 37], "summary": {"covered_lines": 22, "num_statements": 22, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_encrypt_decrypt_roundtrip": {"executed_lines": [17, 18, 19, 20], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_corrupted_ciphertext_fails": {"executed_lines": [31, 32, 33, 34, 35, 36, 37], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 6, 9, 10, 15, 23, 24, 29], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 6, 9, 10, 15, 17, 18, 19, 20, 23, 24, 29, 31, 32, 33, 34, 35, 36, 37], "summary": {"covered_lines": 22, "num_statements": 22, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_encryption_validate_seed.py": {"executed_lines": [1, 2, 4, 5, 7, 9, 12, 13, 14, 17, 18, 19, 20, 21, 22, 25, 26, 27, 28, 29, 30], "summary": {"covered_lines": 21, "num_statements": 21, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"make_manager": {"executed_lines": [13, 14], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_validate_seed_valid_mnemonic": {"executed_lines": [18, 19, 20, 21, 22], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_validate_seed_invalid_mnemonic": {"executed_lines": [26, 27, 28, 29, 30], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 5, 7, 9, 12, 17, 25], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 4, 5, 7, 9, 12, 13, 14, 17, 18, 19, 20, 21, 22, 25, 26, 27, 28, 29, 30], "summary": {"covered_lines": 21, "num_statements": 21, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_entries_empty.py": {"executed_lines": [1, 2, 3, 4, 6, 8, 9, 10, 11, 14, 15, 16, 17, 18, 19, 21, 22], "summary": {"covered_lines": 17, "num_statements": 17, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_list_entries_empty": {"executed_lines": [15, 16, 17, 18, 19, 21, 22], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 6, 8, 9, 10, 11, 14], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 6, 8, 9, 10, 11, 14, 15, 16, 17, 18, 19, 21, 22], "summary": {"covered_lines": 17, "num_statements": 17, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_entry_add.py": {"executed_lines": [1, 2, 3, 4, 6, 7, 9, 11, 12, 13, 14, 17, 18, 19, 20, 21, 22, 24, 29, 30, 32, 45, 46, 47, 48, 49, 52, 63, 64, 65, 66, 67, 68, 70, 71, 72, 73, 74, 75, 76, 78, 79, 80, 81, 82, 83, 87, 88, 89, 90, 91, 92, 95, 96, 97, 98, 99, 100, 102, 104, 105, 106, 108, 109, 112, 125, 126, 127, 128, 129, 130, 132, 133, 134, 136, 138, 139], "summary": {"covered_lines": 77, "num_statements": 78, "percent_covered": 98.71794871794872, "percent_covered_display": "99", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [85], "excluded_lines": [], "functions": {"test_add_and_retrieve_entry": {"executed_lines": [18, 19, 20, 21, 22, 24, 29, 30, 32, 45, 46, 47, 48, 49], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_round_trip_entry_types": {"executed_lines": [64, 65, 66, 67, 68, 70, 71, 72, 73, 74, 75, 76, 78, 79, 80, 81, 82, 83, 87, 88, 89, 90, 91, 92], "summary": {"covered_lines": 24, "num_statements": 25, "percent_covered": 96.0, "percent_covered_display": "96", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [85], "excluded_lines": []}, "test_legacy_entry_defaults_to_password": {"executed_lines": [96, 97, 98, 99, 100, 102, 104, 105, 106, 108, 109], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_add_default_archived_false": {"executed_lines": [126, 127, 128, 129, 130, 132, 133, 134, 136, 138, 139], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 6, 7, 9, 11, 12, 13, 14, 17, 52, 63, 95, 112, 125], "summary": {"covered_lines": 17, "num_statements": 17, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 6, 7, 9, 11, 12, 13, 14, 17, 18, 19, 20, 21, 22, 24, 29, 30, 32, 45, 46, 47, 48, 49, 52, 63, 64, 65, 66, 67, 68, 70, 71, 72, 73, 74, 75, 76, 78, 79, 80, 81, 82, 83, 87, 88, 89, 90, 91, 92, 95, 96, 97, 98, 99, 100, 102, 104, 105, 106, 108, 109, 112, 125, 126, 127, 128, 129, 130, 132, 133, 134, 136, 138, 139], "summary": {"covered_lines": 77, "num_statements": 78, "percent_covered": 98.71794871794872, "percent_covered_display": "99", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [85], "excluded_lines": []}}}, "src/tests/test_entry_management_checksum_path.py": {"executed_lines": [1, 2, 3, 4, 6, 8, 9, 10, 11, 14, 15, 16, 17, 18, 19, 20, 23, 24, 26, 27, 30, 31, 32, 33, 34, 35, 36, 38, 39, 41, 42, 43], "summary": {"covered_lines": 32, "num_statements": 32, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_update_checksum_writes_to_expected_path": {"executed_lines": [15, 16, 17, 18, 19, 20, 23, 24, 26, 27], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_backup_index_file_creates_backup_in_directory": {"executed_lines": [31, 32, 33, 34, 35, 36, 38, 39, 41, 42, 43], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 6, 8, 9, 10, 11, 14, 30], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 6, 8, 9, 10, 11, 14, 15, 16, 17, 18, 19, 20, 23, 24, 26, 27, 30, 31, 32, 33, 34, 35, 36, 38, 39, 41, 42, 43], "summary": {"covered_lines": 32, "num_statements": 32, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_entry_policy_override.py": {"executed_lines": [1, 2, 3, 4, 5, 7, 9, 11, 12, 13, 14, 15, 18, 19, 23, 24, 25, 28, 29, 30, 31, 32, 34, 35, 36, 37, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 54, 55, 56, 57, 58, 64, 65, 66, 67], "summary": {"covered_lines": 46, "num_statements": 47, "percent_covered": 97.87234042553192, "percent_covered_display": "98", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [20], "excluded_lines": [], "functions": {"DummyEnc.derive_seed_from_mnemonic": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [20], "excluded_lines": []}, "DummyBIP85.derive_entropy": {"executed_lines": [25], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "make_manager": {"executed_lines": [29, 30, 31, 32, 34, 35, 36, 37, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], "summary": {"covered_lines": 19, "num_statements": 19, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_entry_policy_override_changes_password": {"executed_lines": [55, 56, 57, 58, 64, 65, 66, 67], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 7, 9, 11, 12, 13, 14, 15, 18, 19, 23, 24, 28, 54], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"DummyEnc": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [20], "excluded_lines": []}, "DummyBIP85": {"executed_lines": [25], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 7, 9, 11, 12, 13, 14, 15, 18, 19, 23, 24, 28, 29, 30, 31, 32, 34, 35, 36, 37, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 54, 55, 56, 57, 58, 64, 65, 66, 67], "summary": {"covered_lines": 45, "num_statements": 45, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_export_totp_codes.py": {"executed_lines": [1, 2, 3, 5, 7, 9, 11, 12, 13, 14, 15, 18, 19, 23, 24, 25, 26, 27, 29, 30, 31, 32, 33, 34, 35, 36, 37, 40, 41, 43, 44, 45, 47, 49, 50, 51, 52, 54, 55], "summary": {"covered_lines": 39, "num_statements": 40, "percent_covered": 97.5, "percent_covered_display": "98", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [20], "excluded_lines": [], "functions": {"FakeNostrClient.publish_snapshot": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [20], "excluded_lines": []}, "test_handle_export_totp_codes": {"executed_lines": [24, 25, 26, 27, 29, 30, 31, 32, 33, 34, 35, 36, 37, 40, 41, 43, 44, 45, 47, 49, 50, 51, 52, 54, 55], "summary": {"covered_lines": 25, "num_statements": 25, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 5, 7, 9, 11, 12, 13, 14, 15, 18, 19, 23], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"FakeNostrClient": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [20], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 5, 7, 9, 11, 12, 13, 14, 15, 18, 19, 23, 24, 25, 26, 27, 29, 30, 31, 32, 33, 34, 35, 36, 37, 40, 41, 43, 44, 45, 47, 49, 50, 51, 52, 54, 55], "summary": {"covered_lines": 39, "num_statements": 39, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_file_lock.py": {"executed_lines": [1, 2, 3, 4, 6, 8, 11, 17, 23, 27, 28, 33, 34, 38, 39, 41, 42, 44, 45, 46, 47, 49, 50, 56], "summary": {"covered_lines": 24, "num_statements": 31, "percent_covered": 77.41935483870968, "percent_covered_display": "77", "missing_lines": 7, "excluded_lines": 0}, "missing_lines": [12, 13, 14, 18, 19, 20, 36], "excluded_lines": [], "functions": {"_hold_lock": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [12, 13, 14], "excluded_lines": []}, "_try_lock": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [18, 19, 20], "excluded_lines": []}, "test_exclusive_lock_blocks_until_released": {"executed_lines": [28, 33, 34, 38, 39, 41, 42, 44, 45, 46, 47, 49, 50, 56], "summary": {"covered_lines": 14, "num_statements": 15, "percent_covered": 93.33333333333333, "percent_covered_display": "93", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [36], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 6, 8, 11, 17, 23, 27], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 6, 8, 11, 17, 23, 27, 28, 33, 34, 38, 39, 41, 42, 44, 45, 46, 47, 49, 50, 56], "summary": {"covered_lines": 24, "num_statements": 31, "percent_covered": 77.41935483870968, "percent_covered_display": "77", "missing_lines": 7, "excluded_lines": 0}, "missing_lines": [12, 13, 14, 18, 19, 20, 36], "excluded_lines": []}}}, "src/tests/test_file_locking.py": {"executed_lines": [1, 2, 3, 5, 8, 9, 10, 11, 16, 17, 18, 19, 24, 27, 28, 29, 30, 32, 33, 34, 35, 38, 40, 41, 42, 43, 45, 46, 47], "summary": {"covered_lines": 29, "num_statements": 29, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 4}, "missing_lines": [], "excluded_lines": [12, 13, 20, 21], "functions": {"_writer": {"executed_lines": [9, 10, 11], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2}, "missing_lines": [], "excluded_lines": [12, 13]}, "_reader": {"executed_lines": [17, 18, 19], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2}, "missing_lines": [], "excluded_lines": [20, 21]}, "test_concurrent_shared_and_exclusive_lock": {"executed_lines": [29, 30, 32, 33, 34, 35, 38, 40, 41, 42, 43, 45, 46, 47], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 5, 8, 16, 24, 27, 28], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 5, 8, 9, 10, 11, 16, 17, 18, 19, 24, 27, 28, 29, 30, 32, 33, 34, 35, 38, 40, 41, 42, 43, 45, 46, 47], "summary": {"covered_lines": 29, "num_statements": 29, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 4}, "missing_lines": [], "excluded_lines": [12, 13, 20, 21]}}}, "src/tests/test_fingerprint_encryption.py": {"executed_lines": [1, 2, 3, 4, 6, 7, 9, 11, 12, 15, 16, 17, 20, 21, 22, 23, 26, 27, 28, 29, 30, 31, 32, 33, 34, 37, 38, 39], "summary": {"covered_lines": 28, "num_statements": 28, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_generate_fingerprint_deterministic": {"executed_lines": [16, 17, 20, 21, 22, 23], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_encryption_round_trip": {"executed_lines": [27, 28, 29, 30, 31, 32, 33, 34, 37, 38, 39], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 6, 7, 9, 11, 12, 15, 26], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 6, 7, 9, 11, 12, 15, 16, 17, 20, 21, 22, 23, 26, 27, 28, 29, 30, 31, 32, 33, 34, 37, 38, 39], "summary": {"covered_lines": 28, "num_statements": 28, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_fingerprint_manager_utils.py": {"executed_lines": [1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 18, 19, 20], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_add_and_remove_fingerprint": {"executed_lines": [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_remove_nonexistent_fingerprint": {"executed_lines": [19, 20], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 4, 18], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 18, 19, 20], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_full_sync_roundtrip.py": {"executed_lines": [1, 2, 3, 5, 7, 8, 9, 10, 13, 14, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 32, 33, 34, 35, 36, 37, 38, 39, 41, 42, 45, 46, 47, 50, 51, 52, 53, 56, 57, 58, 59, 60, 63, 64, 65, 66], "summary": {"covered_lines": 50, "num_statements": 50, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"_init_pm": {"executed_lines": [14, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_full_sync_roundtrip": {"executed_lines": [33, 34, 35, 36, 37, 38, 39, 41, 42, 45, 46, 47, 50, 51, 52, 53, 56, 57, 58, 59, 60, 63, 64, 65, 66], "summary": {"covered_lines": 25, "num_statements": 25, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 5, 7, 8, 9, 10, 13, 32], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 5, 7, 8, 9, 10, 13, 14, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 32, 33, 34, 35, 36, 37, 38, 39, 41, 42, 45, 46, 47, 50, 51, 52, 53, 56, 57, 58, 59, 60, 63, 64, 65, 66], "summary": {"covered_lines": 50, "num_statements": 50, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_full_sync_roundtrip_new.py": {"executed_lines": [1, 2, 3, 5, 7, 8, 9, 10, 13, 14, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 32, 33, 34, 35, 36, 37, 38, 39, 41, 42, 45, 46, 47, 50, 51, 52, 53, 56, 57, 58, 59, 60, 63, 64, 65, 66], "summary": {"covered_lines": 50, "num_statements": 50, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"_init_pm": {"executed_lines": [14, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_full_sync_roundtrip": {"executed_lines": [33, 34, 35, 36, 37, 38, 39, 41, 42, 45, 46, 47, 50, 51, 52, 53, 56, 57, 58, 59, 60, 63, 64, 65, 66], "summary": {"covered_lines": 25, "num_statements": 25, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 5, 7, 8, 9, 10, 13, 32], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 5, 7, 8, 9, 10, 13, 14, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 32, 33, 34, 35, 36, 37, 38, 39, 41, 42, 45, 46, 47, 50, 51, 52, 53, 56, 57, 58, 59, 60, 63, 64, 65, 66], "summary": {"covered_lines": 50, "num_statements": 50, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_fuzz_key_derivation.py": {"executed_lines": [1, 2, 4, 5, 6, 7, 8, 10, 16, 17, 19, 26, 32, 37, 39, 40, 41, 42, 48, 50, 51, 59, 62, 63, 66, 67, 68, 71, 72, 73, 76, 77, 78, 79], "summary": {"covered_lines": 34, "num_statements": 34, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_fuzz_key_round_trip": {"executed_lines": [39, 40, 41, 42, 48, 50, 51, 59, 62, 63, 66, 67, 68, 71, 72, 73, 76, 77, 78, 79], "summary": {"covered_lines": 20, "num_statements": 20, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 5, 6, 7, 8, 10, 16, 17, 19, 26, 32, 37], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 4, 5, 6, 7, 8, 10, 16, 17, 19, 26, 32, 37, 39, 40, 41, 42, 48, 50, 51, 59, 62, 63, 66, 67, 68, 71, 72, 73, 76, 77, 78, 79], "summary": {"covered_lines": 34, "num_statements": 34, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_generate_test_profile.py": {"executed_lines": [1, 2, 3, 4, 7, 8, 9, 11, 14, 15, 17, 20, 23, 24, 25, 27, 28, 30, 31, 32, 33], "summary": {"covered_lines": 21, "num_statements": 21, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_initialize_profile_creates_directories": {"executed_lines": [8, 9, 11, 14, 15, 17, 20, 23, 24, 25, 27, 28, 30, 31, 32, 33], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 7], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 7, 8, 9, 11, 14, 15, 17, 20, 23, 24, 25, 27, 28, 30, 31, 32, 33], "summary": {"covered_lines": 21, "num_statements": 21, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_generate_test_profile_sync.py": {"executed_lines": [1, 2, 3, 4, 5, 6, 9, 10, 13, 14, 15, 16, 17, 20, 21, 22, 23, 24, 26, 27, 28, 30, 32, 33, 35, 36, 42, 44, 46, 47, 48, 50, 53, 54, 55, 57, 58, 64, 66, 67, 68, 69, 70], "summary": {"covered_lines": 43, "num_statements": 44, "percent_covered": 97.72727272727273, "percent_covered_display": "98", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [51], "excluded_lines": [], "functions": {"load_script": {"executed_lines": [10, 13, 14, 15, 16, 17], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_generate_test_profile_sync": {"executed_lines": [21, 22, 23, 24, 26, 27, 28, 30, 32, 33, 35, 36, 42, 44, 46, 47, 50, 53, 54, 57, 58, 64, 66, 67, 68, 69, 70], "summary": {"covered_lines": 27, "num_statements": 27, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_generate_test_profile_sync.DummyKeys.private_key_hex": {"executed_lines": [48], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_generate_test_profile_sync.DummyKeys.public_key_hex": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [51], "excluded_lines": []}, "test_generate_test_profile_sync.DummyKeyManager.__init__": {"executed_lines": [55], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 6, 9, 20], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"test_generate_test_profile_sync.DummyKeys": {"executed_lines": [48], "summary": {"covered_lines": 1, "num_statements": 2, "percent_covered": 50.0, "percent_covered_display": "50", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [51], "excluded_lines": []}, "test_generate_test_profile_sync.DummyKeyManager": {"executed_lines": [55], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 6, 9, 10, 13, 14, 15, 16, 17, 20, 21, 22, 23, 24, 26, 27, 28, 30, 32, 33, 35, 36, 42, 44, 46, 47, 50, 53, 54, 57, 58, 64, 66, 67, 68, 69, 70], "summary": {"covered_lines": 41, "num_statements": 41, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_get_entry_summaries_archived_view.py": {"executed_lines": [1, 2, 3, 4, 6, 8, 9, 10, 11, 14, 15, 16, 17, 18, 19, 20, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 36, 38, 39, 40, 41, 43, 44, 46, 47, 48, 49, 50], "summary": {"covered_lines": 41, "num_statements": 41, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_get_entry_summaries_excludes_archived_and_view_handler": {"executed_lines": [15, 16, 17, 18, 19, 20, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 36, 38, 39, 40, 41, 43, 44, 46, 47, 48, 49, 50], "summary": {"covered_lines": 31, "num_statements": 31, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 6, 8, 9, 10, 11, 14], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 6, 8, 9, 10, 11, 14, 15, 16, 17, 18, 19, 20, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 36, 38, 39, 40, 41, 43, 44, 46, 47, 48, 49, 50], "summary": {"covered_lines": 41, "num_statements": 41, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_get_entry_summaries_updates.py": {"executed_lines": [1, 2, 4, 6, 7, 8, 11, 12, 13, 14, 15, 18, 19, 20, 21, 22, 24, 25, 27, 28, 29, 32, 33, 34, 35, 36, 37, 39, 40, 42, 43, 44, 46, 47, 48], "summary": {"covered_lines": 35, "num_statements": 35, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"_create_entry_manager": {"executed_lines": [12, 13, 14, 15], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_get_entry_summaries_updates_label": {"executed_lines": [19, 20, 21, 22, 24, 25, 27, 28, 29], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_get_entry_summaries_updates_archive_restore": {"executed_lines": [33, 34, 35, 36, 37, 39, 40, 42, 43, 44, 46, 47, 48], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 6, 7, 8, 11, 18, 32], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 4, 6, 7, 8, 11, 12, 13, 14, 15, 18, 19, 20, 21, 22, 24, 25, 27, 28, 29, 32, 33, 34, 35, 36, 37, 39, 40, 42, 43, 44, 46, 47, 48], "summary": {"covered_lines": 35, "num_statements": 35, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_gui_features.py": {"executed_lines": [1, 2, 3, 5, 7, 9, 10, 11, 14, 15, 18, 21, 24, 28, 29, 33, 38, 41, 44, 48, 49, 57, 58, 65, 78, 94], "summary": {"covered_lines": 26, "num_statements": 83, "percent_covered": 31.325301204819276, "percent_covered_display": "31", "missing_lines": 57, "excluded_lines": 0}, "missing_lines": [16, 19, 22, 25, 30, 31, 34, 35, 36, 39, 42, 45, 50, 51, 52, 53, 54, 59, 60, 62, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 95, 96, 97, 98, 99, 100, 101, 104, 108, 109, 112, 113, 114, 115], "excluded_lines": [], "functions": {"DummyNostr.__init__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [16], "excluded_lines": []}, "DummyNostr.list_relays": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [19], "excluded_lines": []}, "DummyNostr.add_relay": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [22], "excluded_lines": []}, "DummyNostr.remove_relay": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [25], "excluded_lines": []}, "DummyEntries.__init__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [30, 31], "excluded_lines": []}, "DummyEntries.list_entries": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [34, 35, 36], "excluded_lines": []}, "DummyEntries.search_entries": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [39], "excluded_lines": []}, "DummyEntries.retrieve_entry": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [42], "excluded_lines": []}, "DummyEntries.get_totp_code": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [45], "excluded_lines": []}, "DummyController.__init__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 0}, "missing_lines": [50, 51, 52, 53, 54], "excluded_lines": []}, "set_backend": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [59, 60, 62], "excluded_lines": []}, "test_relay_manager_add_remove": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 10, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 10, "excluded_lines": 0}, "missing_lines": [66, 67, 68, 69, 70, 71, 72, 73, 74, 75], "excluded_lines": []}, "test_status_bar_updates_and_lock": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 13, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 13, "excluded_lines": 0}, "missing_lines": [79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91], "excluded_lines": []}, "test_totp_viewer_refresh_on_sync": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 14, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 14, "excluded_lines": 0}, "missing_lines": [95, 96, 97, 98, 99, 100, 101, 104, 108, 109, 112, 113, 114, 115], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 5, 7, 9, 10, 11, 14, 15, 18, 21, 24, 28, 29, 33, 38, 41, 44, 48, 49, 57, 58, 65, 78, 94], "summary": {"covered_lines": 26, "num_statements": 26, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"DummyNostr": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 4, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [16, 19, 22, 25], "excluded_lines": []}, "DummyEntries": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 8, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 8, "excluded_lines": 0}, "missing_lines": [30, 31, 34, 35, 36, 39, 42, 45], "excluded_lines": []}, "DummyController": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 0}, "missing_lines": [50, 51, 52, 53, 54], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 5, 7, 9, 10, 11, 14, 15, 18, 21, 24, 28, 29, 33, 38, 41, 44, 48, 49, 57, 58, 65, 78, 94], "summary": {"covered_lines": 26, "num_statements": 66, "percent_covered": 39.39393939393939, "percent_covered_display": "39", "missing_lines": 40, "excluded_lines": 0}, "missing_lines": [59, 60, 62, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 95, 96, 97, 98, 99, 100, 101, 104, 108, 109, 112, 113, 114, 115], "excluded_lines": []}}}, "src/tests/test_gui_headless.py": {"executed_lines": [1, 2, 3, 5, 6, 8, 10, 13, 14, 15, 17, 18, 21, 22, 23, 24, 26, 27, 29, 32, 33, 34, 36, 39, 40, 42, 43, 44, 46, 47, 48, 50, 51, 52, 54, 55, 56, 58, 59, 60, 62, 63, 64, 66, 69, 72, 73, 74, 76, 79, 80, 83, 86, 90, 91, 92, 93, 94, 95, 96, 97, 99, 100, 101, 104, 117, 118, 119, 120, 121, 122, 124, 125, 126, 127, 128, 129, 130, 131, 132, 134, 135, 136, 137, 138, 141, 149, 150, 151, 153, 154, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 169, 170], "summary": {"covered_lines": 105, "num_statements": 109, "percent_covered": 96.3302752293578, "percent_covered_display": "96", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [30, 81, 84, 87], "excluded_lines": [], "functions": {"FakeVault.__init__": {"executed_lines": [15], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "FakeVault.unlock": {"executed_lines": [18], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "FakeEntries.__init__": {"executed_lines": [23, 24], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "FakeEntries.list_entries": {"executed_lines": [27], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "FakeEntries.search_entries": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [30], "excluded_lines": []}, "FakeEntries.add_entry": {"executed_lines": [33, 34], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "FakeEntries.add_totp": {"executed_lines": [39, 40], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "FakeEntries.add_ssh_key": {"executed_lines": [43, 44], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "FakeEntries.add_seed": {"executed_lines": [47, 48], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "FakeEntries.add_pgp_key": {"executed_lines": [51, 52], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "FakeEntries.add_nostr_key": {"executed_lines": [55, 56], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "FakeEntries.add_key_value": {"executed_lines": [59, 60], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "FakeEntries.add_managed_account": {"executed_lines": [63, 64], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "FakeEntries.modify_entry": {"executed_lines": [69], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "setup_module": {"executed_lines": [73, 74, 76], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "FakeNostr.list_relays": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [81], "excluded_lines": []}, "FakeNostr.add_relay": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [84], "excluded_lines": []}, "FakeNostr.remove_relay": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [87], "excluded_lines": []}, "test_unlock_creates_main_window": {"executed_lines": [91, 92, 93, 94, 95, 96, 97, 99, 100, 101], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_entrydialog_add_calls_service": {"executed_lines": [118, 119, 120, 121, 122, 124, 125, 126, 127, 128, 129, 130, 131, 132, 134, 135, 136, 137, 138], "summary": {"covered_lines": 19, "num_statements": 19, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_entrydialog_edit_calls_service": {"executed_lines": [150, 151, 153, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 169, 170], "summary": {"covered_lines": 17, "num_statements": 17, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_entrydialog_edit_calls_service.retrieve": {"executed_lines": [154], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 5, 6, 8, 10, 13, 14, 17, 21, 22, 26, 29, 32, 36, 42, 46, 50, 54, 58, 62, 66, 72, 79, 80, 83, 86, 90, 104, 117, 141, 149], "summary": {"covered_lines": 33, "num_statements": 33, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"FakeVault": {"executed_lines": [15, 18], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "FakeEntries": {"executed_lines": [23, 24, 27, 33, 34, 39, 40, 43, 44, 47, 48, 51, 52, 55, 56, 59, 60, 63, 64, 69], "summary": {"covered_lines": 20, "num_statements": 21, "percent_covered": 95.23809523809524, "percent_covered_display": "95", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [30], "excluded_lines": []}, "FakeNostr": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [81, 84, 87], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 5, 6, 8, 10, 13, 14, 17, 21, 22, 26, 29, 32, 36, 42, 46, 50, 54, 58, 62, 66, 72, 73, 74, 76, 79, 80, 83, 86, 90, 91, 92, 93, 94, 95, 96, 97, 99, 100, 101, 104, 117, 118, 119, 120, 121, 122, 124, 125, 126, 127, 128, 129, 130, 131, 132, 134, 135, 136, 137, 138, 141, 149, 150, 151, 153, 154, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 169, 170], "summary": {"covered_lines": 83, "num_statements": 83, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_gui_sync.py": {"executed_lines": [1, 2, 3, 4, 5, 7, 8, 11, 12, 13, 15, 19, 20, 21, 23, 24, 26, 30, 31, 32, 33, 34, 35, 36, 37, 40, 41, 42, 43, 46, 47, 49, 51, 52, 54, 55, 56, 57, 59, 60, 61, 62, 63, 66, 67, 68, 69, 70, 71, 73, 74, 75, 76, 77], "summary": {"covered_lines": 54, "num_statements": 56, "percent_covered": 96.42857142857143, "percent_covered_display": "96", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [16, 27], "excluded_lines": [], "functions": {"DummyEntries.list_entries": {"executed_lines": [13], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "DummyEntries.search_entries": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [16], "excluded_lines": []}, "DummyNostr.__init__": {"executed_lines": [21], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "DummyNostr.start_background_vault_sync": {"executed_lines": [24], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "DummyNostr.list_relays": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [27], "excluded_lines": []}, "DummyController.__init__": {"executed_lines": [32, 33, 34, 35, 36, 37], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "set_backend": {"executed_lines": [42, 43], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_start_vault_sync_schedules_task": {"executed_lines": [47, 49, 51, 54, 55, 56, 57, 59, 60, 61, 62, 63], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_start_vault_sync_schedules_task.create_task": {"executed_lines": [52], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_status_updates_on_bus_events": {"executed_lines": [67, 68, 69, 70, 71, 73, 74, 75, 76, 77], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 7, 8, 11, 12, 15, 19, 20, 23, 26, 30, 31, 40, 41, 46, 66], "summary": {"covered_lines": 20, "num_statements": 20, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"DummyEntries": {"executed_lines": [13], "summary": {"covered_lines": 1, "num_statements": 2, "percent_covered": 50.0, "percent_covered_display": "50", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [16], "excluded_lines": []}, "DummyNostr": {"executed_lines": [21, 24], "summary": {"covered_lines": 2, "num_statements": 3, "percent_covered": 66.66666666666667, "percent_covered_display": "67", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [27], "excluded_lines": []}, "DummyController": {"executed_lines": [32, 33, 34, 35, 36, 37], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 7, 8, 11, 12, 15, 19, 20, 23, 26, 30, 31, 40, 41, 42, 43, 46, 47, 49, 51, 52, 54, 55, 56, 57, 59, 60, 61, 62, 63, 66, 67, 68, 69, 70, 71, 73, 74, 75, 76, 77], "summary": {"covered_lines": 45, "num_statements": 45, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_handle_switch_fingerprint.py": {"executed_lines": [1, 4, 5, 6, 7, 9, 10, 12, 13, 15, 16, 17, 18, 19, 21, 25, 26, 28, 30, 31, 32], "summary": {"covered_lines": 21, "num_statements": 23, "percent_covered": 91.30434782608695, "percent_covered_display": "91", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [22, 23], "excluded_lines": [], "functions": {"test_handle_switch_fingerprint_active_profile": {"executed_lines": [5, 6, 9, 12, 15, 16, 21, 25, 26, 28, 30, 31, 32], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_handle_switch_fingerprint_active_profile.DummyFingerprintManager.__init__": {"executed_lines": [7], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_handle_switch_fingerprint_active_profile.DummyFingerprintManager.list_fingerprints": {"executed_lines": [10], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_handle_switch_fingerprint_active_profile.DummyFingerprintManager.display_name": {"executed_lines": [13], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_handle_switch_fingerprint_active_profile.DummyPM.__init__": {"executed_lines": [17, 18, 19], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_handle_switch_fingerprint_active_profile.DummyPM.select_fingerprint": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [22, 23], "excluded_lines": []}, "": {"executed_lines": [1, 4], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"test_handle_switch_fingerprint_active_profile.DummyFingerprintManager": {"executed_lines": [7, 10, 13], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_handle_switch_fingerprint_active_profile.DummyPM": {"executed_lines": [17, 18, 19], "summary": {"covered_lines": 3, "num_statements": 5, "percent_covered": 60.0, "percent_covered_display": "60", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [22, 23], "excluded_lines": []}, "": {"executed_lines": [1, 4, 5, 6, 9, 12, 15, 16, 21, 25, 26, 28, 30, 31, 32], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_import.py": {"executed_lines": [3, 4, 6], "summary": {"covered_lines": 3, "num_statements": 7, "percent_covered": 42.857142857142854, "percent_covered_display": "43", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [7, 8, 9, 10], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 4, 6], "summary": {"covered_lines": 3, "num_statements": 7, "percent_covered": 42.857142857142854, "percent_covered_display": "43", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [7, 8, 9, 10], "excluded_lines": []}}, "classes": {"": {"executed_lines": [3, 4, 6], "summary": {"covered_lines": 3, "num_statements": 7, "percent_covered": 42.857142857142854, "percent_covered_display": "43", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [7, 8, 9, 10], "excluded_lines": []}}}, "src/tests/test_inactivity_lock.py": {"executed_lines": [1, 2, 3, 4, 6, 8, 10, 13, 14, 16, 17, 19, 20, 22, 23, 24, 26, 41, 43, 44, 46, 47, 50, 52, 54, 55, 57, 58, 60, 61, 62, 64, 79, 81, 82, 83, 84, 85, 87, 89, 90, 92, 93, 96, 98, 100, 101, 103, 104, 105, 106, 107, 109, 110, 111, 113, 114, 116, 117, 118, 120, 121, 122], "summary": {"covered_lines": 63, "num_statements": 63, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_inactivity_triggers_lock": {"executed_lines": [14, 16, 19, 22, 26, 41, 43, 44, 46, 47], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_inactivity_triggers_lock.update_activity": {"executed_lines": [17], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_inactivity_triggers_lock.lock_vault": {"executed_lines": [20], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_inactivity_triggers_lock.unlock_vault": {"executed_lines": [23, 24], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_input_timeout_triggers_lock": {"executed_lines": [52, 54, 57, 60, 64, 79, 81, 87, 89, 90, 92, 93], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_input_timeout_triggers_lock.update_activity": {"executed_lines": [55], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_input_timeout_triggers_lock.lock_vault": {"executed_lines": [58], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_input_timeout_triggers_lock.unlock_vault": {"executed_lines": [61, 62], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_input_timeout_triggers_lock.fake_input": {"executed_lines": [82, 83, 84, 85], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_update_activity_checks_timeout": {"executed_lines": [98, 100, 101, 103, 104, 105, 106, 107, 109, 113, 114, 116, 117, 118, 120, 121, 122], "summary": {"covered_lines": 17, "num_statements": 17, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_update_activity_checks_timeout.lock": {"executed_lines": [110, 111], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 6, 8, 10, 13, 50, 96], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 6, 8, 10, 13, 14, 16, 17, 19, 20, 22, 23, 24, 26, 41, 43, 44, 46, 47, 50, 52, 54, 55, 57, 58, 60, 61, 62, 64, 79, 81, 82, 83, 84, 85, 87, 89, 90, 92, 93, 96, 98, 100, 101, 103, 104, 105, 106, 107, 109, 110, 111, 113, 114, 116, 117, 118, 120, 121, 122], "summary": {"covered_lines": 63, "num_statements": 63, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_index_cache.py": {"executed_lines": [1, 2, 3, 5, 6, 7, 8, 11, 12, 13, 14, 15, 16, 19, 20, 22, 23, 24, 26, 27, 28, 30, 31, 32, 33], "summary": {"covered_lines": 25, "num_statements": 25, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_index_caching": {"executed_lines": [12, 13, 14, 15, 16, 19, 20, 22, 23, 24, 26, 27, 28, 30, 31, 32, 33], "summary": {"covered_lines": 17, "num_statements": 17, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 5, 6, 7, 8, 11], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 5, 6, 7, 8, 11, 12, 13, 14, 15, 16, 19, 20, 22, 23, 24, 26, 27, 28, 30, 31, 32, 33], "summary": {"covered_lines": 25, "num_statements": 25, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_index_import_export.py": {"executed_lines": [1, 2, 4, 5, 6, 7, 9, 11, 12, 13, 15, 16, 19, 20, 21, 22, 23, 25, 26, 27, 30, 31, 32, 33, 35, 48, 50, 51, 53, 68, 70, 71, 74, 75, 76], "summary": {"covered_lines": 35, "num_statements": 35, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"setup_vault": {"executed_lines": [20, 21, 22, 23, 25, 26, 27], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_index_export_import_round_trip": {"executed_lines": [31, 32, 33, 35, 48, 50, 51, 53, 68, 70, 71], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_get_encrypted_index_missing_file": {"executed_lines": [75, 76], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 5, 6, 7, 9, 11, 12, 13, 15, 16, 19, 30, 74], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 4, 5, 6, 7, 9, 11, 12, 13, 15, 16, 19, 20, 21, 22, 23, 25, 26, 27, 30, 31, 32, 33, 35, 48, 50, 51, 53, 68, 70, 71, 74, 75, 76], "summary": {"covered_lines": 35, "num_statements": 35, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_invalid_password_message.py": {"executed_lines": [1, 2, 4, 6, 7, 8, 9, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23], "summary": {"covered_lines": 19, "num_statements": 19, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_invalid_password_shows_friendly_message_once": {"executed_lines": [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 6, 7, 8, 9, 12], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 4, 6, 7, 8, 9, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23], "summary": {"covered_lines": 19, "num_statements": 19, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_kdf_iteration_fallback.py": {"executed_lines": [1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 14, 15, 16, 17, 18, 19, 21, 22, 24, 25, 26, 27, 28, 29, 32, 33, 35, 36, 38, 39, 40, 41, 42, 43, 45, 49, 50, 51], "summary": {"covered_lines": 38, "num_statements": 38, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_kdf_iteration_fallback": {"executed_lines": [15, 16, 17, 18, 19, 21, 22, 24, 25, 26, 27, 28, 29, 32, 33, 35, 36, 38, 39, 40, 41, 42, 43, 45, 49, 50, 51], "summary": {"covered_lines": 27, "num_statements": 27, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 14], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 14, 15, 16, 17, 18, 19, 21, 22, 24, 25, 26, 27, 28, 29, 32, 33, 35, 36, 38, 39, 40, 41, 42, 43, 45, 49, 50, 51], "summary": {"covered_lines": 38, "num_statements": 38, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_kdf_modes.py": {"executed_lines": [1, 2, 3, 4, 5, 6, 8, 14, 15, 16, 17, 19, 20, 23, 24, 25, 26, 27, 33, 34, 36, 37, 44, 46, 47, 48, 49, 50, 51, 54, 55, 56, 57, 60, 61, 62, 63, 64, 65, 66, 67, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 83, 84, 90, 91, 94, 95, 98, 99, 103, 104, 105, 106, 107, 110, 111, 112, 113, 114, 115, 116, 117, 118], "summary": {"covered_lines": 73, "num_statements": 73, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"_setup_profile": {"executed_lines": [24, 25, 26, 27, 33, 34, 36, 37, 44, 46, 47, 48, 49, 50, 51, 54, 55, 56, 57], "summary": {"covered_lines": 19, "num_statements": 19, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "_make_pm": {"executed_lines": [61, 62, 63, 64, 65, 66, 67], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_setup_encryption_manager_kdf_modes": {"executed_lines": [71, 72, 73, 74, 75, 76, 77, 78, 79, 83, 84, 90, 91, 94, 95], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_kdf_param_round_trip": {"executed_lines": [99, 103, 104, 105, 106, 107], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_vault_kdf_migration": {"executed_lines": [111, 112, 113, 114, 115, 116, 117, 118], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 6, 8, 14, 15, 16, 17, 19, 20, 23, 60, 70, 98, 110], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 5, 6, 8, 14, 15, 16, 17, 19, 20, 23, 24, 25, 26, 27, 33, 34, 36, 37, 44, 46, 47, 48, 49, 50, 51, 54, 55, 56, 57, 60, 61, 62, 63, 64, 65, 66, 67, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 83, 84, 90, 91, 94, 95, 98, 99, 103, 104, 105, 106, 107, 110, 111, 112, 113, 114, 115, 116, 117, 118], "summary": {"covered_lines": 73, "num_statements": 73, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_kdf_strength_slider.py": {"executed_lines": [1, 2, 3, 5, 6, 7, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_kdf_strength_slider_persists": {"executed_lines": [11, 12, 13, 14, 15, 16, 17, 18, 19], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 5, 6, 7, 10], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 5, 6, 7, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_key_derivation.py": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 16, 17, 18, 19, 21, 22, 23, 25, 26, 27, 28, 31, 32, 33, 34, 37, 38, 39, 40, 41, 42, 45, 46, 47, 50, 51, 52, 53, 55, 59, 63, 64, 65, 67, 68, 69], "summary": {"covered_lines": 43, "num_statements": 43, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_pbkdf2_fingerprint_affects_key": {"executed_lines": [17, 18, 19, 21, 22, 23, 25, 26, 27, 28], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_derive_key_empty_password_error": {"executed_lines": [32, 33, 34], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_seed_only_key_deterministic": {"executed_lines": [38, 39, 40, 41, 42], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_derive_index_key_seed_only": {"executed_lines": [46, 47], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_argon2_fingerprint_affects_key": {"executed_lines": [51, 52, 53, 55, 59, 63, 64, 65, 67, 68, 69], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 16, 31, 37, 45, 50], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 16, 17, 18, 19, 21, 22, 23, 25, 26, 27, 28, 31, 32, 33, 34, 37, 38, 39, 40, 41, 42, 45, 46, 47, 50, 51, 52, 53, 55, 59, 63, 64, 65, 67, 68, 69], "summary": {"covered_lines": 43, "num_statements": 43, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_key_hierarchy.py": {"executed_lines": [1, 2, 3, 4, 7, 8, 9, 10, 11, 14, 15, 16, 17, 18, 19], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_kd_distinct_infos": {"executed_lines": [8, 9, 10, 11], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_derive_index_key_matches_hierarchy": {"executed_lines": [15, 16, 17, 18, 19], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 7, 14], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 7, 8, 9, 10, 11, 14, 15, 16, 17, 18, 19], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_key_manager_helpers.py": {"executed_lines": [1, 2, 4, 7, 8, 9, 11, 12, 13, 15, 16, 18, 19, 21, 23, 24, 26, 29], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_key_manager_getters": {"executed_lines": [8, 9, 11, 12, 15, 18, 19, 21, 23, 24, 26, 29], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_key_manager_getters.DummyKeys.public_key_hex": {"executed_lines": [13], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_key_manager_getters.DummyKeys.private_key_hex": {"executed_lines": [16], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 7], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"test_key_manager_getters.DummyKeys": {"executed_lines": [13, 16], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 7, 8, 9, 11, 12, 15, 18, 19, 21, 23, 24, 26, 29], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_key_validation_failures.py": {"executed_lines": [1, 2, 4, 6, 7, 8, 11, 12, 13, 14, 15, 18, 19, 20, 21, 24, 25, 26, 29, 30, 33, 34, 35, 38, 39, 42, 43, 44, 47, 48, 51, 52, 53, 56, 57, 60, 61, 62, 65, 66], "summary": {"covered_lines": 40, "num_statements": 40, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"setup_mgr": {"executed_lines": [12, 13, 14, 15], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_add_totp_invalid_secret": {"executed_lines": [19, 20, 21], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_add_ssh_key_validation_failure": {"executed_lines": [25, 26, 29, 30], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_add_pgp_key_validation_failure": {"executed_lines": [34, 35, 38, 39], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_add_nostr_key_validation_failure": {"executed_lines": [43, 44, 47, 48], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_add_seed_validation_failure": {"executed_lines": [52, 53, 56, 57], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_add_managed_account_validation_failure": {"executed_lines": [61, 62, 65, 66], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 6, 7, 8, 11, 18, 24, 33, 42, 51, 60], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 4, 6, 7, 8, 11, 12, 13, 14, 15, 18, 19, 20, 21, 24, 25, 26, 29, 30, 33, 34, 35, 38, 39, 42, 43, 44, 47, 48, 51, 52, 53, 56, 57, 60, 61, 62, 65, 66], "summary": {"covered_lines": 40, "num_statements": 40, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_key_value_entry.py": {"executed_lines": [1, 2, 3, 5, 7, 9, 10, 11, 14, 15, 16, 17, 18, 21, 22, 23, 24, 26, 27, 28, 41, 44, 45, 46, 47, 50, 51, 52, 53, 54, 59, 60, 61, 62, 65, 66], "summary": {"covered_lines": 36, "num_statements": 36, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"setup_entry_mgr": {"executed_lines": [15, 16, 17, 18], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_add_and_modify_key_value": {"executed_lines": [22, 23, 24, 26, 27, 28, 41, 44, 45, 46, 47, 50, 51, 52, 53, 54, 59, 60, 61, 62, 65, 66], "summary": {"covered_lines": 22, "num_statements": 22, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 5, 7, 9, 10, 11, 14, 21], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 5, 7, 9, 10, 11, 14, 15, 16, 17, 18, 21, 22, 23, 24, 26, 27, 28, 41, 44, 45, 46, 47, 50, 51, 52, 53, 54, 59, 60, 61, 62, 65, 66], "summary": {"covered_lines": 36, "num_statements": 36, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_last_used_fingerprint.py": {"executed_lines": [1, 2, 3, 5, 6, 7, 8, 10, 13, 14, 15, 16, 18, 19, 21, 22, 23, 26, 27, 29, 30, 32, 35, 40, 43, 46, 51, 54, 59, 60], "summary": {"covered_lines": 30, "num_statements": 30, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_last_used_fingerprint": {"executed_lines": [14, 15, 16, 18, 19, 21, 22, 23, 26, 27, 29, 32, 35, 40, 43, 46, 51, 54, 59, 60], "summary": {"covered_lines": 20, "num_statements": 20, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_last_used_fingerprint.init_fm": {"executed_lines": [30], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 5, 6, 7, 8, 10, 13], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 5, 6, 7, 8, 10, 13, 14, 15, 16, 18, 19, 21, 22, 23, 26, 27, 29, 30, 32, 35, 40, 43, 46, 51, 54, 59, 60], "summary": {"covered_lines": 30, "num_statements": 30, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_legacy_format_exception.py": {"executed_lines": [1, 2, 4, 5, 7, 12, 15, 16, 17, 18, 19, 22, 23, 24, 25, 26, 29, 30, 31, 33, 34, 36, 37, 41, 42, 43], "summary": {"covered_lines": 26, "num_statements": 26, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_decrypt_data_raises_legacy_exception": {"executed_lines": [16, 17, 18, 19], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_vault_handles_legacy_exception": {"executed_lines": [23, 24, 25, 26, 29, 30, 31, 33, 34, 36, 37, 41, 42, 43], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 5, 7, 12, 15, 22], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 4, 5, 7, 12, 15, 16, 17, 18, 19, 22, 23, 24, 25, 26, 29, 30, 31, 33, 34, 36, 37, 41, 42, 43], "summary": {"covered_lines": 26, "num_statements": 26, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_legacy_migration.py": {"executed_lines": [1, 2, 3, 4, 6, 8, 9, 10, 11, 12, 13, 15, 16, 17, 20, 21, 23, 24, 39, 40, 41, 42, 46, 48, 49, 51, 52, 53, 54, 55, 56, 59, 60, 62, 63, 64, 65, 66, 67, 68, 70, 72, 75, 77, 78, 81, 82, 83, 84, 87, 88, 90, 91, 92, 93, 94, 95, 99, 101, 103, 104, 105, 106, 109, 110, 112, 113, 114, 116, 117, 118, 122, 123, 125, 128, 129, 130, 133, 134, 136, 137, 138, 141, 142, 144, 145, 146, 147, 148, 150, 152, 153, 154, 155, 156, 157, 158, 159, 160, 162, 163, 164, 165, 166, 167, 169, 170, 176, 179, 181, 182, 183, 186, 187, 189, 190, 191, 192, 193, 195, 197, 198, 199, 200, 201, 202, 203, 204, 206, 207, 213, 216, 218, 219, 220, 223, 224, 226, 227, 228, 229, 231, 232, 233, 234, 235, 237, 238, 240, 244, 247, 248, 249, 250, 251, 252, 253, 254, 255, 257, 259, 260, 261, 263, 264, 266, 267, 268, 269, 272, 273, 275, 276, 277, 278, 279, 281, 283, 284, 285, 286, 287, 288, 289, 290, 291, 293, 297, 298, 304, 306, 307, 309, 310, 313, 314, 316, 317, 318, 319, 321, 322, 323, 324, 325, 326, 327, 328, 329, 331, 332, 333, 334, 335, 336, 338, 340, 346, 350, 354, 356, 357, 358, 359, 362, 363, 365, 366, 367, 368, 369, 371, 373, 374, 375, 376, 377, 378, 379, 380, 382, 384, 388, 390, 391, 393, 396, 397, 399, 400, 401, 402, 403, 405, 407, 408, 410, 412, 413, 414, 415, 416, 417, 418, 419, 421, 423, 427, 429, 430, 432], "summary": {"covered_lines": 271, "num_statements": 279, "percent_covered": 97.1326164874552, "percent_covered_display": "97", "missing_lines": 8, "excluded_lines": 0}, "missing_lines": [73, 245, 351, 352, 385, 386, 424, 425], "excluded_lines": [], "functions": {"test_legacy_index_migrates": {"executed_lines": [21, 23, 24, 39, 40, 41, 42, 46, 48, 49, 51, 52, 53, 54, 55, 56], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_failed_migration_restores_legacy": {"executed_lines": [60, 62, 63, 64, 65, 66, 67, 68, 70, 72, 75, 77, 78, 81, 82, 83, 84], "summary": {"covered_lines": 17, "num_statements": 17, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_failed_migration_restores_legacy.bad_load_json": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [73], "excluded_lines": []}, "test_migrated_index_has_v3_prefix": {"executed_lines": [88, 90, 91, 92, 93, 94, 95, 99, 101, 103, 104, 105, 106], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_legacy_index_migration_removes_strays": {"executed_lines": [110, 112, 113, 114, 116, 117, 118, 122, 123, 125, 128, 129, 130, 133, 134, 136, 137, 138], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_migration_syncs_when_confirmed": {"executed_lines": [142, 144, 145, 146, 147, 148, 150, 152, 153, 154, 155, 156, 157, 158, 159, 160, 162, 163, 164, 165, 166, 167, 169, 170, 176, 179, 181, 182, 183], "summary": {"covered_lines": 29, "num_statements": 29, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_migration_declines_sync": {"executed_lines": [187, 189, 190, 191, 192, 193, 195, 197, 198, 199, 200, 201, 202, 203, 204, 206, 207, 213, 216, 218, 219, 220], "summary": {"covered_lines": 22, "num_statements": 22, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_legacy_nostr_payload_syncs_when_confirmed": {"executed_lines": [224, 226, 227, 228, 229, 231, 232, 237, 244, 247, 248, 249, 250, 251, 252, 253, 254, 255, 257, 259, 263, 264, 266, 267, 268, 269], "summary": {"covered_lines": 26, "num_statements": 26, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_legacy_nostr_payload_syncs_when_confirmed.DummyClient.__init__": {"executed_lines": [233, 234, 235], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_legacy_nostr_payload_syncs_when_confirmed.DummyClient.fetch_latest_snapshot": {"executed_lines": [238, 240], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_legacy_nostr_payload_syncs_when_confirmed.DummyClient.fetch_deltas_since": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [245], "excluded_lines": []}, "test_legacy_nostr_payload_syncs_when_confirmed.fake_sync_vault_async": {"executed_lines": [260, 261], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_legacy_index_reinit_syncs_once_when_confirmed": {"executed_lines": [273, 275, 276, 277, 278, 279, 281, 283, 284, 285, 286, 287, 288, 289, 290, 291, 293, 297, 298, 304, 306, 307, 309, 310], "summary": {"covered_lines": 24, "num_statements": 24, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_schema_migration_no_sync_prompt": {"executed_lines": [314, 316, 317, 318, 319, 321, 322, 323, 324, 325, 326, 327, 328, 329, 331, 332, 333, 334, 335, 336, 338, 340, 346, 350, 354, 356, 357, 358, 359], "summary": {"covered_lines": 29, "num_statements": 29, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_schema_migration_no_sync_prompt.fake_confirm": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [351, 352], "excluded_lines": []}, "test_declined_migration_no_sync_prompt": {"executed_lines": [363, 365, 366, 367, 368, 369, 371, 373, 374, 375, 376, 377, 378, 379, 380, 382, 384, 388, 390, 391, 393], "summary": {"covered_lines": 21, "num_statements": 21, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_declined_migration_no_sync_prompt.fake_confirm": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [385, 386], "excluded_lines": []}, "test_failed_migration_no_sync_prompt": {"executed_lines": [397, 399, 400, 401, 402, 403, 405, 407, 410, 412, 413, 414, 415, 416, 417, 418, 419, 421, 423, 427, 429, 430, 432], "summary": {"covered_lines": 23, "num_statements": 23, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_failed_migration_no_sync_prompt.fail": {"executed_lines": [408], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_failed_migration_no_sync_prompt.fake_confirm": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [424, 425], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 6, 8, 9, 10, 11, 12, 13, 15, 16, 17, 20, 59, 87, 109, 141, 186, 223, 272, 313, 362, 396], "summary": {"covered_lines": 25, "num_statements": 25, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"test_legacy_nostr_payload_syncs_when_confirmed.DummyClient": {"executed_lines": [233, 234, 235, 238, 240], "summary": {"covered_lines": 5, "num_statements": 6, "percent_covered": 83.33333333333333, "percent_covered_display": "83", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [245], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 6, 8, 9, 10, 11, 12, 13, 15, 16, 17, 20, 21, 23, 24, 39, 40, 41, 42, 46, 48, 49, 51, 52, 53, 54, 55, 56, 59, 60, 62, 63, 64, 65, 66, 67, 68, 70, 72, 75, 77, 78, 81, 82, 83, 84, 87, 88, 90, 91, 92, 93, 94, 95, 99, 101, 103, 104, 105, 106, 109, 110, 112, 113, 114, 116, 117, 118, 122, 123, 125, 128, 129, 130, 133, 134, 136, 137, 138, 141, 142, 144, 145, 146, 147, 148, 150, 152, 153, 154, 155, 156, 157, 158, 159, 160, 162, 163, 164, 165, 166, 167, 169, 170, 176, 179, 181, 182, 183, 186, 187, 189, 190, 191, 192, 193, 195, 197, 198, 199, 200, 201, 202, 203, 204, 206, 207, 213, 216, 218, 219, 220, 223, 224, 226, 227, 228, 229, 231, 232, 237, 244, 247, 248, 249, 250, 251, 252, 253, 254, 255, 257, 259, 260, 261, 263, 264, 266, 267, 268, 269, 272, 273, 275, 276, 277, 278, 279, 281, 283, 284, 285, 286, 287, 288, 289, 290, 291, 293, 297, 298, 304, 306, 307, 309, 310, 313, 314, 316, 317, 318, 319, 321, 322, 323, 324, 325, 326, 327, 328, 329, 331, 332, 333, 334, 335, 336, 338, 340, 346, 350, 354, 356, 357, 358, 359, 362, 363, 365, 366, 367, 368, 369, 371, 373, 374, 375, 376, 377, 378, 379, 380, 382, 384, 388, 390, 391, 393, 396, 397, 399, 400, 401, 402, 403, 405, 407, 408, 410, 412, 413, 414, 415, 416, 417, 418, 419, 421, 423, 427, 429, 430, 432], "summary": {"covered_lines": 266, "num_statements": 273, "percent_covered": 97.43589743589743, "percent_covered_display": "97", "missing_lines": 7, "excluded_lines": 0}, "missing_lines": [73, 351, 352, 385, 386, 424, 425], "excluded_lines": []}}}, "src/tests/test_legacy_migration_iterations.py": {"executed_lines": [1, 2, 3, 4, 6, 8, 10, 11, 12, 13, 17, 18, 19, 22, 23, 24, 25, 26, 27, 28, 31, 32, 33, 35, 36, 37, 39, 41, 42, 43, 45, 46, 47, 49, 50, 52, 53, 54, 56, 58, 60, 62, 63, 64, 66, 67, 69, 70], "summary": {"covered_lines": 48, "num_statements": 48, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"_setup_legacy_file": {"executed_lines": [23, 24, 25, 26, 27, 28], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_migrate_iterations": {"executed_lines": [33, 35, 36, 37, 39, 41, 45, 46, 47, 49, 50, 52, 56, 58, 60, 62, 63, 64, 66, 67, 69, 70], "summary": {"covered_lines": 22, "num_statements": 22, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_migrate_iterations.fake_prompt": {"executed_lines": [42, 43], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_migrate_iterations.tracking_derive": {"executed_lines": [53, 54], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 6, 8, 10, 11, 12, 13, 17, 18, 19, 22, 31, 32], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 6, 8, 10, 11, 12, 13, 17, 18, 19, 22, 23, 24, 25, 26, 27, 28, 31, 32, 33, 35, 36, 37, 39, 41, 42, 43, 45, 46, 47, 49, 50, 52, 53, 54, 56, 58, 60, 62, 63, 64, 66, 67, 69, 70], "summary": {"covered_lines": 48, "num_statements": 48, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_legacy_migration_prompt.py": {"executed_lines": [1, 2, 3, 5, 9, 10, 11, 14, 15, 16, 17, 18, 19, 20, 21, 22, 25, 26, 27, 28, 29, 30, 31, 34, 35, 36, 37, 38, 41, 42, 43, 44, 45, 46, 47, 50, 51, 52, 53, 54, 55], "summary": {"covered_lines": 41, "num_statements": 41, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"_setup_legacy_file": {"executed_lines": [15, 16, 17, 18, 19, 20, 21, 22], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_open_legacy_without_migrating": {"executed_lines": [26, 27, 28, 29, 30, 31, 34, 35, 36, 37, 38], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_migrate_legacy_sets_flag": {"executed_lines": [42, 43, 44, 45, 46, 47, 50, 51, 52, 53, 54, 55], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 5, 9, 10, 11, 14, 25, 41], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 5, 9, 10, 11, 14, 15, 16, 17, 18, 19, 20, 21, 22, 25, 26, 27, 28, 29, 30, 31, 34, 35, 36, 37, 38, 41, 42, 43, 44, 45, 46, 47, 50, 51, 52, 53, 54, 55], "summary": {"covered_lines": 41, "num_statements": 41, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_legacy_migration_second_session.py": {"executed_lines": [1, 2, 3, 4, 5, 7, 9, 10, 11, 12, 13, 14, 17, 18, 19, 20, 21, 23, 24, 25, 26, 27, 28, 32, 35, 36, 37, 38, 39, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 55, 58, 59, 63, 64, 65], "summary": {"covered_lines": 45, "num_statements": 45, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2}, "missing_lines": [], "excluded_lines": [55, 56], "functions": {"test_legacy_migration_second_session": {"executed_lines": [18, 19, 20, 21, 23, 24, 25, 26, 27, 28, 32, 35, 36, 37, 38, 39, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 55, 58, 59, 63, 64, 65], "summary": {"covered_lines": 32, "num_statements": 32, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1}, "missing_lines": [], "excluded_lines": [55]}, "test_legacy_migration_second_session.fail_prompt": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1}, "missing_lines": [], "excluded_lines": [56]}, "": {"executed_lines": [1, 2, 3, 4, 5, 7, 9, 10, 11, 12, 13, 14, 17], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 5, 7, 9, 10, 11, 12, 13, 14, 17, 18, 19, 20, 21, 23, 24, 25, 26, 27, 28, 32, 35, 36, 37, 38, 39, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 55, 58, 59, 63, 64, 65], "summary": {"covered_lines": 45, "num_statements": 45, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2}, "missing_lines": [], "excluded_lines": [55, 56]}}}, "src/tests/test_list_entries_all_types.py": {"executed_lines": [1, 3, 4, 5, 7, 9, 10, 11, 12, 13, 14, 15, 18, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 37, 38, 39, 40, 41, 42, 43, 44, 45, 48, 49, 50, 51, 52, 54, 55, 63, 65, 66, 67, 68, 69, 70, 73, 74, 75, 76, 77, 79, 80, 82, 83, 84, 85], "summary": {"covered_lines": 62, "num_statements": 62, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"_setup_manager": {"executed_lines": [19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "_create_all_entries": {"executed_lines": [38, 39, 40, 41, 42, 43, 44, 45], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_cli_list_all_types": {"executed_lines": [49, 50, 51, 52, 54, 63, 65, 66, 67, 68, 69, 70], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_cli_list_all_types.fake_get_entry_service": {"executed_lines": [55], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_menu_list_all_types": {"executed_lines": [74, 75, 76, 77, 79, 80, 82, 83, 84, 85], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 4, 5, 7, 9, 10, 11, 12, 13, 14, 15, 18, 37, 48, 73], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 3, 4, 5, 7, 9, 10, 11, 12, 13, 14, 15, 18, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 37, 38, 39, 40, 41, 42, 43, 44, 45, 48, 49, 50, 51, 52, 54, 55, 63, 65, 66, 67, 68, 69, 70, 73, 74, 75, 76, 77, 79, 80, 82, 83, 84, 85], "summary": {"covered_lines": 62, "num_statements": 62, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_list_entries_sort_filter.py": {"executed_lines": [1, 2, 3, 5, 7, 9, 10, 11, 12, 15, 16, 17, 18, 19, 22, 23, 24, 25, 26, 27, 28, 29, 35, 36, 37, 38, 39, 40, 42, 43, 44, 45, 47, 48, 54, 55, 56, 57, 58, 59, 60, 61], "summary": {"covered_lines": 42, "num_statements": 42, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"setup_entry_manager": {"executed_lines": [16, 17, 18, 19], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_sort_by_label": {"executed_lines": [23, 24, 25, 26, 27, 28, 29], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_sort_by_updated": {"executed_lines": [36, 37, 38, 39, 40, 42, 43, 44, 45, 47, 48], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_filter_by_type": {"executed_lines": [55, 56, 57, 58, 59, 60, 61], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 5, 7, 9, 10, 11, 12, 15, 22, 35, 54], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 5, 7, 9, 10, 11, 12, 15, 16, 17, 18, 19, 22, 23, 24, 25, 26, 27, 28, 29, 35, 36, 37, 38, 39, 40, 42, 43, 44, 45, 47, 48, 54, 55, 56, 57, 58, 59, 60, 61], "summary": {"covered_lines": 42, "num_statements": 42, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_load_global_config.py": {"executed_lines": [1, 3, 4, 6, 8, 11, 13, 14, 15, 16, 18, 20, 21, 23, 24], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_load_global_config_invalid_toml": {"executed_lines": [13, 14, 15, 16, 18, 20, 21, 23, 24], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 4, 6, 8, 11], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 3, 4, 6, 8, 11, 13, 14, 15, 16, 18, 20, 21, 23, 24], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_managed_account.py": {"executed_lines": [1, 2, 3, 5, 6, 7, 8, 10, 12, 13, 14, 17, 18, 19, 20, 21, 24, 25, 26, 27, 29, 30, 32, 33, 34, 35, 36, 37, 38, 39, 40, 42, 43, 46, 47, 48, 49, 50, 51, 52, 54, 55, 56, 57, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 76, 78, 79, 80, 81, 83, 85, 86, 87], "summary": {"covered_lines": 69, "num_statements": 69, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"setup_entry_manager": {"executed_lines": [18, 19, 20, 21], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_add_managed_account_fields_and_dir": {"executed_lines": [25, 26, 27, 29, 30, 32, 33, 34, 35, 36, 37, 38, 39, 40, 42, 43], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_load_and_exit_managed_account": {"executed_lines": [47, 48, 49, 50, 51, 52, 54, 55, 56, 57, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 76, 78, 79, 80, 81, 83, 85, 86, 87], "summary": {"covered_lines": 35, "num_statements": 35, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 5, 6, 7, 8, 10, 12, 13, 14, 17, 24, 46], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 5, 6, 7, 8, 10, 12, 13, 14, 17, 18, 19, 20, 21, 24, 25, 26, 27, 29, 30, 32, 33, 34, 35, 36, 37, 38, 39, 40, 42, 43, 46, 47, 48, 49, 50, 51, 52, 54, 55, 56, 57, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 76, 78, 79, 80, 81, 83, 85, 86, 87], "summary": {"covered_lines": 69, "num_statements": 69, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_managed_account_entry.py": {"executed_lines": [1, 2, 3, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16, 17, 20, 21, 22, 23, 24, 27, 28, 29, 30, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 45, 47, 48, 49, 51, 52, 53, 54, 55, 58, 59, 60, 61, 62, 67, 68, 69, 70, 71, 72, 75, 76, 77, 78, 79, 80, 81, 83, 84, 85, 86, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 105, 107, 108, 109, 110, 112, 114, 115, 116], "summary": {"covered_lines": 90, "num_statements": 90, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"setup_mgr": {"executed_lines": [21, 22, 23, 24], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_add_and_get_managed_account_seed": {"executed_lines": [28, 29, 30, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 45, 47, 48, 49, 51, 52, 53, 54, 55, 58, 59, 60, 61, 62, 67, 68, 69, 70, 71, 72], "summary": {"covered_lines": 34, "num_statements": 34, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_load_and_exit_managed_account": {"executed_lines": [76, 77, 78, 79, 80, 81, 83, 84, 85, 86, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 105, 107, 108, 109, 110, 112, 114, 115, 116], "summary": {"covered_lines": 35, "num_statements": 35, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16, 17, 20, 27, 75], "summary": {"covered_lines": 17, "num_statements": 17, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16, 17, 20, 21, 22, 23, 24, 27, 28, 29, 30, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 45, 47, 48, 49, 51, 52, 53, 54, 55, 58, 59, 60, 61, 62, 67, 68, 69, 70, 71, 72, 75, 76, 77, 78, 79, 80, 81, 83, 84, 85, 86, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 105, 107, 108, 109, 110, 112, 114, 115, 116], "summary": {"covered_lines": 90, "num_statements": 90, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_manager_add_password.py": {"executed_lines": [1, 2, 3, 4, 6, 8, 10, 12, 13, 14, 15, 16, 19, 20, 21, 24, 25, 26, 27, 28, 29, 30, 31, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 46, 66, 67, 68, 70, 71, 73, 74, 76, 77, 90, 93, 94, 95, 96, 97, 98, 99, 100, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 116, 136, 137, 138, 140, 141, 146, 147, 149, 150, 151, 154, 155, 156, 157, 158, 159, 160, 161, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 176, 186, 187, 188, 190, 191, 193, 194, 196, 197, 210, 213, 216, 217, 218, 219, 220, 221, 222, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 237, 249, 250, 251, 253, 254, 256, 257, 258, 259, 260, 261, 264, 267, 268, 269, 270, 271, 272, 273, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 288, 299, 300, 301, 303, 304, 306, 307, 308, 311, 312, 313, 314, 315, 316, 317, 318, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 333, 334, 335, 337, 338], "summary": {"covered_lines": 195, "num_statements": 195, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"FakePasswordGenerator.generate_password": {"executed_lines": [21], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_handle_add_password": {"executed_lines": [25, 26, 27, 28, 29, 30, 31, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 46, 66, 67, 68, 70, 71, 73, 74, 76, 77, 90], "summary": {"covered_lines": 30, "num_statements": 30, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_handle_add_password_secret_mode": {"executed_lines": [94, 95, 96, 97, 98, 99, 100, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 116, 136, 137, 138, 140, 141, 146, 147, 149, 150, 151], "summary": {"covered_lines": 31, "num_statements": 31, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_handle_add_password_quick_mode": {"executed_lines": [155, 156, 157, 158, 159, 160, 161, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 176, 186, 187, 188, 190, 191, 193, 194, 196, 197, 210], "summary": {"covered_lines": 30, "num_statements": 30, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_handle_add_password_quick_mode_reprompts_invalid_length": {"executed_lines": [216, 217, 218, 219, 220, 221, 222, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 237, 249, 250, 251, 253, 254, 256, 257, 258, 259, 260, 261], "summary": {"covered_lines": 31, "num_statements": 31, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_handle_add_password_reprompts_invalid_mode": {"executed_lines": [267, 268, 269, 270, 271, 272, 273, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 288, 299, 300, 301, 303, 304, 306, 307, 308], "summary": {"covered_lines": 28, "num_statements": 28, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_handle_add_password_empty_mode_cancels": {"executed_lines": [312, 313, 314, 315, 316, 317, 318, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 333, 334, 335, 337, 338], "summary": {"covered_lines": 24, "num_statements": 24, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 6, 8, 10, 12, 13, 14, 15, 16, 19, 20, 24, 93, 154, 213, 264, 311], "summary": {"covered_lines": 20, "num_statements": 20, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"FakePasswordGenerator": {"executed_lines": [21], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 6, 8, 10, 12, 13, 14, 15, 16, 19, 20, 24, 25, 26, 27, 28, 29, 30, 31, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 46, 66, 67, 68, 70, 71, 73, 74, 76, 77, 90, 93, 94, 95, 96, 97, 98, 99, 100, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 116, 136, 137, 138, 140, 141, 146, 147, 149, 150, 151, 154, 155, 156, 157, 158, 159, 160, 161, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 176, 186, 187, 188, 190, 191, 193, 194, 196, 197, 210, 213, 216, 217, 218, 219, 220, 221, 222, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 237, 249, 250, 251, 253, 254, 256, 257, 258, 259, 260, 261, 264, 267, 268, 269, 270, 271, 272, 273, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 288, 299, 300, 301, 303, 304, 306, 307, 308, 311, 312, 313, 314, 315, 316, 317, 318, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 333, 334, 335, 337, 338], "summary": {"covered_lines": 194, "num_statements": 194, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_manager_add_totp.py": {"executed_lines": [1, 2, 3, 4, 6, 8, 10, 11, 12, 13, 16, 17, 18, 20, 21, 22, 25, 26, 27, 28, 29, 30, 31, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 44, 54, 55, 59, 60, 62, 63, 64, 65, 66, 67, 68, 69, 70], "summary": {"covered_lines": 47, "num_statements": 47, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"FakeNostrClient.__init__": {"executed_lines": [18], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "FakeNostrClient.publish_snapshot": {"executed_lines": [21, 22], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_handle_add_totp": {"executed_lines": [26, 27, 28, 29, 30, 31, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 44, 54, 55, 59, 60, 62, 63, 64, 65, 66, 67, 68, 69, 70], "summary": {"covered_lines": 30, "num_statements": 30, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 6, 8, 10, 11, 12, 13, 16, 17, 20, 25], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"FakeNostrClient": {"executed_lines": [18, 21, 22], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 6, 8, 10, 11, 12, 13, 16, 17, 20, 25, 26, 27, 28, 29, 30, 31, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 44, 54, 55, 59, 60, 62, 63, 64, 65, 66, 67, 68, 69, 70], "summary": {"covered_lines": 44, "num_statements": 44, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_manager_checksum_backup.py": {"executed_lines": [1, 2, 4, 6, 7, 10, 11, 12, 14, 15, 17, 18, 21, 22, 23, 24, 25, 28, 29, 30, 31, 32, 33, 34, 35, 36, 39, 40, 41, 42, 43, 44, 45, 46, 47, 50, 51, 52, 53, 54, 56, 57, 59, 60, 61, 62, 63, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77], "summary": {"covered_lines": 59, "num_statements": 59, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"FakeBackupManager.__init__": {"executed_lines": [12], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "FakeBackupManager.create_backup": {"executed_lines": [15], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "FakeBackupManager.restore_latest_backup": {"executed_lines": [18], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "_make_pm": {"executed_lines": [22, 23, 24, 25], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_handle_verify_checksum_success": {"executed_lines": [29, 30, 31, 32, 33, 34, 35, 36], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_handle_verify_checksum_failure": {"executed_lines": [40, 41, 42, 43, 44, 45, 46, 47], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_handle_verify_checksum_missing": {"executed_lines": [51, 52, 53, 54, 56, 59, 60, 61, 62, 63], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_handle_verify_checksum_missing.raise_missing": {"executed_lines": [57], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_backup_and_restore_database": {"executed_lines": [67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 6, 7, 10, 11, 14, 17, 21, 28, 39, 50, 66], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"FakeBackupManager": {"executed_lines": [12, 15, 18], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 6, 7, 10, 11, 14, 17, 21, 22, 23, 24, 25, 28, 29, 30, 31, 32, 33, 34, 35, 36, 39, 40, 41, 42, 43, 44, 45, 46, 47, 50, 51, 52, 53, 54, 56, 57, 59, 60, 61, 62, 63, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77], "summary": {"covered_lines": 56, "num_statements": 56, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_manager_current_notification.py": {"executed_lines": [1, 3, 4, 6, 8, 9, 12, 13, 14, 15, 16, 17, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 32, 33, 34, 35, 36, 38, 39, 41, 42, 44, 45], "summary": {"covered_lines": 33, "num_statements": 33, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"_make_pm": {"executed_lines": [13, 14, 15, 16, 17], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_notify_sets_current": {"executed_lines": [21, 22, 23, 24, 25, 26, 27, 28, 29], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_get_current_notification_ttl": {"executed_lines": [33, 34, 35, 36, 38, 39, 41, 42, 44, 45], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 4, 6, 8, 9, 12, 20, 32], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 3, 4, 6, 8, 9, 12, 13, 14, 15, 16, 17, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 32, 33, 34, 35, 36, 38, 39, 41, 42, 44, 45], "summary": {"covered_lines": 33, "num_statements": 33, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_manager_display_totp_codes.py": {"executed_lines": [1, 2, 4, 6, 9, 10, 11, 13, 18, 19, 20, 22, 24, 28, 31, 36, 37, 38, 39, 40, 43, 44, 45, 47, 48, 49, 51, 55, 57, 62, 63, 64, 65], "summary": {"covered_lines": 33, "num_statements": 35, "percent_covered": 94.28571428571429, "percent_covered_display": "94", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [14, 15], "excluded_lines": [], "functions": {"FakeNostrClient.__init__": {"executed_lines": [11], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "FakeNostrClient.publish_snapshot": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [14, 15], "excluded_lines": []}, "test_handle_display_totp_codes": {"executed_lines": [19, 20, 22, 24, 28, 31, 36, 37, 38, 39, 40], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_display_totp_codes_excludes_archived": {"executed_lines": [44, 45, 47, 48, 49, 51, 55, 57, 62, 63, 64, 65], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 6, 9, 10, 13, 18, 43], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"FakeNostrClient": {"executed_lines": [11], "summary": {"covered_lines": 1, "num_statements": 3, "percent_covered": 33.333333333333336, "percent_covered_display": "33", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [14, 15], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 6, 9, 10, 13, 18, 19, 20, 22, 24, 28, 31, 36, 37, 38, 39, 40, 43, 44, 45, 47, 48, 49, 51, 55, 57, 62, 63, 64, 65], "summary": {"covered_lines": 32, "num_statements": 32, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_manager_edit_totp.py": {"executed_lines": [1, 2, 3, 5, 7, 9, 10, 11, 12, 15, 16, 17, 19, 24, 25, 26, 27, 28, 29, 30, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 44, 46, 47, 48, 49, 52, 53, 55, 56, 57], "summary": {"covered_lines": 41, "num_statements": 43, "percent_covered": 95.34883720930233, "percent_covered_display": "95", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [20, 21], "excluded_lines": [], "functions": {"FakeNostrClient.__init__": {"executed_lines": [17], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "FakeNostrClient.publish_snapshot": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [20, 21], "excluded_lines": []}, "test_edit_totp_period_from_retrieve": {"executed_lines": [25, 26, 27, 28, 29, 30, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 44, 46, 47, 48, 49, 52, 53, 55, 56, 57], "summary": {"covered_lines": 27, "num_statements": 27, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 5, 7, 9, 10, 11, 12, 15, 16, 19, 24], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"FakeNostrClient": {"executed_lines": [17], "summary": {"covered_lines": 1, "num_statements": 3, "percent_covered": 33.333333333333336, "percent_covered_display": "33", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [20, 21], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 5, 7, 9, 10, 11, 12, 15, 16, 19, 24, 25, 26, 27, 28, 29, 30, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 44, 46, 47, 48, 49, 52, 53, 55, 56, 57], "summary": {"covered_lines": 40, "num_statements": 40, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_manager_import_database.py": {"executed_lines": [1, 2, 3, 4, 6, 8, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 24, 25, 26, 28, 31, 32, 36, 37, 38, 39, 42, 43, 45, 46, 48, 49, 53, 54, 55], "summary": {"covered_lines": 36, "num_statements": 37, "percent_covered": 97.29729729729729, "percent_covered_display": "97", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [29], "excluded_lines": [], "functions": {"_make_pm": {"executed_lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_import_non_backup_file": {"executed_lines": [25, 26, 28, 31, 32, 36, 37, 38, 39], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_import_non_backup_file.fake_import": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [29], "excluded_lines": []}, "test_import_missing_file": {"executed_lines": [43, 45, 48, 49, 53, 54, 55], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_import_missing_file.raise_missing": {"executed_lines": [46], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 6, 8, 11, 24, 42], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 6, 8, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 24, 25, 26, 28, 31, 32, 36, 37, 38, 39, 42, 43, 45, 46, 48, 49, 53, 54, 55], "summary": {"covered_lines": 36, "num_statements": 37, "percent_covered": 97.29729729729729, "percent_covered_display": "97", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [29], "excluded_lines": []}}}, "src/tests/test_manager_list_entries.py": {"executed_lines": [1, 2, 3, 5, 7, 9, 11, 13, 14, 15, 16, 17, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 39, 40, 41, 42, 44, 45, 47, 48, 49, 50, 51, 52, 55, 56, 57, 58, 59, 60, 61, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 74, 75, 76, 78, 79, 82, 83, 88, 89, 91, 92, 93, 94, 95, 96, 99, 101, 102, 103, 104, 105, 106, 108, 109, 110, 111, 112, 113, 114, 115, 116, 118, 120, 121, 126, 127, 132, 137, 138, 141, 142, 144, 146, 147, 150, 151, 152, 153, 154, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 169, 170, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 186, 187, 188, 189, 190, 192, 194, 195, 196, 197, 198, 199, 200, 203, 204, 205, 206, 207, 208, 209, 210, 211, 213, 215, 216, 217, 218, 219, 220, 221, 222, 225, 226, 227, 228, 229, 230, 232, 234, 235, 236, 237, 238, 239, 240, 241, 242, 245, 246, 247, 248, 249, 251, 253, 254, 255, 256, 257, 258, 261, 262, 263, 264, 265, 266, 268, 270, 271, 272, 273, 274, 275, 276, 277, 280, 293, 295, 296, 297, 298, 300, 303, 306, 307, 308, 311, 315, 317, 318, 320, 321, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 352, 355, 356, 357, 358, 360, 361, 363, 364, 365, 366, 367, 368, 371, 374, 376, 377, 378, 380, 381, 382, 383, 384, 385, 386, 390, 393, 395, 396, 398, 399, 400, 402, 403, 404, 405, 406], "summary": {"covered_lines": 282, "num_statements": 282, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_handle_list_entries": {"executed_lines": [21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 39, 40, 41, 42, 44, 45, 47, 48, 49, 50, 51, 52], "summary": {"covered_lines": 28, "num_statements": 28, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_list_entries_show_details": {"executed_lines": [56, 57, 58, 59, 60, 61, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 74, 75, 76, 78, 79, 82, 83, 88, 89, 91, 92, 93, 94, 95, 96], "summary": {"covered_lines": 31, "num_statements": 31, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_show_entry_details_by_index": {"executed_lines": [101, 102, 103, 104, 105, 106, 108, 109, 110, 111, 112, 113, 114, 115, 116, 118, 120, 121, 126, 127, 132, 137, 138, 141, 142, 144, 146, 147], "summary": {"covered_lines": 28, "num_statements": 28, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "_setup_manager": {"executed_lines": [151, 152, 153, 154, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "_detail_common": {"executed_lines": [170, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_show_seed_entry_details": {"executed_lines": [187, 188, 189, 190, 192, 194, 195, 196, 197, 198, 199, 200], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_show_ssh_entry_details": {"executed_lines": [204, 205, 206, 207, 208, 209, 210, 211, 213, 215, 216, 217, 218, 219, 220, 221, 222], "summary": {"covered_lines": 17, "num_statements": 17, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_show_pgp_entry_details": {"executed_lines": [226, 227, 228, 229, 230, 232, 234, 235, 236, 237, 238, 239, 240, 241, 242], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_show_nostr_entry_details": {"executed_lines": [246, 247, 248, 249, 251, 253, 254, 255, 256, 257, 258], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_show_managed_account_entry_details": {"executed_lines": [262, 263, 264, 265, 266, 268, 270, 271, 272, 273, 274, 275, 276, 277], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_show_entry_details_sensitive": {"executed_lines": [295, 296, 297, 298, 300, 303, 306, 307, 308, 311, 315, 317, 318, 320, 321, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 352, 355, 356, 357, 358, 360, 361, 363, 364, 365, 366, 367, 368], "summary": {"covered_lines": 52, "num_statements": 52, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_show_entry_details_with_enum_type": {"executed_lines": [376, 377, 378, 380, 381, 382, 383, 384, 385, 386, 390, 393, 395, 396, 398, 399, 400, 402, 403, 404, 405, 406], "summary": {"covered_lines": 22, "num_statements": 22, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 5, 7, 9, 11, 13, 14, 15, 16, 17, 20, 55, 99, 150, 169, 186, 203, 225, 245, 261, 280, 293, 371, 374], "summary": {"covered_lines": 26, "num_statements": 26, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 5, 7, 9, 11, 13, 14, 15, 16, 17, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 39, 40, 41, 42, 44, 45, 47, 48, 49, 50, 51, 52, 55, 56, 57, 58, 59, 60, 61, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 74, 75, 76, 78, 79, 82, 83, 88, 89, 91, 92, 93, 94, 95, 96, 99, 101, 102, 103, 104, 105, 106, 108, 109, 110, 111, 112, 113, 114, 115, 116, 118, 120, 121, 126, 127, 132, 137, 138, 141, 142, 144, 146, 147, 150, 151, 152, 153, 154, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 169, 170, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 186, 187, 188, 189, 190, 192, 194, 195, 196, 197, 198, 199, 200, 203, 204, 205, 206, 207, 208, 209, 210, 211, 213, 215, 216, 217, 218, 219, 220, 221, 222, 225, 226, 227, 228, 229, 230, 232, 234, 235, 236, 237, 238, 239, 240, 241, 242, 245, 246, 247, 248, 249, 251, 253, 254, 255, 256, 257, 258, 261, 262, 263, 264, 265, 266, 268, 270, 271, 272, 273, 274, 275, 276, 277, 280, 293, 295, 296, 297, 298, 300, 303, 306, 307, 308, 311, 315, 317, 318, 320, 321, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 352, 355, 356, 357, 358, 360, 361, 363, 364, 365, 366, 367, 368, 371, 374, 376, 377, 378, 380, 381, 382, 383, 384, 385, 386, 390, 393, 395, 396, 398, 399, 400, 402, 403, 404, 405, 406], "summary": {"covered_lines": 282, "num_statements": 282, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_manager_retrieve_totp.py": {"executed_lines": [1, 2, 3, 5, 7, 9, 10, 11, 12, 15, 16, 17, 19, 24, 25, 26, 27, 28, 29, 30, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 44, 46, 47, 48, 52, 55, 56, 61, 62, 63, 64], "summary": {"covered_lines": 42, "num_statements": 44, "percent_covered": 95.45454545454545, "percent_covered_display": "95", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [20, 21], "excluded_lines": [], "functions": {"FakeNostrClient.__init__": {"executed_lines": [17], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "FakeNostrClient.publish_snapshot": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [20, 21], "excluded_lines": []}, "test_handle_retrieve_totp_entry": {"executed_lines": [25, 26, 27, 28, 29, 30, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 44, 46, 47, 48, 52, 55, 56, 61, 62, 63, 64], "summary": {"covered_lines": 28, "num_statements": 28, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 5, 7, 9, 10, 11, 12, 15, 16, 19, 24], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"FakeNostrClient": {"executed_lines": [17], "summary": {"covered_lines": 1, "num_statements": 3, "percent_covered": 33.333333333333336, "percent_covered_display": "33", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [20, 21], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 5, 7, 9, 10, 11, 12, 15, 16, 19, 24, 25, 26, 27, 28, 29, 30, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 44, 46, 47, 48, 52, 55, 56, 61, 62, 63, 64], "summary": {"covered_lines": 41, "num_statements": 41, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_manager_search_display.py": {"executed_lines": [1, 2, 3, 4, 6, 8, 10, 11, 12, 13, 16, 17, 18, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 37, 38, 41, 42, 44, 45, 47, 48, 49, 50, 51], "summary": {"covered_lines": 39, "num_statements": 39, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_search_entries_prompt_for_details": {"executed_lines": [17, 18, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 37, 38, 41, 42, 44, 45, 47, 48, 49, 50, 51], "summary": {"covered_lines": 28, "num_statements": 28, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 6, 8, 10, 11, 12, 13, 16], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 6, 8, 10, 11, 12, 13, 16, 17, 18, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 37, 38, 41, 42, 44, 45, 47, 48, 49, 50, 51], "summary": {"covered_lines": 39, "num_statements": 39, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_manager_seed_setup.py": {"executed_lines": [1, 2, 3, 4, 7, 8, 9, 10, 13, 14, 16, 19, 20, 21, 22, 25, 26, 27, 28, 29, 30, 35, 36, 38, 39, 41, 42, 45, 46, 47, 49, 51, 52, 53, 55, 56, 62, 63, 65, 66, 67, 70, 71, 72, 74, 76, 81, 82, 83, 84, 86, 87, 88, 89, 90, 91], "summary": {"covered_lines": 56, "num_statements": 56, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_validate_bip85_seed_invalid_word": {"executed_lines": [8, 9, 10], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_validate_bip85_seed_checksum_failure": {"executed_lines": [14, 16, 19, 20, 21, 22], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_setup_existing_seed_words": {"executed_lines": [26, 27, 28, 29, 30, 35, 36, 38, 39, 41, 42], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_setup_existing_seed_paste": {"executed_lines": [46, 47, 49, 51, 55, 56, 62, 63, 65, 66, 67], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_setup_existing_seed_paste.fake_masked_input": {"executed_lines": [52, 53], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_setup_existing_seed_with_args": {"executed_lines": [71, 72, 74, 76, 81, 86, 87, 88, 89, 90, 91], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_setup_existing_seed_with_args.finalize": {"executed_lines": [82, 83, 84], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 7, 13, 25, 45, 70], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 7, 8, 9, 10, 13, 14, 16, 19, 20, 21, 22, 25, 26, 27, 28, 29, 30, 35, 36, 38, 39, 41, 42, 45, 46, 47, 49, 51, 52, 53, 55, 56, 62, 63, 65, 66, 67, 70, 71, 72, 74, 76, 81, 82, 83, 84, 86, 87, 88, 89, 90, 91], "summary": {"covered_lines": 56, "num_statements": 56, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_manager_warning_notifications.py": {"executed_lines": [1, 2, 3, 4, 6, 8, 9, 10, 11, 12, 15, 16, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 34, 35, 36, 39, 40, 42, 43, 44, 45], "summary": {"covered_lines": 35, "num_statements": 35, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"_make_pm": {"executed_lines": [16, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_handle_search_entries_no_query": {"executed_lines": [35, 36, 39, 40, 42, 43, 44, 45], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 6, 8, 9, 10, 11, 12, 15, 34], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 6, 8, 9, 10, 11, 12, 15, 16, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 34, 35, 36, 39, 40, 42, 43, 44, 45], "summary": {"covered_lines": 35, "num_statements": 35, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_manager_workflow.py": {"executed_lines": [1, 2, 3, 4, 6, 8, 9, 10, 11, 12, 15, 16, 17, 20, 21, 22, 24, 25, 26, 29, 30, 31, 32, 33, 34, 35, 37, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 51, 81, 83, 89, 90, 91, 92, 93, 94, 95, 96, 98, 99, 100, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111], "summary": {"covered_lines": 62, "num_statements": 62, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"FakePasswordGenerator.generate_password": {"executed_lines": [17], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "FakeNostrClient.__init__": {"executed_lines": [22], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "FakeNostrClient.publish_snapshot": {"executed_lines": [25, 26], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_manager_workflow": {"executed_lines": [30, 31, 32, 33, 34, 35, 37, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 51, 81, 83, 89, 90, 91, 92, 93, 94, 95, 96, 98, 99, 100, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111], "summary": {"covered_lines": 42, "num_statements": 42, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 6, 8, 9, 10, 11, 12, 15, 16, 20, 21, 24, 29], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"FakePasswordGenerator": {"executed_lines": [17], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "FakeNostrClient": {"executed_lines": [22, 25, 26], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 6, 8, 9, 10, 11, 12, 15, 16, 20, 21, 24, 29, 30, 31, 32, 33, 34, 35, 37, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 51, 81, 83, 89, 90, 91, 92, 93, 94, 95, 96, 98, 99, 100, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111], "summary": {"covered_lines": 58, "num_statements": 58, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_manifest_id_privacy.py": {"executed_lines": [1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_published_events_no_fingerprint": {"executed_lines": [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 4], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_manifest_state_restore.py": {"executed_lines": [1, 2, 3, 5, 7, 8, 9, 10, 11, 14, 15, 16, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 51, 52, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 67, 68, 69, 70], "summary": {"covered_lines": 58, "num_statements": 58, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"_init_pm": {"executed_lines": [15, 16, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34], "summary": {"covered_lines": 19, "num_statements": 19, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_manifest_state_restored": {"executed_lines": [38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 51, 52, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 67, 68, 69, 70], "summary": {"covered_lines": 28, "num_statements": 28, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 5, 7, 8, 9, 10, 11, 14, 37], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 5, 7, 8, 9, 10, 11, 14, 15, 16, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 51, 52, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 67, 68, 69, 70], "summary": {"covered_lines": 58, "num_statements": 58, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_memory_protection.py": {"executed_lines": [1, 2, 4, 6, 8, 11, 12, 13, 14, 15, 18, 19, 20, 23, 24, 25, 26, 27, 28, 29], "summary": {"covered_lines": 20, "num_statements": 20, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_inmemory_secret_round_trip_bytes_and_str": {"executed_lines": [12, 13, 14, 15], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_inmemory_secret_invalid_type": {"executed_lines": [19, 20], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_inmemory_secret_wipe_clears_attributes": {"executed_lines": [24, 25, 26, 27, 28, 29], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 6, 8, 11, 18, 23], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 4, 6, 8, 11, 12, 13, 14, 15, 18, 19, 20, 23, 24, 25, 26, 27, 28, 29], "summary": {"covered_lines": 20, "num_statements": 20, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_menu_navigation.py": {"executed_lines": [1, 2, 3, 4, 5, 7, 9, 12, 13, 38, 39, 40, 42, 43, 45, 46, 47, 48, 49], "summary": {"covered_lines": 19, "num_statements": 19, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"_make_pm": {"executed_lines": [13], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_navigate_all_main_menu_options": {"executed_lines": [39, 40, 42, 43, 45, 46, 47, 48, 49], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 7, 9, 12, 38], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 5, 7, 9, 12, 13, 38, 39, 40, 42, 43, 45, 46, 47, 48, 49], "summary": {"covered_lines": 19, "num_statements": 19, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_menu_notifications.py": {"executed_lines": [1, 2, 3, 4, 5, 6, 8, 10, 13, 14, 15, 16, 17, 42, 43, 44, 45, 53, 54, 55, 56, 57, 58, 61, 62, 63, 64, 65, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79], "summary": {"covered_lines": 38, "num_statements": 38, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"_make_pm": {"executed_lines": [14, 15, 16, 17], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_display_menu_prints_notifications": {"executed_lines": [43, 44, 45, 53, 54, 55, 56, 57, 58], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_display_menu_reuses_notification_line": {"executed_lines": [62, 63, 64, 65, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 6, 8, 10, 13, 42, 61], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 5, 6, 8, 10, 13, 14, 15, 16, 17, 42, 43, 44, 45, 53, 54, 55, 56, 57, 58, 61, 62, 63, 64, 65, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79], "summary": {"covered_lines": 38, "num_statements": 38, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_menu_options.py": {"executed_lines": [1, 2, 3, 4, 5, 7, 9, 12, 13, 32, 33, 34, 35, 36, 37, 38, 39, 40, 43, 44, 45, 46, 47, 48, 49, 50, 51], "summary": {"covered_lines": 27, "num_statements": 27, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"_make_pm": {"executed_lines": [13], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_menu_totp_option": {"executed_lines": [33, 34, 35, 36, 37, 38, 39, 40], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_menu_settings_option": {"executed_lines": [44, 45, 46, 47, 48, 49, 50, 51], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 7, 9, 12, 32, 43], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 5, 7, 9, 12, 13, 32, 33, 34, 35, 36, 37, 38, 39, 40, 43, 44, 45, 46, 47, 48, 49, 50, 51], "summary": {"covered_lines": 27, "num_statements": 27, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_menu_search.py": {"executed_lines": [1, 2, 3, 4, 5, 7, 9, 12, 13, 29, 32, 33, 34, 35, 36, 37, 38, 39, 40], "summary": {"covered_lines": 19, "num_statements": 19, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"_make_pm": {"executed_lines": [13, 29], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_menu_search_option": {"executed_lines": [33, 34, 35, 36, 37, 38, 39, 40], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 7, 9, 12, 32], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 5, 7, 9, 12, 13, 29, 32, 33, 34, 35, 36, 37, 38, 39, 40], "summary": {"covered_lines": 19, "num_statements": 19, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_migrations.py": {"executed_lines": [1, 2, 3, 4, 6, 8, 11, 12, 13, 16, 17, 18, 19, 20, 21, 22, 31, 34, 35, 36, 37, 38, 39, 40, 49, 52, 53, 54, 60, 61, 62, 63, 72, 75, 76, 77, 78, 79, 80, 83, 84, 85, 98, 99, 100, 101, 102, 104, 105, 106], "summary": {"covered_lines": 50, "num_statements": 50, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"setup": {"executed_lines": [12, 13], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_migrate_v0_to_v4": {"executed_lines": [17, 18, 19, 20, 21, 22, 31], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_migrate_v1_to_v4": {"executed_lines": [35, 36, 37, 38, 39, 40, 49], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_migrate_v2_to_v4": {"executed_lines": [53, 54, 60, 61, 62, 63, 72], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_error_on_future_version": {"executed_lines": [76, 77, 78, 79, 80], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_schema_migration_persisted_once": {"executed_lines": [84, 85, 98, 99, 100, 101, 102, 104, 105, 106], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 6, 8, 11, 16, 34, 52, 75, 83], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 6, 8, 11, 12, 13, 16, 17, 18, 19, 20, 21, 22, 31, 34, 35, 36, 37, 38, 39, 40, 49, 52, 53, 54, 60, 61, 62, 63, 72, 75, 76, 77, 78, 79, 80, 83, 84, 85, 98, 99, 100, 101, 102, 104, 105, 106], "summary": {"covered_lines": 50, "num_statements": 50, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_modify_ssh_managed_entries.py": {"executed_lines": [1, 2, 3, 5, 7, 9, 10, 11, 14, 15, 16, 17, 18, 21, 22, 23, 24, 26, 27, 28, 30, 31, 32, 33, 36, 37, 38, 39, 41, 42, 50, 52, 53, 54, 55, 56], "summary": {"covered_lines": 36, "num_statements": 36, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"setup_mgr": {"executed_lines": [15, 16, 17, 18], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_modify_ssh_entry": {"executed_lines": [22, 23, 24, 26, 27, 28, 30, 31, 32, 33], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_modify_managed_account_entry": {"executed_lines": [37, 38, 39, 41, 42, 50, 52, 53, 54, 55, 56], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 5, 7, 9, 10, 11, 14, 21, 36], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 5, 7, 9, 10, 11, 14, 15, 16, 17, 18, 21, 22, 23, 24, 26, 27, 28, 30, 31, 32, 33, 36, 37, 38, 39, 41, 42, 50, 52, 53, 54, 55, 56], "summary": {"covered_lines": 36, "num_statements": 36, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_modify_totp_entry.py": {"executed_lines": [1, 2, 4, 5, 6, 9, 10, 11, 12, 13, 15, 16, 18, 19, 20, 21, 24, 25, 26, 27, 28, 30, 31, 32], "summary": {"covered_lines": 24, "num_statements": 24, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_modify_totp_entry_period_digits_and_archive": {"executed_lines": [10, 11, 12, 13, 15, 16, 18, 19, 20, 21], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_modify_totp_entry_invalid_field": {"executed_lines": [25, 26, 27, 28, 30, 31, 32], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 5, 6, 9, 24], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 4, 5, 6, 9, 10, 11, 12, 13, 15, 16, 18, 19, 20, 21, 24, 25, 26, 27, 28, 30, 31, 32], "summary": {"covered_lines": 24, "num_statements": 24, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_multiple_deltas_sync.py": {"executed_lines": [1, 2, 3, 5, 7, 8, 9, 10, 13, 14, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 32, 33, 34, 35, 36, 37, 38, 39, 41, 42, 45, 46, 47, 50, 53, 54, 55, 57, 58, 59, 62, 63, 64, 65, 68, 69, 70, 71, 72, 73, 74, 75, 77, 78, 80, 81, 82, 84, 85, 86, 88, 89, 90, 93, 94, 95, 96], "summary": {"covered_lines": 71, "num_statements": 71, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"_init_pm": {"executed_lines": [14, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_sync_applies_multiple_deltas": {"executed_lines": [33, 34, 35, 36, 37, 38, 39, 41, 42, 45, 46, 47, 50, 53, 54, 55, 57, 58, 59, 62, 63, 64, 65], "summary": {"covered_lines": 23, "num_statements": 23, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_initial_sync_applies_multiple_deltas": {"executed_lines": [69, 70, 71, 72, 73, 74, 75, 77, 78, 80, 81, 82, 84, 85, 86, 88, 89, 90, 93, 94, 95, 96], "summary": {"covered_lines": 22, "num_statements": 22, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 5, 7, 8, 9, 10, 13, 32, 68], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 5, 7, 8, 9, 10, 13, 14, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 32, 33, 34, 35, 36, 37, 38, 39, 41, 42, 45, 46, 47, 50, 53, 54, 55, 57, 58, 59, 62, 63, 64, 65, 68, 69, 70, 71, 72, 73, 74, 75, 77, 78, 80, 81, 82, 84, 85, 86, 88, 89, 90, 93, 94, 95, 96], "summary": {"covered_lines": 71, "num_statements": 71, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_multiple_fingerprint_prompt.py": {"executed_lines": [1, 2, 3, 5, 6, 7, 9, 11, 16, 17, 18, 19, 21, 22, 24, 25, 26, 28, 29, 31, 34, 39, 42, 45, 50, 54, 56, 57, 58, 60, 62, 63, 64], "summary": {"covered_lines": 33, "num_statements": 33, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_prompt_when_multiple_fingerprints": {"executed_lines": [17, 18, 19, 21, 22, 24, 25, 26, 28, 31, 34, 39, 42, 45, 50, 54, 56, 60, 62, 63, 64], "summary": {"covered_lines": 21, "num_statements": 21, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_prompt_when_multiple_fingerprints.init_fm": {"executed_lines": [29], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_prompt_when_multiple_fingerprints.fake_input": {"executed_lines": [57, 58], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 5, 6, 7, 9, 11, 16], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 5, 6, 7, 9, 11, 16, 17, 18, 19, 21, 22, 24, 25, 26, 28, 29, 31, 34, 39, 42, 45, 50, 54, 56, 57, 58, 60, 62, 63, 64], "summary": {"covered_lines": 33, "num_statements": 33, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_new_seed_profile_creation.py": {"executed_lines": [1, 2, 3, 5, 6, 7, 8, 10, 13, 14, 15, 16, 17, 18, 19, 20, 24, 25, 26, 28, 29, 31, 32, 33, 36, 37, 38, 39, 40, 43, 44, 45, 46, 47, 48, 50, 52, 53, 54, 55], "summary": {"covered_lines": 40, "num_statements": 40, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"setup_pm": {"executed_lines": [14, 15, 16, 17, 18, 19, 20, 24, 25, 28, 31, 32, 33, 36, 37, 38, 39, 40], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "setup_pm.DummyEnc.__init__": {"executed_lines": [26], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "setup_pm.DummyEnc.encrypt_parent_seed": {"executed_lines": [29], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_generate_new_seed_creates_profile": {"executed_lines": [44, 45, 46, 47, 48, 50, 52, 53, 54, 55], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 5, 6, 7, 8, 10, 13, 43], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"setup_pm.DummyEnc": {"executed_lines": [26, 29], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 5, 6, 7, 8, 10, 13, 14, 15, 16, 17, 18, 19, 20, 24, 25, 28, 31, 32, 33, 36, 37, 38, 39, 40, 43, 44, 45, 46, 47, 48, 50, 52, 53, 54, 55], "summary": {"covered_lines": 38, "num_statements": 38, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_nonce_uniqueness.py": {"executed_lines": [1, 3, 4, 5, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_nonce_uniqueness": {"executed_lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 4, 5, 8], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 3, 4, 5, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_noninteractive_init_unlock.py": {"executed_lines": [1, 2, 3, 4, 6, 7, 8, 9, 10, 13, 14, 15, 16, 17, 18, 20, 21, 22, 23, 24, 25, 28, 30, 32, 33, 34, 36, 39, 42, 46, 47, 50, 51, 52, 53, 54, 55, 57, 58, 59, 60, 61, 62, 66, 67, 68, 69, 70, 72, 73, 75, 78, 81, 83, 84], "summary": {"covered_lines": 55, "num_statements": 55, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_init_with_password": {"executed_lines": [14, 15, 16, 17, 18, 20, 21, 22, 23, 24, 25, 28, 30, 32, 36, 39, 42, 46, 47], "summary": {"covered_lines": 19, "num_statements": 19, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_init_with_password.fake_setup": {"executed_lines": [33, 34], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_unlock_with_password": {"executed_lines": [51, 52, 53, 54, 55, 57, 58, 59, 60, 61, 62, 66, 67, 68, 69, 70, 72, 75, 78, 81, 83, 84], "summary": {"covered_lines": 22, "num_statements": 22, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_unlock_with_password.fake_setup": {"executed_lines": [73], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 6, 7, 8, 9, 10, 13, 50], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 6, 7, 8, 9, 10, 13, 14, 15, 16, 17, 18, 20, 21, 22, 23, 24, 25, 28, 30, 32, 33, 34, 36, 39, 42, 46, 47, 50, 51, 52, 53, 54, 55, 57, 58, 59, 60, 61, 62, 66, 67, 68, 69, 70, 72, 73, 75, 78, 81, 83, 84], "summary": {"covered_lines": 55, "num_statements": 55, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_nostr_backup.py": {"executed_lines": [1, 2, 3, 4, 5, 6, 8, 10, 11, 12, 13, 14, 17, 18, 19, 20, 21, 22, 23, 26, 27, 28, 30, 40, 41, 42, 44, 45], "summary": {"covered_lines": 28, "num_statements": 28, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_backup_and_publish_to_nostr": {"executed_lines": [18, 19, 20, 21, 22, 23, 26, 27, 28, 30, 40, 41, 42, 44, 45], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 6, 8, 10, 11, 12, 13, 14, 17], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 5, 6, 8, 10, 11, 12, 13, 14, 17, 18, 19, 20, 21, 22, 23, 26, 27, 28, 30, 40, 41, 42, 44, 45], "summary": {"covered_lines": 28, "num_statements": 28, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_nostr_client.py": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 18, 19, 20, 21, 22, 24, 27, 28, 29, 31, 34, 35, 36, 37, 39, 40, 42, 43, 46, 47, 48, 49, 51, 52, 54, 55, 58, 59, 60, 62, 63, 65, 66, 68, 69, 71, 72, 73, 77, 78, 79, 81, 84, 85, 86, 87, 90, 91, 92, 93, 94, 95, 98, 99, 100, 101, 102, 103, 106, 107, 109, 111, 112, 113, 115, 116, 118, 119, 122, 123, 125, 127, 128, 130, 132, 134, 137, 138, 140, 142, 144, 145, 147, 149, 150, 152, 153, 154, 157, 158, 160, 161, 162, 163, 164, 165, 167, 169, 170, 172, 174, 175, 177, 179, 181, 182, 185, 186, 188, 189, 191, 192, 194, 195, 197, 198, 199, 201, 202, 203, 204, 205, 207], "summary": {"covered_lines": 136, "num_statements": 137, "percent_covered": 99.27007299270073, "percent_covered_display": "99", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [74], "excluded_lines": [], "functions": {"test_nostr_client_uses_custom_relays": {"executed_lines": [19, 20, 21, 22, 24, 27, 28, 29, 31], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "FakeAddRelaysClient.__init__": {"executed_lines": [36, 37], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "FakeAddRelaysClient.add_relays": {"executed_lines": [40], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "FakeAddRelaysClient.connect": {"executed_lines": [43], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "FakeAddRelayClient.__init__": {"executed_lines": [48, 49], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "FakeAddRelayClient.add_relay": {"executed_lines": [52], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "FakeAddRelayClient.connect": {"executed_lines": [55], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "FakeWebSocket.__init__": {"executed_lines": [60], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "FakeWebSocket.__aenter__": {"executed_lines": [63], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "FakeWebSocket.__aexit__": {"executed_lines": [66], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "FakeWebSocket.send": {"executed_lines": [69], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "FakeWebSocket.recv": {"executed_lines": [72, 73], "summary": {"covered_lines": 2, "num_statements": 3, "percent_covered": 66.66666666666667, "percent_covered_display": "67", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [74], "excluded_lines": []}, "_setup_client": {"executed_lines": [78, 79, 81, 84, 85, 86, 87], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_initialize_client_pool_add_relays_used": {"executed_lines": [91, 92, 93, 94, 95], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_initialize_client_pool_add_relay_fallback": {"executed_lines": [99, 100, 101, 102, 103], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_check_relay_health_runs_async": {"executed_lines": [107, 109, 111, 115, 116, 118, 119], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_check_relay_health_runs_async.fake_check": {"executed_lines": [112, 113], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_ping_relay_accepts_eose": {"executed_lines": [123, 125, 127, 130, 132, 134], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_ping_relay_accepts_eose.fake_connect": {"executed_lines": [128], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_update_relays_reinitializes_pool": {"executed_lines": [138, 140, 142, 144, 147, 149, 150, 152, 153, 154], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_update_relays_reinitializes_pool.fake_init": {"executed_lines": [145], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_retrieve_json_sync_backoff": {"executed_lines": [158, 160, 161, 162, 163, 164, 165, 167, 169, 172, 174, 177, 179, 181, 182], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_retrieve_json_sync_backoff.fake_sleep": {"executed_lines": [170], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_retrieve_json_sync_backoff.fake_async": {"executed_lines": [175], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_client_methods_run_in_event_loop": {"executed_lines": [186, 188, 191, 194, 197, 198, 199, 201, 207], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_client_methods_run_in_event_loop.fake_init": {"executed_lines": [189], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_client_methods_run_in_event_loop.fake_send_event": {"executed_lines": [192], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_client_methods_run_in_event_loop.fake_retrieve": {"executed_lines": [195], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_client_methods_run_in_event_loop.run_all": {"executed_lines": [202, 203, 204, 205], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 18, 34, 35, 39, 42, 46, 47, 51, 54, 58, 59, 62, 65, 68, 71, 77, 90, 98, 106, 122, 137, 157, 185], "summary": {"covered_lines": 36, "num_statements": 36, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"FakeAddRelaysClient": {"executed_lines": [36, 37, 40, 43], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "FakeAddRelayClient": {"executed_lines": [48, 49, 52, 55], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "FakeWebSocket": {"executed_lines": [60, 63, 66, 69, 72, 73], "summary": {"covered_lines": 6, "num_statements": 7, "percent_covered": 85.71428571428571, "percent_covered_display": "86", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [74], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 18, 19, 20, 21, 22, 24, 27, 28, 29, 31, 34, 35, 39, 42, 46, 47, 51, 54, 58, 59, 62, 65, 68, 71, 77, 78, 79, 81, 84, 85, 86, 87, 90, 91, 92, 93, 94, 95, 98, 99, 100, 101, 102, 103, 106, 107, 109, 111, 112, 113, 115, 116, 118, 119, 122, 123, 125, 127, 128, 130, 132, 134, 137, 138, 140, 142, 144, 145, 147, 149, 150, 152, 153, 154, 157, 158, 160, 161, 162, 163, 164, 165, 167, 169, 170, 172, 174, 175, 177, 179, 181, 182, 185, 186, 188, 189, 191, 192, 194, 195, 197, 198, 199, 201, 202, 203, 204, 205, 207], "summary": {"covered_lines": 122, "num_statements": 122, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_nostr_contract.py": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 9, 11, 12, 15, 16, 17, 20, 21, 22, 23, 25, 26, 28, 31, 32, 34, 37, 38, 40, 41, 42, 44, 45, 46, 48, 50, 51, 52, 54, 55, 56, 58, 59, 61, 64, 65, 66, 68, 71, 72, 73, 74, 75, 78, 79, 80, 81, 82, 83, 84], "summary": {"covered_lines": 57, "num_statements": 59, "percent_covered": 96.61016949152543, "percent_covered_display": "97", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [29, 35], "excluded_lines": [], "functions": {"MockNostrServer.__init__": {"executed_lines": [17], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "MockClient.__init__": {"executed_lines": [22, 23], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "MockClient.add_relays": {"executed_lines": [26], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "MockClient.add_relay": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [29], "excluded_lines": []}, "MockClient.connect": {"executed_lines": [32], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "MockClient.disconnect": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [35], "excluded_lines": []}, "MockClient.send_event": {"executed_lines": [38, 40, 41, 44, 45, 48], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "MockClient.send_event.FakeId.to_hex": {"executed_lines": [42], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "MockClient.send_event.FakeOutput.__init__": {"executed_lines": [46], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "MockClient.fetch_events": {"executed_lines": [51, 52, 54, 55, 58, 61], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "MockClient.fetch_events.FakeEvents.__init__": {"executed_lines": [56], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "MockClient.fetch_events.FakeEvents.to_vec": {"executed_lines": [59], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "setup_client": {"executed_lines": [65, 66, 68, 71, 72, 73, 74, 75], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_publish_and_retrieve": {"executed_lines": [79, 80, 81, 82, 83, 84], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 9, 11, 12, 15, 16, 20, 21, 25, 28, 31, 34, 37, 50, 64, 78], "summary": {"covered_lines": 22, "num_statements": 22, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"MockNostrServer": {"executed_lines": [17], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "MockClient": {"executed_lines": [22, 23, 26, 32, 38, 40, 41, 44, 45, 48, 51, 52, 54, 55, 58, 61], "summary": {"covered_lines": 16, "num_statements": 18, "percent_covered": 88.88888888888889, "percent_covered_display": "89", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [29, 35], "excluded_lines": []}, "MockClient.send_event.FakeId": {"executed_lines": [42], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "MockClient.send_event.FakeOutput": {"executed_lines": [46], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "MockClient.fetch_events.FakeEvents": {"executed_lines": [56, 59], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 9, 11, 12, 15, 16, 20, 21, 25, 28, 31, 34, 37, 50, 64, 65, 66, 68, 71, 72, 73, 74, 75, 78, 79, 80, 81, 82, 83, 84], "summary": {"covered_lines": 36, "num_statements": 36, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_nostr_dummy_client.py": {"executed_lines": [1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 34, 35, 37, 38, 39, 40, 41, 42, 43, 44, 45, 48, 49, 50, 51, 52, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 72, 73, 74, 76, 77, 78, 79, 80, 81, 82, 83, 85, 86, 88, 90, 91, 93, 94, 96, 97, 98, 99, 101, 103, 105, 107, 116, 117, 120, 121, 122, 124, 126, 127, 130, 131, 133, 135, 137, 139, 144, 147, 148, 150, 151, 152, 154, 156, 157, 158, 160, 163, 164, 165, 167, 168, 169, 170, 172, 173, 174, 175, 176, 178, 179, 180, 182, 184, 185], "summary": {"covered_lines": 128, "num_statements": 129, "percent_covered": 99.2248062015504, "percent_covered_display": "99", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [161], "excluded_lines": [], "functions": {"test_manifest_generation": {"executed_lines": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_retrieve_multi_chunk_snapshot": {"executed_lines": [35, 37, 38, 39, 40, 41, 42, 43, 44, 45, 48, 49, 50, 51, 52], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_publish_and_fetch_deltas": {"executed_lines": [56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_fetch_snapshot_fallback_on_missing_chunk": {"executed_lines": [73, 74, 76, 77, 78, 79, 80, 81, 82, 83, 85, 88, 90, 91, 93, 94, 96, 97, 98, 99, 101, 103, 105, 107, 116, 117], "summary": {"covered_lines": 26, "num_statements": 26, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_fetch_snapshot_fallback_on_missing_chunk.fake_sleep": {"executed_lines": [86], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_fetch_snapshot_uses_event_ids": {"executed_lines": [121, 122, 124, 126, 127, 130, 131, 133, 135, 137, 139, 144], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_publish_delta_aborts_if_outdated": {"executed_lines": [148, 150, 151, 152, 154, 156, 157, 160, 163, 164, 167, 168, 169, 170, 172, 173, 174, 175, 176, 178, 179, 180, 182, 184, 185], "summary": {"covered_lines": 25, "num_statements": 25, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_publish_delta_aborts_if_outdated.DummyKeys.private_key_hex": {"executed_lines": [158], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_publish_delta_aborts_if_outdated.DummyKeys.public_key_hex": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [161], "excluded_lines": []}, "test_publish_delta_aborts_if_outdated.DummyKeyManager.__init__": {"executed_lines": [165], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 15, 34, 55, 72, 120, 147], "summary": {"covered_lines": 17, "num_statements": 17, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"test_publish_delta_aborts_if_outdated.DummyKeys": {"executed_lines": [158], "summary": {"covered_lines": 1, "num_statements": 2, "percent_covered": 50.0, "percent_covered_display": "50", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [161], "excluded_lines": []}, "test_publish_delta_aborts_if_outdated.DummyKeyManager": {"executed_lines": [165], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 34, 35, 37, 38, 39, 40, 41, 42, 43, 44, 45, 48, 49, 50, 51, 52, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 72, 73, 74, 76, 77, 78, 79, 80, 81, 82, 83, 85, 86, 88, 90, 91, 93, 94, 96, 97, 98, 99, 101, 103, 105, 107, 116, 117, 120, 121, 122, 124, 126, 127, 130, 131, 133, 135, 137, 139, 144, 147, 148, 150, 151, 152, 154, 156, 157, 160, 163, 164, 167, 168, 169, 170, 172, 173, 174, 175, 176, 178, 179, 180, 182, 184, 185], "summary": {"covered_lines": 126, "num_statements": 126, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_nostr_entry.py": {"executed_lines": [1, 2, 3, 5, 7, 9, 11, 12, 13, 14, 17, 18, 19, 20, 21, 22, 23, 25, 26, 27, 37, 38, 39, 40, 41, 42, 44, 45, 46, 47, 49, 50], "summary": {"covered_lines": 32, "num_statements": 32, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_nostr_key_determinism": {"executed_lines": [18, 19, 20, 21, 22, 23, 25, 26, 27, 37, 38, 39, 40, 41, 42, 44, 45, 46, 47, 49, 50], "summary": {"covered_lines": 21, "num_statements": 21, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 5, 7, 9, 11, 12, 13, 14, 17], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 5, 7, 9, 11, 12, 13, 14, 17, 18, 19, 20, 21, 22, 23, 25, 26, 27, 37, 38, 39, 40, 41, 42, 44, 45, 46, 47, 49, 50], "summary": {"covered_lines": 32, "num_statements": 32, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_nostr_index_size.py": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 13, 14, 16, 18, 19, 20, 21, 22, 23, 26, 27, 28], "summary": {"covered_lines": 22, "num_statements": 84, "percent_covered": 26.19047619047619, "percent_covered_display": "26", "missing_lines": 62, "excluded_lines": 0}, "missing_lines": [30, 34, 35, 36, 37, 38, 39, 44, 45, 46, 47, 48, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 67, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 82, 83, 84, 85, 86, 87, 90, 91, 92, 93, 94, 96, 97, 99, 100, 101, 103, 105, 106, 107, 108, 109, 110, 111, 113, 114], "excluded_lines": [], "functions": {"test_nostr_index_size_limits": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 62, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 62, "excluded_lines": 0}, "missing_lines": [30, 34, 35, 36, 37, 38, 39, 44, 45, 46, 47, 48, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 67, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 82, 83, 84, 85, 86, 87, 90, 91, 92, 93, 94, 96, 97, 99, 100, 101, 103, 105, 106, 107, 108, 109, 110, 111, 113, 114], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 13, 14, 16, 18, 19, 20, 21, 22, 23, 26, 27, 28], "summary": {"covered_lines": 22, "num_statements": 22, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 13, 14, 16, 18, 19, 20, 21, 22, 23, 26, 27, 28], "summary": {"covered_lines": 22, "num_statements": 84, "percent_covered": 26.19047619047619, "percent_covered_display": "26", "missing_lines": 62, "excluded_lines": 0}, "missing_lines": [30, 34, 35, 36, 37, 38, 39, 44, 45, 46, 47, 48, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 67, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 82, 83, 84, 85, 86, 87, 90, 91, 92, 93, 94, 96, 97, 99, 100, 101, 103, 105, 106, 107, 108, 109, 110, 111, 113, 114], "excluded_lines": []}}}, "src/tests/test_nostr_legacy_decrypt_fallback.py": {"executed_lines": [1, 2, 3, 4, 5, 6, 8, 9, 12, 13, 15, 16, 17, 18, 19, 22, 25, 29, 30, 31, 32, 34, 35, 36, 37, 38], "summary": {"covered_lines": 26, "num_statements": 26, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_legacy_password_only_fallback": {"executed_lines": [13, 15, 22, 25, 29, 30, 31, 32, 34, 35, 36, 37, 38], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_legacy_password_only_fallback._fast_legacy_key": {"executed_lines": [16, 17, 18, 19], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 6, 8, 9, 12], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 5, 6, 8, 9, 12, 13, 15, 16, 17, 18, 19, 22, 25, 29, 30, 31, 32, 34, 35, 36, 37, 38], "summary": {"covered_lines": 26, "num_statements": 26, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_nostr_legacy_key_fallback.py": {"executed_lines": [1, 2, 3, 4, 6, 7, 8, 11, 12, 15, 17, 18, 19, 21, 24, 25, 26, 28, 32, 34, 35, 36, 37, 39, 41, 42, 43, 57, 58, 64, 66, 67, 68, 69, 70, 71, 72, 74, 76, 78, 79, 80, 81, 82, 83], "summary": {"covered_lines": 45, "num_statements": 46, "percent_covered": 97.82608695652173, "percent_covered_display": "98", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [22], "excluded_lines": [], "functions": {"test_fetch_snapshot_legacy_key_fallback": {"executed_lines": [12, 15, 17, 18, 21, 24, 28, 32, 34, 35, 39, 41, 42, 43, 57, 58, 64, 66, 76, 78, 79, 80, 81, 82, 83], "summary": {"covered_lines": 25, "num_statements": 25, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_fetch_snapshot_legacy_key_fallback.LegacyKeys.private_key_hex": {"executed_lines": [19], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_fetch_snapshot_legacy_key_fallback.LegacyKeys.public_key_hex": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [22], "excluded_lines": []}, "test_fetch_snapshot_legacy_key_fallback.fake_generate": {"executed_lines": [25, 26], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_fetch_snapshot_legacy_key_fallback.RecordingFilter.author": {"executed_lines": [36, 37], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_fetch_snapshot_legacy_key_fallback.fake_fetch_events": {"executed_lines": [67, 68, 69, 70, 71, 72, 74], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 6, 7, 8, 11], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"test_fetch_snapshot_legacy_key_fallback.LegacyKeys": {"executed_lines": [19], "summary": {"covered_lines": 1, "num_statements": 2, "percent_covered": 50.0, "percent_covered_display": "50", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [22], "excluded_lines": []}, "test_fetch_snapshot_legacy_key_fallback.RecordingFilter": {"executed_lines": [36, 37], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 6, 7, 8, 11, 12, 15, 17, 18, 21, 24, 25, 26, 28, 32, 34, 35, 39, 41, 42, 43, 57, 58, 64, 66, 67, 68, 69, 70, 71, 72, 74, 76, 78, 79, 80, 81, 82, 83], "summary": {"covered_lines": 42, "num_statements": 42, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_nostr_qr.py": {"executed_lines": [1, 2, 3, 5, 7, 9, 10, 11, 12, 13, 16, 17, 18, 20, 25, 26, 27, 28, 29, 30, 31, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 45, 46, 48, 49, 50, 51, 56, 57, 60, 62, 63, 64, 65, 66, 67, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 81, 82, 84, 85, 86, 87, 92, 93, 94, 95, 98, 100, 101, 102, 103, 104, 105, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 119, 120, 123, 124, 125, 126, 127, 129, 130, 131, 132, 137, 138], "summary": {"covered_lines": 99, "num_statements": 101, "percent_covered": 98.01980198019803, "percent_covered_display": "98", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [21, 22], "excluded_lines": [], "functions": {"FakeNostrClient.__init__": {"executed_lines": [18], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "FakeNostrClient.publish_snapshot": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [21, 22], "excluded_lines": []}, "test_show_qr_for_nostr_keys": {"executed_lines": [26, 27, 28, 29, 30, 31, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 45, 46, 48, 49, 50, 51, 56, 57], "summary": {"covered_lines": 25, "num_statements": 25, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_show_private_key_qr": {"executed_lines": [62, 63, 64, 65, 66, 67, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 81, 82, 84, 85, 86, 87, 92, 93, 94, 95], "summary": {"covered_lines": 27, "num_statements": 27, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_qr_menu_case_insensitive": {"executed_lines": [100, 101, 102, 103, 104, 105, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 119, 120, 123, 124, 125, 126, 127, 129, 130, 131, 132, 137, 138], "summary": {"covered_lines": 30, "num_statements": 30, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 5, 7, 9, 10, 11, 12, 13, 16, 17, 20, 25, 60, 98], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"FakeNostrClient": {"executed_lines": [18], "summary": {"covered_lines": 1, "num_statements": 3, "percent_covered": 33.333333333333336, "percent_covered_display": "33", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [21, 22], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 5, 7, 9, 10, 11, 12, 13, 16, 17, 20, 25, 26, 27, 28, 29, 30, 31, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 45, 46, 48, 49, 50, 51, 56, 57, 60, 62, 63, 64, 65, 66, 67, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 81, 82, 84, 85, 86, 87, 92, 93, 94, 95, 98, 100, 101, 102, 103, 104, 105, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 119, 120, 123, 124, 125, 126, 127, 129, 130, 131, 132, 137, 138], "summary": {"covered_lines": 98, "num_statements": 98, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_nostr_real.py": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 14, 16, 17, 20, 21, 22], "summary": {"covered_lines": 17, "num_statements": 29, "percent_covered": 58.62068965517241, "percent_covered_display": "59", "missing_lines": 12, "excluded_lines": 0}, "missing_lines": [23, 27, 28, 31, 32, 37, 38, 39, 40, 41, 42, 43], "excluded_lines": [], "functions": {"test_nostr_publish_and_retrieve": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 12, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 12, "excluded_lines": 0}, "missing_lines": [23, 27, 28, 31, 32, 37, 38, 39, 40, 41, 42, 43], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 14, 16, 17, 20, 21, 22], "summary": {"covered_lines": 17, "num_statements": 17, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 14, 16, 17, 20, 21, 22], "summary": {"covered_lines": 17, "num_statements": 29, "percent_covered": 58.62068965517241, "percent_covered_display": "59", "missing_lines": 12, "excluded_lines": 0}, "missing_lines": [23, 27, 28, 31, 32, 37, 38, 39, 40, 41, 42, 43], "excluded_lines": []}}}, "src/tests/test_nostr_restore_flow.py": {"executed_lines": [1, 3, 4, 5, 6, 7, 8, 11, 12, 13, 14, 15, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 31, 32, 34, 35, 36, 37, 39, 40, 41, 42, 44, 45, 46, 48, 49], "summary": {"covered_lines": 39, "num_statements": 39, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"_init_pm": {"executed_lines": [12, 13, 14, 15, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_restore_flow_from_snapshot": {"executed_lines": [32, 34, 35, 36, 37, 39, 40, 41, 42, 44, 45, 46, 48, 49], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 4, 5, 6, 7, 8, 11, 31], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 3, 4, 5, 6, 7, 8, 11, 12, 13, 14, 15, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 31, 32, 34, 35, 36, 37, 39, 40, 41, 42, 44, 45, 46, 48, 49], "summary": {"covered_lines": 39, "num_statements": 39, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_nostr_sdk_workflow.py": {"executed_lines": [1, 2, 3, 4, 5, 7, 8, 9, 12, 13, 14, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 30, 31, 32, 33, 35, 38, 39, 40, 41, 43, 45, 46, 47, 49, 51, 52, 57, 58, 59, 61, 62, 63, 64, 65, 66, 67, 68, 70, 71], "summary": {"covered_lines": 52, "num_statements": 52, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"FakeRelay.__init__": {"executed_lines": [14], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "FakeRelay.handler": {"executed_lines": [17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "run_relay": {"executed_lines": [31, 35], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "run_relay.main": {"executed_lines": [32, 33], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_nostr_sdk_send_receive": {"executed_lines": [39, 40, 41, 43, 45, 46, 47, 49, 51, 52, 57, 58, 59, 61, 62, 63, 64, 65, 66, 67, 68, 70, 71], "summary": {"covered_lines": 23, "num_statements": 23, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 7, 8, 9, 12, 13, 16, 30, 38], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"FakeRelay": {"executed_lines": [14, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 7, 8, 9, 12, 13, 16, 30, 31, 32, 33, 35, 38, 39, 40, 41, 43, 45, 46, 47, 49, 51, 52, 57, 58, 59, 61, 62, 63, 64, 65, 66, 67, 68, 70, 71], "summary": {"covered_lines": 40, "num_statements": 40, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_nostr_snapshot.py": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 15, 16, 17, 18, 19, 20, 21, 22, 23, 26, 27, 28, 30, 31, 34, 35, 36, 37, 39, 40, 42, 45, 46, 48, 51, 54, 55, 56, 58, 59, 60, 62, 63, 65, 68, 69, 70, 71, 72, 73, 81, 85, 86, 87, 90, 95, 96, 97, 98, 99, 101, 102, 103], "summary": {"covered_lines": 64, "num_statements": 67, "percent_covered": 95.5223880597015, "percent_covered_display": "96", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [43, 49, 52], "excluded_lines": [], "functions": {"test_prepare_snapshot_roundtrip": {"executed_lines": [16, 17, 18, 19, 20, 21, 22, 23], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "DummyEvent.__init__": {"executed_lines": [28], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "DummyEvent.content": {"executed_lines": [31], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "DummyClient.__init__": {"executed_lines": [36, 37], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "DummyClient.add_relays": {"executed_lines": [40], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "DummyClient.add_relay": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [43], "excluded_lines": []}, "DummyClient.connect": {"executed_lines": [46], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "DummyClient.disconnect": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [49], "excluded_lines": []}, "DummyClient.send_event": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [52], "excluded_lines": []}, "DummyClient.fetch_events": {"executed_lines": [55, 56, 58, 59, 62, 65], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "DummyClient.fetch_events.E.__init__": {"executed_lines": [60], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "DummyClient.fetch_events.E.to_vec": {"executed_lines": [63], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_fetch_latest_snapshot": {"executed_lines": [69, 70, 71, 72, 73, 81, 85, 86, 87, 90, 95, 96, 97, 98, 99, 101, 102, 103], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 15, 26, 27, 30, 34, 35, 39, 42, 45, 48, 51, 54, 68], "summary": {"covered_lines": 24, "num_statements": 24, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"DummyEvent": {"executed_lines": [28, 31], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "DummyClient": {"executed_lines": [36, 37, 40, 46, 55, 56, 58, 59, 62, 65], "summary": {"covered_lines": 10, "num_statements": 13, "percent_covered": 76.92307692307692, "percent_covered_display": "77", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [43, 49, 52], "excluded_lines": []}, "DummyClient.fetch_events.E": {"executed_lines": [60, 63], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 15, 16, 17, 18, 19, 20, 21, 22, 23, 26, 27, 30, 34, 35, 39, 42, 45, 48, 51, 54, 68, 69, 70, 71, 72, 73, 81, 85, 86, 87, 90, 95, 96, 97, 98, 99, 101, 102, 103], "summary": {"covered_lines": 50, "num_statements": 50, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_offline_mode_behavior.py": {"executed_lines": [1, 2, 4, 7, 8, 9, 10, 11, 12, 15, 16, 17, 20, 21, 22, 23, 24, 25, 26, 27], "summary": {"covered_lines": 20, "num_statements": 20, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_sync_vault_skips_network": {"executed_lines": [8, 9, 10, 11, 12, 15, 16, 17], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_start_background_sync_offline": {"executed_lines": [21, 22, 23, 24, 25, 26, 27], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 7, 20], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 4, 7, 8, 9, 10, 11, 12, 15, 16, 17, 20, 21, 22, 23, 24, 25, 26, 27], "summary": {"covered_lines": 20, "num_statements": 20, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_offline_mode_default_enabled.py": {"executed_lines": [1, 2, 4, 5, 8, 9, 10, 11, 12, 13, 14], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_offline_mode_default_enabled": {"executed_lines": [9, 10, 11, 12, 13, 14], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 5, 8], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 4, 5, 8, 9, 10, 11, 12, 13, 14], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_offline_mode_profile_creation.py": {"executed_lines": [1, 2, 4, 6, 7, 8, 9, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 25, 26, 27, 29, 30, 31, 32], "summary": {"covered_lines": 26, "num_statements": 26, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_toggle_offline_mode_after_profile_creation": {"executed_lines": [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 25, 26, 27, 29, 30, 31, 32], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 6, 7, 8, 9, 12], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 4, 6, 7, 8, 9, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 25, 26, 27, 29, 30, 31, 32], "summary": {"covered_lines": 26, "num_statements": 26, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_parent_seed_backup.py": {"executed_lines": [1, 2, 3, 4, 5, 7, 9, 10, 13, 14, 15, 16, 17, 18, 19, 20, 21, 24, 25, 27, 28, 31, 33, 34, 36, 37, 39, 40, 42, 43, 44, 47, 48, 50, 51, 52, 56, 57, 59, 60, 63, 64, 65, 66, 67, 68], "summary": {"covered_lines": 46, "num_statements": 46, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"_make_pm": {"executed_lines": [14, 15, 16, 17, 18, 19, 20, 21], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_handle_backup_reveal_parent_seed_confirm": {"executed_lines": [25, 27, 28, 31, 33, 36, 37, 39, 40, 42, 43, 44], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_handle_backup_reveal_parent_seed_confirm.fake_save": {"executed_lines": [34], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_handle_backup_reveal_parent_seed_cancel": {"executed_lines": [48, 50, 51, 52, 56, 57, 59, 60], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_is_valid_filename": {"executed_lines": [64, 65, 66, 67, 68], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 7, 9, 10, 13, 24, 47, 63], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 5, 7, 9, 10, 13, 14, 15, 16, 17, 18, 19, 20, 21, 24, 25, 27, 28, 31, 33, 34, 36, 37, 39, 40, 42, 43, 44, 47, 48, 50, 51, 52, 56, 57, 59, 60, 63, 64, 65, 66, 67, 68], "summary": {"covered_lines": 46, "num_statements": 46, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_password_change.py": {"executed_lines": [1, 2, 3, 4, 5, 7, 9, 11, 12, 13, 14, 15, 18, 19, 20, 21, 22, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 40, 41, 42, 43, 44, 45], "summary": {"covered_lines": 38, "num_statements": 38, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_change_password_triggers_nostr_backup": {"executed_lines": [19, 20, 21, 22, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 40, 41, 42, 43, 44, 45], "summary": {"covered_lines": 25, "num_statements": 25, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 7, 9, 11, 12, 13, 14, 15, 18], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 5, 7, 9, 11, 12, 13, 14, 15, 18, 19, 20, 21, 22, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 40, 41, 42, 43, 44, 45], "summary": {"covered_lines": 38, "num_statements": 38, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_password_generation_policy.py": {"executed_lines": [1, 2, 3, 5, 7, 10, 11, 15, 16, 17, 20, 21, 22, 23, 24, 25, 28, 29, 37, 38, 39, 40, 41, 42, 43, 46, 47, 50, 51, 52, 53, 54, 55, 56, 57, 58, 61, 62, 65, 66, 67, 68], "summary": {"covered_lines": 42, "num_statements": 43, "percent_covered": 97.67441860465117, "percent_covered_display": "98", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [12], "excluded_lines": [], "functions": {"DummyEnc.derive_seed_from_mnemonic": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [12], "excluded_lines": []}, "DummyBIP85.derive_entropy": {"executed_lines": [17], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "make_generator": {"executed_lines": [21, 22, 23, 24, 25], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "count_types": {"executed_lines": [29], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_zero_policy_preserves_length": {"executed_lines": [38, 39, 40, 41, 42, 43], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_custom_policy_applied": {"executed_lines": [47, 50, 51, 52, 53, 54, 55, 56, 57, 58], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_generate_password_respects_policy": {"executed_lines": [62, 65, 66, 67, 68], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 5, 7, 10, 11, 15, 16, 20, 28, 37, 46, 61], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"DummyEnc": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [12], "excluded_lines": []}, "DummyBIP85": {"executed_lines": [17], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 5, 7, 10, 11, 15, 16, 20, 21, 22, 23, 24, 25, 28, 29, 37, 38, 39, 40, 41, 42, 43, 46, 47, 50, 51, 52, 53, 54, 55, 56, 57, 58, 61, 62, 65, 66, 67, 68], "summary": {"covered_lines": 41, "num_statements": 41, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_password_helpers.py": {"executed_lines": [1, 2, 5, 6, 10, 11, 12, 15, 16, 17, 18, 19, 20, 23, 24, 25, 26, 27, 28, 29, 32, 33, 34, 35, 36, 37, 40, 41, 42, 43, 44, 45, 46, 47, 48, 51, 52, 53, 54, 55, 56], "summary": {"covered_lines": 41, "num_statements": 42, "percent_covered": 97.61904761904762, "percent_covered_display": "98", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [7], "excluded_lines": [], "functions": {"DummyEnc.derive_seed_from_mnemonic": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [7], "excluded_lines": []}, "DummyBIP85.derive_entropy": {"executed_lines": [12], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "make_generator": {"executed_lines": [16, 17, 18, 19, 20], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_derive_password_entropy_length": {"executed_lines": [24, 25, 26, 27, 28, 29], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_map_entropy_to_chars_only_uses_alphabet": {"executed_lines": [33, 34, 35, 36, 37], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_enforce_complexity_minimum_counts": {"executed_lines": [41, 42, 43, 44, 45, 46, 47, 48], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_shuffle_deterministically_repeatable": {"executed_lines": [52, 53, 54, 55, 56], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 5, 6, 10, 11, 15, 23, 32, 40, 51], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"DummyEnc": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [7], "excluded_lines": []}, "DummyBIP85": {"executed_lines": [12], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 5, 6, 10, 11, 15, 16, 17, 18, 19, 20, 23, 24, 25, 26, 27, 28, 29, 32, 33, 34, 35, 36, 37, 40, 41, 42, 43, 44, 45, 46, 47, 48, 51, 52, 53, 54, 55, 56], "summary": {"covered_lines": 40, "num_statements": 40, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_password_length_constraints.py": {"executed_lines": [1, 2, 3, 5, 7, 8, 11, 12, 16, 17, 21, 22, 23, 24, 25, 26, 29, 30, 31, 32], "summary": {"covered_lines": 20, "num_statements": 22, "percent_covered": 90.9090909090909, "percent_covered_display": "91", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [13, 18], "excluded_lines": [], "functions": {"DummyEnc.derive_seed_from_mnemonic": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [13], "excluded_lines": []}, "DummyBIP85.derive_entropy": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [18], "excluded_lines": []}, "make_generator": {"executed_lines": [22, 23, 24, 25, 26], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_generate_password_too_short_raises": {"executed_lines": [30, 31, 32], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 5, 7, 8, 11, 12, 16, 17, 21, 29], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"DummyEnc": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [13], "excluded_lines": []}, "DummyBIP85": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [18], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 5, 7, 8, 11, 12, 16, 17, 21, 22, 23, 24, 25, 26, 29, 30, 31, 32], "summary": {"covered_lines": 20, "num_statements": 20, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_password_notes_display.py": {"executed_lines": [1, 2, 3, 4, 6, 8, 10, 11, 12, 13, 16, 17, 18, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 36, 38, 41, 42, 44, 45, 46, 48, 49, 50, 51, 52], "summary": {"covered_lines": 40, "num_statements": 40, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_password_notes_shown": {"executed_lines": [17, 18, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 36, 38, 41, 42, 44, 45, 46, 48, 49, 50, 51, 52], "summary": {"covered_lines": 29, "num_statements": 29, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 6, 8, 10, 11, 12, 13, 16], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 6, 8, 10, 11, 12, 13, 16, 17, 18, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 36, 38, 41, 42, 44, 45, 46, 48, 49, 50, 51, 52], "summary": {"covered_lines": 40, "num_statements": 40, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_password_prompt.py": {"executed_lines": [1, 2, 4, 5, 7, 10, 11, 12, 13, 14, 17, 18, 19, 20, 21, 22, 23, 26, 27, 28, 31, 32, 33, 34, 35], "summary": {"covered_lines": 25, "num_statements": 25, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_prompt_new_password": {"executed_lines": [11, 12, 13, 14], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_prompt_new_password_retry": {"executed_lines": [18, 19, 20, 21, 22, 23], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_prompt_existing_password": {"executed_lines": [27, 28], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_confirm_action_yes_no": {"executed_lines": [32, 33, 34, 35], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 5, 7, 10, 17, 26, 31], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 4, 5, 7, 10, 11, 12, 13, 14, 17, 18, 19, 20, 21, 22, 23, 26, 27, 28, 31, 32, 33, 34, 35], "summary": {"covered_lines": 25, "num_statements": 25, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_password_properties.py": {"executed_lines": [1, 2, 3, 4, 6, 8, 9, 12, 13, 17, 18, 19, 22, 23, 24, 25, 26, 27, 30, 34, 35, 36, 37, 38, 39, 40, 42, 43, 45, 46, 47, 48, 49], "summary": {"covered_lines": 33, "num_statements": 34, "percent_covered": 97.05882352941177, "percent_covered_display": "97", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [14], "excluded_lines": [], "functions": {"DummyEnc.derive_seed_from_mnemonic": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [14], "excluded_lines": []}, "DummyBIP85.derive_entropy": {"executed_lines": [19], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "make_generator": {"executed_lines": [23, 24, 25, 26, 27], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_password_properties": {"executed_lines": [36, 37, 38, 39, 40, 42, 43, 45, 46, 47, 48, 49], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 6, 8, 9, 12, 13, 17, 18, 22, 30, 34, 35], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"DummyEnc": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [14], "excluded_lines": []}, "DummyBIP85": {"executed_lines": [19], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 6, 8, 9, 12, 13, 17, 18, 22, 23, 24, 25, 26, 27, 30, 34, 35, 36, 37, 38, 39, 40, 42, 43, 45, 46, 47, 48, 49], "summary": {"covered_lines": 32, "num_statements": 32, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_password_shuffle_consistency.py": {"executed_lines": [1, 2, 4, 6, 9, 10, 14, 15, 16, 19, 20, 21, 22, 23, 24, 27, 28, 29, 30, 32], "summary": {"covered_lines": 20, "num_statements": 21, "percent_covered": 95.23809523809524, "percent_covered_display": "95", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [11], "excluded_lines": [], "functions": {"DummyEnc.derive_seed_from_mnemonic": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [11], "excluded_lines": []}, "DummyBIP85.derive_entropy": {"executed_lines": [16], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "make_generator": {"executed_lines": [20, 21, 22, 23, 24], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_password_generation_consistent_output": {"executed_lines": [28, 29, 30, 32], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 6, 9, 10, 14, 15, 19, 27], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"DummyEnc": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [11], "excluded_lines": []}, "DummyBIP85": {"executed_lines": [16], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 6, 9, 10, 14, 15, 19, 20, 21, 22, 23, 24, 27, 28, 29, 30, 32], "summary": {"covered_lines": 19, "num_statements": 19, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_password_special_chars.py": {"executed_lines": [1, 2, 3, 5, 7, 9, 12, 13, 17, 18, 19, 22, 23, 24, 25, 26, 27, 30, 31, 32, 33, 34, 37, 38, 39, 40, 41, 42, 43, 46, 47, 48, 49, 50, 51, 54, 55, 56, 57, 58, 59], "summary": {"covered_lines": 41, "num_statements": 42, "percent_covered": 97.61904761904762, "percent_covered_display": "98", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [14], "excluded_lines": [], "functions": {"DummyEnc.derive_seed_from_mnemonic": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [14], "excluded_lines": []}, "DummyBIP85.derive_entropy": {"executed_lines": [19], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "make_generator": {"executed_lines": [23, 24, 25, 26, 27], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_no_special_chars": {"executed_lines": [31, 32, 33, 34], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_allowed_special_chars_only": {"executed_lines": [38, 39, 40, 41, 42, 43], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_exclude_ambiguous_chars": {"executed_lines": [47, 48, 49, 50, 51], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_safe_special_chars_mode": {"executed_lines": [55, 56, 57, 58, 59], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 5, 7, 9, 12, 13, 17, 18, 22, 30, 37, 46, 54], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"DummyEnc": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [14], "excluded_lines": []}, "DummyBIP85": {"executed_lines": [19], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 5, 7, 9, 12, 13, 17, 18, 22, 23, 24, 25, 26, 27, 30, 31, 32, 33, 34, 37, 38, 39, 40, 41, 42, 43, 46, 47, 48, 49, 50, 51, 54, 55, 56, 57, 58, 59], "summary": {"covered_lines": 40, "num_statements": 40, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_password_special_modes.py": {"executed_lines": [1, 2, 3, 5, 7, 8, 11, 12, 16, 17, 18, 21, 22, 23, 24, 25, 26, 29, 30, 31, 32, 33, 36, 37, 38, 39, 40, 41, 44, 45, 46, 47, 48, 49, 50, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62], "summary": {"covered_lines": 45, "num_statements": 46, "percent_covered": 97.82608695652173, "percent_covered_display": "98", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [13], "excluded_lines": [], "functions": {"DummyEnc.derive_seed_from_mnemonic": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [13], "excluded_lines": []}, "DummyBIP85.derive_entropy": {"executed_lines": [18], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "make_generator": {"executed_lines": [22, 23, 24, 25, 26], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_include_special_chars_false": {"executed_lines": [30, 31, 32, 33], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_safe_mode_uses_safe_chars": {"executed_lines": [37, 38, 39, 40, 41], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_allowed_chars_override_special_mode": {"executed_lines": [45, 46, 47, 48, 49, 50], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_enforce_complexity_min_special_zero": {"executed_lines": [54, 55, 56, 57, 58, 59, 60, 61, 62], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 5, 7, 8, 11, 12, 16, 17, 21, 29, 36, 44, 53], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"DummyEnc": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [13], "excluded_lines": []}, "DummyBIP85": {"executed_lines": [18], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 5, 7, 8, 11, 12, 16, 17, 21, 22, 23, 24, 25, 26, 29, 30, 31, 32, 33, 36, 37, 38, 39, 40, 41, 44, 45, 46, 47, 48, 49, 50, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62], "summary": {"covered_lines": 44, "num_statements": 44, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_password_unlock_after_change.py": {"executed_lines": [1, 2, 3, 4, 6, 8, 10, 11, 12, 13, 14, 15, 16, 17, 19, 22, 23, 24, 25, 26, 27, 28, 31, 32, 33, 34, 35, 36, 37, 38, 40, 41, 50, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 65, 67, 70, 71, 78, 79, 81, 84, 85, 86, 88, 90, 91, 92], "summary": {"covered_lines": 58, "num_statements": 58, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_password_change_and_unlock": {"executed_lines": [23, 24, 25, 26, 27, 28, 31, 32, 33, 34, 35, 36, 37, 38, 40, 41, 50, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 65, 67, 70, 71, 78, 79, 81, 84, 85, 86, 88, 90, 91, 92], "summary": {"covered_lines": 42, "num_statements": 42, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 6, 8, 10, 11, 12, 13, 14, 15, 16, 17, 19, 22], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 6, 8, 10, 11, 12, 13, 14, 15, 16, 17, 19, 22, 23, 24, 25, 26, 27, 28, 31, 32, 33, 34, 35, 36, 37, 38, 40, 41, 50, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 65, 67, 70, 71, 78, 79, 81, 84, 85, 86, 88, 90, 91, 92], "summary": {"covered_lines": 58, "num_statements": 58, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_pgp_entry.py": {"executed_lines": [1, 2, 3, 5, 7, 9, 10, 11, 14, 15, 16, 17, 18, 19, 20, 22, 25, 26, 28, 29, 32, 34, 35, 38, 39, 40, 41, 44, 47, 48, 49, 50, 51, 52, 54, 55, 56, 58, 59], "summary": {"covered_lines": 39, "num_statements": 39, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_pgp_key_determinism": {"executed_lines": [15, 16, 17, 18, 19, 20, 22, 25, 26, 28, 29, 32, 34, 35, 38, 39, 40, 41], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_pgp_rsa_key_determinism": {"executed_lines": [47, 48, 49, 50, 51, 52, 54, 55, 56, 58, 59], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 5, 7, 9, 10, 11, 14, 44], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 5, 7, 9, 10, 11, 14, 15, 16, 17, 18, 19, 20, 22, 25, 26, 28, 29, 32, 34, 35, 38, 39, 40, 41, 44, 47, 48, 49, 50, 51, 52, 54, 55, 56, 58, 59], "summary": {"covered_lines": 39, "num_statements": 39, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_portable_backup.py": {"executed_lines": [1, 2, 3, 4, 5, 7, 8, 10, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 30, 32, 33, 34, 35, 36, 37, 40, 41, 42, 43, 44, 45, 47, 48, 49, 50, 52, 53, 54, 57, 58, 59, 60, 61, 62, 64, 65, 66, 68, 69, 70, 73, 76, 77, 78, 79, 80, 81, 83, 85, 86, 87, 88, 89, 91, 94, 97, 101, 102, 105, 106, 107, 108, 109, 111, 113, 114, 115, 116, 119, 120, 121, 122, 123, 125, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 138, 139, 142, 144, 145, 146, 147, 149, 150, 151, 152, 155, 156, 157, 159, 160, 161, 162, 164, 165, 166, 167, 168, 169, 171, 173, 174, 176, 177, 179, 180, 181], "summary": {"covered_lines": 131, "num_statements": 132, "percent_covered": 99.24242424242425, "percent_covered_display": "99", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [92], "excluded_lines": [], "functions": {"setup_vault": {"executed_lines": [27, 28, 29, 30, 32, 33, 34, 35, 36, 37], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_round_trip": {"executed_lines": [41, 42, 43, 44, 45, 47, 48, 49, 50, 52, 53, 54], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_round_trip_unencrypted": {"executed_lines": [58, 59, 60, 61, 62, 64, 65, 66, 68, 69, 70], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_corruption_detection": {"executed_lines": [78, 79, 80, 81, 83, 85, 86, 87, 88, 89, 91, 94, 97, 101, 102], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_corruption_detection._fast_legacy_key": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [92], "excluded_lines": []}, "test_import_over_existing": {"executed_lines": [106, 107, 108, 109, 111, 113, 114, 115, 116], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_checksum_mismatch_detection": {"executed_lines": [120, 121, 122, 123, 125, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 138, 139], "summary": {"covered_lines": 17, "num_statements": 17, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_export_import_seed_encrypted_with_different_key": {"executed_lines": [144, 145, 146, 147, 149, 150, 151, 152], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_export_creates_additional_backup_and_import": {"executed_lines": [156, 157, 159, 160, 161, 162, 164, 165, 166, 167, 168, 169, 171, 173, 174, 176, 177, 179, 180, 181], "summary": {"covered_lines": 20, "num_statements": 20, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 7, 8, 10, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 40, 57, 73, 76, 77, 105, 119, 142, 155], "summary": {"covered_lines": 29, "num_statements": 29, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 5, 7, 8, 10, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 30, 32, 33, 34, 35, 36, 37, 40, 41, 42, 43, 44, 45, 47, 48, 49, 50, 52, 53, 54, 57, 58, 59, 60, 61, 62, 64, 65, 66, 68, 69, 70, 73, 76, 77, 78, 79, 80, 81, 83, 85, 86, 87, 88, 89, 91, 94, 97, 101, 102, 105, 106, 107, 108, 109, 111, 113, 114, 115, 116, 119, 120, 121, 122, 123, 125, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 138, 139, 142, 144, 145, 146, 147, 149, 150, 151, 152, 155, 156, 157, 159, 160, 161, 162, 164, 165, 166, 167, 168, 169, 171, 173, 174, 176, 177, 179, 180, 181], "summary": {"covered_lines": 131, "num_statements": 132, "percent_covered": 99.24242424242425, "percent_covered_display": "99", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [92], "excluded_lines": []}}}, "src/tests/test_post_sync_messages.py": {"executed_lines": [1, 2, 3, 5, 7, 10, 11, 18, 19, 20, 21, 22, 25, 26, 29, 30, 31, 34, 35, 42, 43, 44, 51, 52], "summary": {"covered_lines": 24, "num_statements": 24, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_handle_post_success": {"executed_lines": [11, 18, 19, 20, 21, 22], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_handle_post_failure": {"executed_lines": [26, 29, 30, 31], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_handle_post_prints_all_ids": {"executed_lines": [35, 42, 43, 44, 51, 52], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 5, 7, 10, 25, 34], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 5, 7, 10, 11, 18, 19, 20, 21, 22, 25, 26, 29, 30, 31, 34, 35, 42, 43, 44, 51, 52], "summary": {"covered_lines": 24, "num_statements": 24, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_profile_cleanup.py": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 9, 12, 13, 14, 16, 17, 19, 20, 21, 22, 23, 24, 27, 28, 29, 30, 32, 34, 35, 40, 41, 44, 45, 46, 47, 48, 49, 50], "summary": {"covered_lines": 35, "num_statements": 35, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"setup_pm": {"executed_lines": [13, 14, 16, 17, 19, 20, 21, 22, 23, 24], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_generate_seed_cleanup_on_failure": {"executed_lines": [28, 29, 30, 32, 34, 35, 40, 41, 44, 45, 46, 47, 48, 49, 50], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 9, 12, 27], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 9, 12, 13, 14, 16, 17, 19, 20, 21, 22, 23, 24, 27, 28, 29, 30, 32, 34, 35, 40, 41, 44, 45, 46, 47, 48, 49, 50], "summary": {"covered_lines": 35, "num_statements": 35, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_profile_deletion_sync.py": {"executed_lines": [1, 2, 4, 5, 6, 8, 9, 10, 11, 14, 15, 16, 18, 20, 21, 23, 24, 25, 27, 45, 46, 48, 49, 51, 52, 53, 54, 55], "summary": {"covered_lines": 28, "num_statements": 28, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_profile_deletion_stops_sync": {"executed_lines": [15, 16, 18, 20, 23, 24, 25, 27, 45, 46, 48, 49, 51, 52, 53, 54, 55], "summary": {"covered_lines": 17, "num_statements": 17, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_profile_deletion_stops_sync.fake_post": {"executed_lines": [21], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 5, 6, 8, 9, 10, 11, 14], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 4, 5, 6, 8, 9, 10, 11, 14, 15, 16, 18, 20, 21, 23, 24, 25, 27, 45, 46, 48, 49, 51, 52, 53, 54, 55], "summary": {"covered_lines": 28, "num_statements": 28, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_profile_export_import.py": {"executed_lines": [1, 2, 4, 5, 8, 9, 10, 11, 15, 16, 17, 18, 20, 21, 22, 23, 25, 26, 28, 29, 30, 32, 33], "summary": {"covered_lines": 23, "num_statements": 23, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_profile_export_import_round_trip": {"executed_lines": [9, 10, 11, 15, 16, 17, 18, 20, 21, 22, 23, 25, 28, 29, 30, 32, 33], "summary": {"covered_lines": 17, "num_statements": 17, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_profile_export_import_round_trip.sync": {"executed_lines": [26], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 5, 8], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 4, 5, 8, 9, 10, 11, 15, 16, 17, 18, 20, 21, 22, 23, 25, 26, 28, 29, 30, 32, 33], "summary": {"covered_lines": 23, "num_statements": 23, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_profile_init_integration.py": {"executed_lines": [1, 2, 3, 4, 6, 9, 10, 13, 14, 15, 16, 17, 20, 21, 22, 23, 25, 27, 29, 30, 31, 32, 33, 35, 39, 40, 42, 43, 45, 46, 47, 48], "summary": {"covered_lines": 32, "num_statements": 32, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"load_script": {"executed_lines": [10, 13, 14, 15, 16, 17], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_initialize_profile_and_manager": {"executed_lines": [21, 22, 23, 25, 27, 29, 30, 31, 32, 33, 35, 39, 40, 42, 43, 45, 46, 47, 48], "summary": {"covered_lines": 19, "num_statements": 19, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 6, 9, 20], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 6, 9, 10, 13, 14, 15, 16, 17, 20, 21, 22, 23, 25, 27, 29, 30, 31, 32, 33, 35, 39, 40, 42, 43, 45, 46, 47, 48], "summary": {"covered_lines": 32, "num_statements": 32, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_profile_management.py": {"executed_lines": [1, 2, 3, 4, 5, 7, 9, 12, 13, 14, 15, 16, 17, 18, 19, 22, 23, 24, 25, 27, 28, 30, 31, 32, 33, 34, 35, 36, 37, 39, 40, 43, 44, 46, 48, 49, 50, 52, 53, 55, 56, 57, 58, 60, 61, 62, 64, 65, 67, 68, 75, 76, 77, 83, 85, 86], "summary": {"covered_lines": 56, "num_statements": 56, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_add_and_delete_entry": {"executed_lines": [23, 24, 25, 27, 28, 30, 31, 32, 33, 34, 35, 36, 37, 39, 40, 43, 44, 46, 48, 49, 50, 52, 53, 55, 56, 57, 58, 60, 61, 62, 64, 65, 67, 68, 75, 76, 77, 83, 85, 86], "summary": {"covered_lines": 40, "num_statements": 40, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 7, 9, 12, 13, 14, 15, 16, 17, 18, 19, 22], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 5, 7, 9, 12, 13, 14, 15, 16, 17, 18, 19, 22, 23, 24, 25, 27, 28, 30, 31, 32, 33, 34, 35, 36, 37, 39, 40, 43, 44, 46, 48, 49, 50, 52, 53, 55, 56, 57, 58, 60, 61, 62, 64, 65, 67, 68, 75, 76, 77, 83, 85, 86], "summary": {"covered_lines": 56, "num_statements": 56, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_profiles.py": {"executed_lines": [1, 2, 3, 5, 7, 8, 9, 10, 11, 13, 16, 17, 18, 19, 21, 22, 23, 24, 26, 27, 28, 29, 30, 31, 33, 34, 39, 40, 41, 42, 45, 49, 50, 51, 52, 55, 56, 57, 58, 59, 61, 62, 63, 64, 65, 67, 73, 78, 80, 81, 82, 83, 86, 87, 88, 89, 90, 92, 93, 94, 95, 96, 99, 101, 102, 103, 104], "summary": {"covered_lines": 67, "num_statements": 67, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_add_and_switch_fingerprint": {"executed_lines": [17, 18, 19, 21, 22, 23, 24, 26, 27, 28, 29, 30, 31, 33, 34, 39, 40, 41, 42, 45, 49, 50, 51, 52], "summary": {"covered_lines": 24, "num_statements": 24, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_sync_index_missing_bad_data": {"executed_lines": [56, 57, 58, 59, 61, 62, 63, 64, 65, 67, 73, 78, 80, 81, 82, 83], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_attempt_initial_sync_incomplete_data": {"executed_lines": [87, 88, 89, 90, 92, 93, 94, 95, 96, 99, 101, 102, 103, 104], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 5, 7, 8, 9, 10, 11, 13, 16, 55, 86], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 5, 7, 8, 9, 10, 11, 13, 16, 17, 18, 19, 21, 22, 23, 24, 26, 27, 28, 29, 30, 31, 33, 34, 39, 40, 41, 42, 45, 49, 50, 51, 52, 55, 56, 57, 58, 59, 61, 62, 63, 64, 65, 67, 73, 78, 80, 81, 82, 83, 86, 87, 88, 89, 90, 92, 93, 94, 95, 96, 99, 101, 102, 103, 104], "summary": {"covered_lines": 67, "num_statements": 67, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_publish_json_result.py": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 16, 17, 18, 20, 25, 26, 27, 28, 29, 32, 33, 34, 35, 37, 40, 44, 45, 46, 48, 49, 52, 53, 54, 56, 57, 59, 60, 63, 64, 65, 68, 69, 70, 73, 74, 77, 79, 80, 82, 85, 86, 87, 88, 89, 90, 93, 94, 97, 99, 100, 102, 103, 104], "summary": {"covered_lines": 64, "num_statements": 66, "percent_covered": 96.96969696969697, "percent_covered_display": "97", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [38, 41], "excluded_lines": [], "functions": {"setup_client": {"executed_lines": [17, 18, 20, 25, 26, 27, 28, 29], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "FakeEvent.__init__": {"executed_lines": [34, 35], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "FakeEvent.id": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [38], "excluded_lines": []}, "FakeEvent.content": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [41], "excluded_lines": []}, "FakeUnsignedEvent.__init__": {"executed_lines": [46], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "FakeUnsignedEvent.sign_with_keys": {"executed_lines": [49], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "FakeBuilder.__init__": {"executed_lines": [54], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "FakeBuilder.tags": {"executed_lines": [57], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "FakeBuilder.build": {"executed_lines": [60], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "FakeEventId.to_hex": {"executed_lines": [65], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "FakeSendEventOutput.__init__": {"executed_lines": [70], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_publish_snapshot_success": {"executed_lines": [74, 77, 79, 82, 85, 86, 87, 88, 89, 90], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_publish_snapshot_success.fake_send": {"executed_lines": [80], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_publish_snapshot_failure": {"executed_lines": [94, 97, 99, 102, 103, 104], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_publish_snapshot_failure.boom": {"executed_lines": [100], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 16, 32, 33, 37, 40, 44, 45, 48, 52, 53, 56, 59, 63, 64, 68, 69, 73, 93], "summary": {"covered_lines": 29, "num_statements": 29, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"FakeEvent": {"executed_lines": [34, 35], "summary": {"covered_lines": 2, "num_statements": 4, "percent_covered": 50.0, "percent_covered_display": "50", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [38, 41], "excluded_lines": []}, "FakeUnsignedEvent": {"executed_lines": [46, 49], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "FakeBuilder": {"executed_lines": [54, 57, 60], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "FakeEventId": {"executed_lines": [65], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "FakeSendEventOutput": {"executed_lines": [70], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 16, 17, 18, 20, 25, 26, 27, 28, 29, 32, 33, 37, 40, 44, 45, 48, 52, 53, 56, 59, 63, 64, 68, 69, 73, 74, 77, 79, 80, 82, 85, 86, 87, 88, 89, 90, 93, 94, 97, 99, 100, 102, 103, 104], "summary": {"covered_lines": 55, "num_statements": 55, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_pubsub.py": {"executed_lines": [1, 4, 5, 6, 8, 9, 11, 12, 14, 17, 18, 19, 21, 24, 25, 26, 28], "summary": {"covered_lines": 17, "num_statements": 18, "percent_covered": 94.44444444444444, "percent_covered_display": "94", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [22], "excluded_lines": [], "functions": {"test_subscribe_and_publish": {"executed_lines": [5, 6, 8, 11, 12, 14], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_subscribe_and_publish.handler": {"executed_lines": [9], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_unsubscribe": {"executed_lines": [18, 19, 21, 24, 25, 26, 28], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_unsubscribe.handler": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [22], "excluded_lines": []}, "": {"executed_lines": [1, 4, 17], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 4, 5, 6, 8, 9, 11, 12, 14, 17, 18, 19, 21, 24, 25, 26, 28], "summary": {"covered_lines": 17, "num_statements": 18, "percent_covered": 94.44444444444444, "percent_covered_display": "94", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [22], "excluded_lines": []}}}, "src/tests/test_quick_unlock_default.py": {"executed_lines": [1, 2, 3, 4, 6, 8, 10, 11, 12, 15, 16, 17, 18, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 34], "summary": {"covered_lines": 25, "num_statements": 25, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_quick_unlock_default_off": {"executed_lines": [16, 17, 18], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_quick_unlock_logs_event": {"executed_lines": [22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 34], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 6, 8, 10, 11, 12, 15, 21], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 6, 8, 10, 11, 12, 15, 16, 17, 18, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 34], "summary": {"covered_lines": 25, "num_statements": 25, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_quick_unlock_profile_creation.py": {"executed_lines": [1, 2, 4, 5, 6, 7, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 24, 26, 27, 28], "summary": {"covered_lines": 23, "num_statements": 23, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_toggle_quick_unlock_after_profile_creation": {"executed_lines": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 24, 26, 27, 28], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 5, 6, 7, 10], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 4, 5, 6, 7, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 24, 26, 27, 28], "summary": {"covered_lines": 23, "num_statements": 23, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_restore_from_nostr_setup.py": {"executed_lines": [1, 3, 5, 6, 7, 8, 11, 12, 13, 14, 15, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 31, 34, 36, 37, 38, 39, 41, 42, 43, 44, 46, 47, 48, 49, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 66, 67, 69, 70, 72, 73, 74, 75, 76, 79, 80, 81, 82, 83, 85, 86, 87, 88, 89, 93, 94, 95, 97, 99, 100, 101, 103, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 120, 121, 123, 124, 126, 127, 128, 129, 130, 131, 134, 135, 138, 141, 142, 144, 145, 146, 148, 149, 150, 152, 153, 154, 157, 160, 161, 163, 164, 165, 166, 168, 170, 173, 174, 176, 177, 178, 179, 180], "summary": {"covered_lines": 132, "num_statements": 133, "percent_covered": 99.24812030075188, "percent_covered_display": "99", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [171], "excluded_lines": [], "functions": {"_init_pm": {"executed_lines": [12, 13, 14, 15, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_handle_new_seed_setup_restore_from_nostr": {"executed_lines": [34, 36, 37, 38, 39, 41, 42, 43, 44, 46, 47, 48, 49, 51, 66, 67, 69, 70, 72, 73, 74, 75, 76], "summary": {"covered_lines": 23, "num_statements": 23, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_handle_new_seed_setup_restore_from_nostr.finalize": {"executed_lines": [52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_handle_new_seed_setup_restore_from_local_backup": {"executed_lines": [80, 81, 82, 83, 85, 86, 87, 88, 89, 93, 94, 95, 97, 99, 103, 105, 120, 121, 123, 124, 126, 127, 128, 129, 130, 131], "summary": {"covered_lines": 26, "num_statements": 26, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_handle_new_seed_setup_restore_from_local_backup.init_fp_mgr": {"executed_lines": [100, 101], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_handle_new_seed_setup_restore_from_local_backup.finalize": {"executed_lines": [106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "_no_snapshot": {"executed_lines": [135], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_restore_from_nostr_warns": {"executed_lines": [141, 142, 144, 145, 146, 148, 149, 150, 152, 153, 154], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_restore_from_nostr_abort": {"executed_lines": [160, 161, 163, 164, 165, 166, 168, 170, 173, 174, 176, 177, 178, 179, 180], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_restore_from_nostr_abort.finalize": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [171], "excluded_lines": []}, "": {"executed_lines": [1, 3, 5, 6, 7, 8, 11, 31, 79, 134, 138, 157], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 3, 5, 6, 7, 8, 11, 12, 13, 14, 15, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 31, 34, 36, 37, 38, 39, 41, 42, 43, 44, 46, 47, 48, 49, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 66, 67, 69, 70, 72, 73, 74, 75, 76, 79, 80, 81, 82, 83, 85, 86, 87, 88, 89, 93, 94, 95, 97, 99, 100, 101, 103, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 120, 121, 123, 124, 126, 127, 128, 129, 130, 131, 134, 135, 138, 141, 142, 144, 145, 146, 148, 149, 150, 152, 153, 154, 157, 160, 161, 163, 164, 165, 166, 168, 170, 173, 174, 176, 177, 178, 179, 180], "summary": {"covered_lines": 132, "num_statements": 133, "percent_covered": 99.24812030075188, "percent_covered_display": "99", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [171], "excluded_lines": []}}}, "src/tests/test_retrieve_pause_sensitive_entries.py": {"executed_lines": [1, 2, 4, 6, 8, 11, 20, 23, 25, 27, 28, 31, 32, 33, 34, 38, 39], "summary": {"covered_lines": 17, "num_statements": 17, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_pause_before_entry_actions": {"executed_lines": [23, 25, 27, 28, 31, 32, 33, 34, 38, 39], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 6, 8, 11, 20], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 4, 6, 8, 11, 20, 23, 25, 27, 28, 31, 32, 33, 34, 38, 39], "summary": {"covered_lines": 17, "num_statements": 17, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_search_entries.py": {"executed_lines": [1, 2, 3, 5, 7, 9, 10, 11, 12, 15, 16, 17, 18, 19, 22, 23, 24, 25, 27, 28, 30, 31, 34, 35, 36, 37, 39, 40, 42, 43, 46, 47, 48, 49, 51, 52, 54, 55, 60, 61, 62, 63, 65, 66, 67, 68, 71, 72, 74, 75, 78, 79, 80, 81, 83, 87, 89, 90, 93, 94, 95, 96, 98, 100, 101, 104, 105, 106, 107, 109, 110, 111, 114, 115, 116, 117, 119, 121, 122, 125, 126, 127, 128, 130, 131, 133, 134, 137, 138, 139, 140, 142, 143, 144, 146, 149, 151, 152], "summary": {"covered_lines": 98, "num_statements": 98, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"setup_entry_manager": {"executed_lines": [16, 17, 18, 19], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_search_by_website": {"executed_lines": [23, 24, 25, 27, 28, 30, 31], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_search_by_username": {"executed_lines": [35, 36, 37, 39, 40, 42, 43], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_search_by_url": {"executed_lines": [47, 48, 49, 51, 52, 54, 55], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_search_by_notes_and_totp": {"executed_lines": [61, 62, 63, 65, 66, 67, 68, 71, 72, 74, 75], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_search_by_custom_field": {"executed_lines": [79, 80, 81, 83, 87, 89, 90], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_search_key_value_value": {"executed_lines": [94, 95, 96, 98, 100, 101], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_search_no_results": {"executed_lines": [105, 106, 107, 109, 110, 111], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_search_by_tag_password": {"executed_lines": [115, 116, 117, 119, 121, 122], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_search_by_tag_totp": {"executed_lines": [126, 127, 128, 130, 131, 133, 134], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_search_with_kind_filter": {"executed_lines": [138, 139, 140, 142, 143, 144, 146, 149, 151, 152], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 5, 7, 9, 10, 11, 12, 15, 22, 34, 46, 60, 78, 93, 104, 114, 125, 137], "summary": {"covered_lines": 20, "num_statements": 20, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 5, 7, 9, 10, 11, 12, 15, 16, 17, 18, 19, 22, 23, 24, 25, 27, 28, 30, 31, 34, 35, 36, 37, 39, 40, 42, 43, 46, 47, 48, 49, 51, 52, 54, 55, 60, 61, 62, 63, 65, 66, 67, 68, 71, 72, 74, 75, 78, 79, 80, 81, 83, 87, 89, 90, 93, 94, 95, 96, 98, 100, 101, 104, 105, 106, 107, 109, 110, 111, 114, 115, 116, 117, 119, 121, 122, 125, 126, 127, 128, 130, 131, 133, 134, 137, 138, 139, 140, 142, 143, 144, 146, 149, 151, 152], "summary": {"covered_lines": 98, "num_statements": 98, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_secret_mode.py": {"executed_lines": [1, 2, 3, 5, 7, 9, 11, 12, 13, 14, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 38, 39, 40, 41, 42, 44, 45, 46, 47, 52, 53, 54, 55, 56, 59, 60, 61, 62, 63, 65, 69, 72, 76, 77, 82, 83, 84, 85, 86, 89, 90, 91, 92, 93, 94, 96, 97, 98, 99, 104, 105, 106, 107, 108, 111, 112, 113, 114, 115, 116, 118, 122, 125, 129, 130, 135, 136, 137, 138, 139], "summary": {"covered_lines": 89, "num_statements": 89, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"setup_pm": {"executed_lines": [18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_password_retrieve_secret_mode": {"executed_lines": [39, 40, 41, 42, 44, 45, 46, 47, 52, 53, 54, 55, 56], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_totp_display_secret_mode": {"executed_lines": [60, 61, 62, 63, 65, 69, 72, 76, 77, 82, 83, 84, 85, 86], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_password_retrieve_no_secret_mode": {"executed_lines": [90, 91, 92, 93, 94, 96, 97, 98, 99, 104, 105, 106, 107, 108], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_totp_display_no_secret_mode": {"executed_lines": [112, 113, 114, 115, 116, 118, 122, 125, 129, 130, 135, 136, 137, 138, 139], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 5, 7, 9, 11, 12, 13, 14, 17, 38, 59, 89, 111], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 5, 7, 9, 11, 12, 13, 14, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 38, 39, 40, 41, 42, 44, 45, 46, 47, 52, 53, 54, 55, 56, 59, 60, 61, 62, 63, 65, 69, 72, 76, 77, 82, 83, 84, 85, 86, 89, 90, 91, 92, 93, 94, 96, 97, 98, 99, 104, 105, 106, 107, 108, 111, 112, 113, 114, 115, 116, 118, 122, 125, 129, 130, 135, 136, 137, 138, 139], "summary": {"covered_lines": 89, "num_statements": 89, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_secret_mode_profile_creation.py": {"executed_lines": [1, 2, 3, 5, 7, 8, 9, 10, 13, 14, 15, 16, 17, 19, 20, 21, 22, 23, 24, 26, 27, 30, 31, 32, 33, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 52, 54, 55, 56, 57, 58, 59], "summary": {"covered_lines": 47, "num_statements": 47, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_add_new_fingerprint_initializes_managers": {"executed_lines": [14, 15, 16, 17, 19, 26, 27, 30, 31, 32, 33], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_add_new_fingerprint_initializes_managers.fake_setup_existing_seed": {"executed_lines": [20, 21, 22, 23, 24], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_toggle_secret_mode_after_profile_creation": {"executed_lines": [37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 52, 54, 55, 56, 57, 58, 59], "summary": {"covered_lines": 21, "num_statements": 21, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 5, 7, 8, 9, 10, 13, 36], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 5, 7, 8, 9, 10, 13, 14, 15, 16, 17, 19, 20, 21, 22, 23, 24, 26, 27, 30, 31, 32, 33, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 52, 54, 55, 56, 57, 58, 59], "summary": {"covered_lines": 47, "num_statements": 47, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_seed_entry.py": {"executed_lines": [1, 2, 3, 5, 6, 8, 10, 11, 12, 13, 14, 15, 18, 19, 20, 21, 22, 23, 24, 26, 27, 29, 30, 31, 32, 34, 35, 37, 48, 59, 60, 62, 63, 64, 65, 67, 68, 69, 70, 71, 72, 73, 74], "summary": {"covered_lines": 43, "num_statements": 43, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_seed_phrase_determinism": {"executed_lines": [19, 20, 21, 22, 23, 24, 26, 27, 29, 30, 31, 32, 34, 35, 37, 48, 59, 60, 62, 63, 64, 65, 67, 68, 69, 70, 71, 72, 73, 74], "summary": {"covered_lines": 30, "num_statements": 30, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 5, 6, 8, 10, 11, 12, 13, 14, 15, 18], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 5, 6, 8, 10, 11, 12, 13, 14, 15, 18, 19, 20, 21, 22, 23, 24, 26, 27, 29, 30, 31, 32, 34, 35, 37, 48, 59, 60, 62, 63, 64, 65, 67, 68, 69, 70, 71, 72, 73, 74], "summary": {"covered_lines": 43, "num_statements": 43, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_seed_generation.py": {"executed_lines": [1, 2, 3, 4, 5, 7, 10, 12, 13, 16, 17, 19, 20, 21, 22, 23, 24, 25, 28, 29, 30, 31, 33, 35, 36, 38, 39, 41, 42, 43], "summary": {"covered_lines": 30, "num_statements": 30, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"setup_password_manager": {"executed_lines": [12, 13, 16, 17, 19, 20, 21, 22, 23, 24, 25], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_generate_bip85_and_new_seed": {"executed_lines": [29, 30, 31, 33, 35, 36, 38, 39, 41, 42, 43], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 7, 10, 28], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 5, 7, 10, 12, 13, 16, 17, 19, 20, 21, 22, 23, 24, 25, 28, 29, 30, 31, 33, 35, 36, 38, 39, 41, 42, 43], "summary": {"covered_lines": 30, "num_statements": 30, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_seed_import.py": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 9, 11, 12, 15, 16, 17, 18, 19, 20, 21, 22, 24, 25, 26, 27], "summary": {"covered_lines": 22, "num_statements": 22, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_seed_encryption_round_trip": {"executed_lines": [16, 17, 18, 19, 20, 21, 22, 24, 25, 26, 27], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 9, 11, 12, 15], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 9, 11, 12, 15, 16, 17, 18, 19, 20, 21, 22, 24, 25, 26, 27], "summary": {"covered_lines": 22, "num_statements": 22, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_seed_migration.py": {"executed_lines": [1, 2, 3, 4, 5, 7, 8, 9, 11, 13, 16, 17, 18, 19, 20, 21, 22, 24, 25, 27, 29, 31, 32, 33, 34], "summary": {"covered_lines": 25, "num_statements": 25, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_parent_seed_migrates_from_fernet": {"executed_lines": [17, 18, 19, 20, 21, 22, 24, 25, 27, 29, 31, 32, 33, 34], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 7, 8, 9, 11, 13, 16], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 5, 7, 8, 9, 11, 13, 16, 17, 18, 19, 20, 21, 22, 24, 25, 27, 29, 31, 32, 33, 34], "summary": {"covered_lines": 25, "num_statements": 25, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_seed_prompt.py": {"executed_lines": [1, 2, 3, 6, 7, 8, 9, 11, 19, 20, 22, 26, 28, 30, 31, 32, 33, 34, 37, 38, 39, 40, 41, 43, 44, 45, 46, 47, 50, 51, 52, 53, 55, 56, 61, 62, 63, 64, 66, 67, 68, 71, 72, 73, 74, 75, 77, 78, 81, 82, 84, 85, 86, 88, 89, 90, 92, 93, 96, 97, 99, 100, 101, 103, 104, 105, 107, 108], "summary": {"covered_lines": 68, "num_statements": 72, "percent_covered": 94.44444444444444, "percent_covered_display": "94", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [12, 17, 23, 24], "excluded_lines": [], "functions": {"test_masked_input_posix_backspace": {"executed_lines": [7, 8, 9, 11, 19, 20, 22, 26, 28, 30, 31, 32, 33, 34], "summary": {"covered_lines": 14, "num_statements": 18, "percent_covered": 77.77777777777777, "percent_covered_display": "78", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [12, 17, 23, 24], "excluded_lines": []}, "test_masked_input_windows_space": {"executed_lines": [38, 39, 40, 41, 43, 44, 45, 46, 47], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_masked_input_posix_ctrl_c": {"executed_lines": [51, 52, 53, 55, 56, 61, 62, 63, 64, 66, 67, 68], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_masked_input_windows_ctrl_c": {"executed_lines": [72, 73, 74, 75, 77, 78], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_prompt_seed_words_valid": {"executed_lines": [82, 84, 85, 86, 88, 89, 90, 92, 93], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_prompt_seed_words_invalid_word": {"executed_lines": [97, 99, 100, 101, 103, 104, 105, 107, 108], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 6, 37, 50, 71, 81, 96], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 6, 7, 8, 9, 11, 19, 20, 22, 26, 28, 30, 31, 32, 33, 34, 37, 38, 39, 40, 41, 43, 44, 45, 46, 47, 50, 51, 52, 53, 55, 56, 61, 62, 63, 64, 66, 67, 68, 71, 72, 73, 74, 75, 77, 78, 81, 82, 84, 85, 86, 88, 89, 90, 92, 93, 96, 97, 99, 100, 101, 103, 104, 105, 107, 108], "summary": {"covered_lines": 68, "num_statements": 72, "percent_covered": 94.44444444444444, "percent_covered_display": "94", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [12, 17, 23, 24], "excluded_lines": []}}}, "src/tests/test_seed_word_by_word_flow.py": {"executed_lines": [1, 2, 4, 6, 7, 8, 9, 12, 13, 14, 15, 16, 18, 19, 20, 21, 23, 24, 27, 28, 29, 30, 31, 33, 34, 35, 36, 38, 39, 42, 43, 44, 45, 47, 48, 49, 50, 52, 53, 54, 55, 57, 59, 60, 61, 62, 64, 68, 70, 71, 72, 73, 76, 77, 78, 79, 81, 82, 83, 85, 86, 87, 88, 90, 91, 93, 94], "summary": {"covered_lines": 67, "num_statements": 67, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_prompt_seed_words_confirmation_loop": {"executed_lines": [13, 14, 15, 16, 18, 19, 20, 21, 23, 24], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_prompt_seed_words_invalid_word": {"executed_lines": [28, 29, 30, 31, 33, 34, 35, 36, 38, 39], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_add_new_fingerprint_words_flow_success": {"executed_lines": [43, 44, 45, 47, 48, 49, 50, 52, 53, 54, 55, 57, 59, 64, 68, 70, 71, 72, 73], "summary": {"covered_lines": 19, "num_statements": 19, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_add_new_fingerprint_words_flow_success.finalize": {"executed_lines": [60, 61, 62], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_add_new_fingerprint_words_flow_invalid_phrase": {"executed_lines": [77, 78, 79, 81, 82, 83, 85, 86, 87, 88, 90, 91, 93, 94], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 6, 7, 8, 9, 12, 27, 42, 76], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 4, 6, 7, 8, 9, 12, 13, 14, 15, 16, 18, 19, 20, 21, 23, 24, 27, 28, 29, 30, 31, 33, 34, 35, 36, 38, 39, 42, 43, 44, 45, 47, 48, 49, 50, 52, 53, 54, 55, 57, 59, 60, 61, 62, 64, 68, 70, 71, 72, 73, 76, 77, 78, 79, 81, 82, 83, 85, 86, 87, 88, 90, 91, 93, 94], "summary": {"covered_lines": 67, "num_statements": 67, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_seedqr_encoding.py": {"executed_lines": [1, 2, 4, 6, 9, 10, 14, 15], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_seedqr_standard_example": {"executed_lines": [10, 14, 15], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 6, 9], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 4, 6, 9, 10, 14, 15], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_service_classes.py": {"executed_lines": [1, 2, 3, 5, 7, 8, 9, 10, 11, 12, 13, 14, 17, 18, 19, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 43, 44, 45, 46, 47, 48, 68, 69, 70, 72, 73, 74, 75, 76, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 96, 97, 98, 100, 101, 102, 103, 104, 105, 106, 109, 110, 111, 112, 113, 115, 116, 118, 119, 121, 122, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 138, 139, 140, 143, 147, 148], "summary": {"covered_lines": 102, "num_statements": 102, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"FakePasswordGenerator.generate_password": {"executed_lines": [19], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "_setup_pm": {"executed_lines": [23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40], "summary": {"covered_lines": 17, "num_statements": 17, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_entry_service_add_password": {"executed_lines": [44, 45, 46, 47, 48, 68, 69, 70, 72, 73, 74, 75, 76], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_menu_handler_list_entries": {"executed_lines": [80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_menu_handler_list_entries_shows_empty_message": {"executed_lines": [97, 98, 100, 101, 102, 103, 104, 105, 106], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_profile_service_switch": {"executed_lines": [110, 111, 115, 118, 121, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 138, 139, 140, 143, 147, 148], "summary": {"covered_lines": 24, "num_statements": 24, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_profile_service_switch.DummyFingerprintManager.__init__": {"executed_lines": [112, 113], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_profile_service_switch.DummyFingerprintManager.list_fingerprints": {"executed_lines": [116], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_profile_service_switch.DummyFingerprintManager.display_name": {"executed_lines": [119], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_profile_service_switch.DummyFingerprintManager.get_current_fingerprint_dir": {"executed_lines": [122], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 5, 7, 8, 9, 10, 11, 12, 13, 14, 17, 18, 22, 43, 79, 96, 109], "summary": {"covered_lines": 19, "num_statements": 19, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"FakePasswordGenerator": {"executed_lines": [19], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_profile_service_switch.DummyFingerprintManager": {"executed_lines": [112, 113, 116, 119, 122], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 5, 7, 8, 9, 10, 11, 12, 13, 14, 17, 18, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 43, 44, 45, 46, 47, 48, 68, 69, 70, 72, 73, 74, 75, 76, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 96, 97, 98, 100, 101, 102, 103, 104, 105, 106, 109, 110, 111, 115, 118, 121, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 138, 139, 140, 143, 147, 148], "summary": {"covered_lines": 96, "num_statements": 96, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_settings_menu.py": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 14, 16, 17, 18, 19, 20, 21, 24, 25, 26, 28, 29, 31, 32, 33, 34, 35, 37, 45, 50, 53, 54, 55, 56, 59, 62, 67, 70, 71, 72, 75, 76, 79, 80, 81, 84, 85, 86, 87, 90, 91, 92, 93, 96, 97, 98, 99, 101, 102, 103, 104, 105, 108, 109, 110, 111, 112, 113, 115, 116, 117, 118, 120, 121, 123, 126, 127, 128, 129, 131, 132, 134, 135, 136, 137, 138, 140, 141, 143, 144, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 164, 165, 166, 168, 169, 171, 172], "summary": {"covered_lines": 113, "num_statements": 113, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"setup_pm": {"executed_lines": [25, 26, 28, 29, 31, 32, 33, 34, 35, 37, 45, 50], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_relay_and_profile_actions": {"executed_lines": [54, 55, 56, 59, 62, 67, 70, 71, 72, 75, 76, 79, 80, 81, 84, 85, 86, 87, 90, 91, 92, 93], "summary": {"covered_lines": 22, "num_statements": 22, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_settings_menu_additional_backup": {"executed_lines": [97, 98, 99, 101, 102, 103, 104, 105], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_settings_menu_change_password": {"executed_lines": [109, 110, 111, 112, 113, 115, 116, 117, 118, 120, 121, 123], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_settings_menu_change_password_incorrect": {"executed_lines": [127, 128, 129, 131, 134, 135, 136, 137, 138, 140, 141, 143, 144], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_settings_menu_change_password_incorrect.fail_change": {"executed_lines": [132], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_settings_menu_without_nostr_client": {"executed_lines": [148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 164, 165, 166, 168, 169, 171, 172], "summary": {"covered_lines": 22, "num_statements": 22, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 14, 16, 17, 18, 19, 20, 21, 24, 53, 96, 108, 126, 147], "summary": {"covered_lines": 23, "num_statements": 23, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 14, 16, 17, 18, 19, 20, 21, 24, 25, 26, 28, 29, 31, 32, 33, 34, 35, 37, 45, 50, 53, 54, 55, 56, 59, 62, 67, 70, 71, 72, 75, 76, 79, 80, 81, 84, 85, 86, 87, 90, 91, 92, 93, 96, 97, 98, 99, 101, 102, 103, 104, 105, 108, 109, 110, 111, 112, 113, 115, 116, 117, 118, 120, 121, 123, 126, 127, 128, 129, 131, 132, 134, 135, 136, 137, 138, 140, 141, 143, 144, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 164, 165, 166, 168, 169, 171, 172], "summary": {"covered_lines": 113, "num_statements": 113, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_ssh_entry.py": {"executed_lines": [1, 2, 3, 5, 7, 9, 10, 11, 12, 15, 16, 17, 18, 19, 20, 21, 23, 24, 25, 35, 36, 37, 38], "summary": {"covered_lines": 23, "num_statements": 23, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_add_and_retrieve_ssh_key_pair": {"executed_lines": [16, 17, 18, 19, 20, 21, 23, 24, 25, 35, 36, 37, 38], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 5, 7, 9, 10, 11, 12, 15], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 5, 7, 9, 10, 11, 12, 15, 16, 17, 18, 19, 20, 21, 23, 24, 25, 35, 36, 37, 38], "summary": {"covered_lines": 23, "num_statements": 23, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_ssh_entry_valid.py": {"executed_lines": [1, 2, 3, 5, 7, 9, 10, 11, 12, 13, 16, 17, 18, 19, 20, 21, 22, 24, 25, 27, 31, 40], "summary": {"covered_lines": 22, "num_statements": 22, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_ssh_private_key_corresponds_to_public": {"executed_lines": [17, 18, 19, 20, 21, 22, 24, 25, 27, 31, 40], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 5, 7, 9, 10, 11, 12, 13, 16], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 5, 7, 9, 10, 11, 12, 13, 16, 17, 18, 19, 20, 21, 22, 24, 25, 27, 31, 40], "summary": {"covered_lines": 22, "num_statements": 22, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_state_manager.py": {"executed_lines": [1, 2, 4, 5, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 19, 20, 27, 28, 29, 30, 31, 32, 33, 34, 36, 37], "summary": {"covered_lines": 26, "num_statements": 26, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_state_manager_round_trip": {"executed_lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 19, 20, 27, 28, 29, 30, 31, 32, 33, 34, 36, 37], "summary": {"covered_lines": 21, "num_statements": 21, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 5, 8], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 4, 5, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 19, 20, 27, 28, 29, 30, 31, 32, 33, 34, 36, 37], "summary": {"covered_lines": 26, "num_statements": 26, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_stats_screen.py": {"executed_lines": [1, 2, 3, 4, 5, 7, 9, 12, 13, 20, 21, 22, 23, 28, 29, 30, 33, 34, 35, 36, 41, 42, 43, 46, 47, 49, 50, 52, 53, 59, 61, 64, 65, 66, 68, 70, 73, 74, 75, 76, 79, 80, 81, 82, 87, 88, 89, 90, 93, 94, 96, 97, 98, 100, 101, 103, 104, 106, 108], "summary": {"covered_lines": 59, "num_statements": 60, "percent_covered": 98.33333333333333, "percent_covered_display": "98", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [71], "excluded_lines": [], "functions": {"_make_pm": {"executed_lines": [13], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_live_stats_shows_message": {"executed_lines": [21, 22, 23, 28, 29, 30], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_live_stats_shows_notification": {"executed_lines": [34, 35, 36, 41, 42, 43], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_live_stats_triggers_background_sync": {"executed_lines": [47, 49, 50, 52, 53, 59, 61], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_stats_display_only_once": {"executed_lines": [65, 66, 68, 70, 73, 74, 75, 76], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_stats_display_only_once.fake_input": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [71], "excluded_lines": []}, "test_stats_display_resets_after_exit": {"executed_lines": [80, 81, 82, 87, 88, 89, 90], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_stats_screen_breaks_on_enter": {"executed_lines": [94, 96, 100, 101, 103, 104, 106, 108], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_stats_screen_breaks_on_enter.display": {"executed_lines": [97, 98], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 7, 9, 12, 20, 33, 46, 64, 79, 93], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 5, 7, 9, 12, 13, 20, 21, 22, 23, 28, 29, 30, 33, 34, 35, 36, 41, 42, 43, 46, 47, 49, 50, 52, 53, 59, 61, 64, 65, 66, 68, 70, 73, 74, 75, 76, 79, 80, 81, 82, 87, 88, 89, 90, 93, 94, 96, 97, 98, 100, 101, 103, 104, 106, 108], "summary": {"covered_lines": 59, "num_statements": 60, "percent_covered": 98.33333333333333, "percent_covered_display": "98", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [71], "excluded_lines": []}}}, "src/tests/test_sync_race_conditions.py": {"executed_lines": [1, 2, 3, 6, 8, 9, 10, 11, 14, 15, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 34, 35, 37, 38, 39, 40, 42, 44, 45, 46, 48, 51, 52, 53, 55, 56, 57, 59, 60, 61, 62, 64, 65, 67, 68, 69, 70, 72, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 86, 87, 88, 89, 90, 91, 93, 95, 96, 97, 98], "summary": {"covered_lines": 75, "num_statements": 76, "percent_covered": 98.6842105263158, "percent_covered_display": "99", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [49], "excluded_lines": [], "functions": {"_init_pm": {"executed_lines": [15, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_sync_race_conditions": {"executed_lines": [35, 37, 38, 39, 40, 42, 44, 45, 48, 51, 52, 55, 56, 57, 59, 60, 61, 62, 64, 65, 67, 68, 69, 70, 72, 74, 86, 87, 88, 89, 90, 91, 93, 95, 96, 97, 98], "summary": {"covered_lines": 37, "num_statements": 37, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_sync_race_conditions.DummyKeys.private_key_hex": {"executed_lines": [46], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_sync_race_conditions.DummyKeys.public_key_hex": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [49], "excluded_lines": []}, "test_sync_race_conditions.DummyKeyManager.__init__": {"executed_lines": [53], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_sync_race_conditions.publish": {"executed_lines": [75, 76, 77, 78, 79, 80, 81, 82, 83, 84], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 6, 8, 9, 10, 11, 14, 34], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"test_sync_race_conditions.DummyKeys": {"executed_lines": [46], "summary": {"covered_lines": 1, "num_statements": 2, "percent_covered": 50.0, "percent_covered_display": "50", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [49], "excluded_lines": []}, "test_sync_race_conditions.DummyKeyManager": {"executed_lines": [53], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 6, 8, 9, 10, 11, 14, 15, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 34, 35, 37, 38, 39, 40, 42, 44, 45, 48, 51, 52, 55, 56, 57, 59, 60, 61, 62, 64, 65, 67, 68, 69, 70, 72, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 86, 87, 88, 89, 90, 91, 93, 95, 96, 97, 98], "summary": {"covered_lines": 73, "num_statements": 73, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_tag_persistence.py": {"executed_lines": [1, 2, 3, 5, 7, 9, 10, 11, 12, 15, 16, 17, 18, 19, 22, 23, 24, 25, 27, 30, 32, 33, 36, 37, 38, 39, 41, 42, 45, 50, 51, 52], "summary": {"covered_lines": 32, "num_statements": 32, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"setup_entry_manager": {"executed_lines": [16, 17, 18, 19], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_tags_persist_on_new_entry": {"executed_lines": [23, 24, 25, 27, 30, 32, 33], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_tags_persist_after_modify": {"executed_lines": [37, 38, 39, 41, 42, 45, 50, 51, 52], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 5, 7, 9, 10, 11, 12, 15, 22, 36], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 5, 7, 9, 10, 11, 12, 15, 16, 17, 18, 19, 22, 23, 24, 25, 27, 30, 32, 33, 36, 37, 38, 39, 41, 42, 45, 50, 51, 52], "summary": {"covered_lines": 32, "num_statements": 32, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_terminal_utils_failure_handling.py": {"executed_lines": [1, 3, 4, 6, 12, 13, 14, 17, 18, 20, 21, 24, 25, 26, 27, 28, 29, 32, 33, 34, 35, 36, 37], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 4}, "missing_lines": [], "excluded_lines": [13, 14, 20, 21], "functions": {"ErrorFingerprintManager.get_name": {"executed_lines": [14], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1}, "missing_lines": [], "excluded_lines": [14]}, "ErrorPM.get_current_notification": {"executed_lines": [21], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1}, "missing_lines": [], "excluded_lines": [21]}, "test_format_profile_reraises": {"executed_lines": [25, 26, 27, 28, 29], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_clear_header_with_notification_reraises": {"executed_lines": [33, 34, 35, 36, 37], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 4, 6, 12, 13, 17, 18, 20, 24, 32], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2}, "missing_lines": [], "excluded_lines": [13, 20]}}, "classes": {"ErrorFingerprintManager": {"executed_lines": [14], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1}, "missing_lines": [], "excluded_lines": [14]}, "ErrorPM": {"executed_lines": [21], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1}, "missing_lines": [], "excluded_lines": [21]}, "": {"executed_lines": [1, 3, 4, 6, 12, 13, 17, 18, 20, 24, 25, 26, 27, 28, 29, 32, 33, 34, 35, 36, 37], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2}, "missing_lines": [], "excluded_lines": [13, 20]}}}, "src/tests/test_totp.py": {"executed_lines": [1, 2, 4, 5, 7, 9, 10, 13, 14, 15, 16, 17, 20, 21, 22, 25, 26, 27, 28, 29, 30], "summary": {"covered_lines": 21, "num_statements": 21, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_current_code_matches_pyotp": {"executed_lines": [15, 16, 17], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_time_remaining": {"executed_lines": [22], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_print_progress_bar_terminates": {"executed_lines": [26, 27, 28, 29, 30], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 5, 7, 9, 10, 13, 14, 20, 21, 25], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 4, 5, 7, 9, 10, 13, 14, 15, 16, 17, 20, 21, 22, 25, 26, 27, 28, 29, 30], "summary": {"covered_lines": 21, "num_statements": 21, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_totp_entry.py": {"executed_lines": [1, 2, 3, 4, 6, 8, 10, 12, 13, 14, 15, 16, 17, 20, 21, 22, 23, 24, 25, 27, 28, 30, 31, 32, 34, 36, 37, 40, 41, 42, 45, 46, 47, 48, 49, 50, 52, 54, 55, 56, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 73, 74, 75, 76, 77, 79, 80, 81, 84, 85, 86, 87, 88, 90, 91, 92, 93, 94, 96, 97, 98, 100, 101], "summary": {"covered_lines": 75, "num_statements": 75, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_add_totp_and_get_code": {"executed_lines": [21, 22, 23, 24, 25, 27, 28, 30, 31, 32, 34, 36, 37, 40, 41, 42], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_totp_time_remaining": {"executed_lines": [46, 47, 48, 49, 50, 52, 54, 55, 56], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_add_totp_imported": {"executed_lines": [60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_add_totp_with_notes": {"executed_lines": [74, 75, 76, 77, 79, 80, 81], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_legacy_deterministic_entry": {"executed_lines": [85, 86, 87, 88, 90, 91, 92, 93, 94, 96, 97, 98, 100, 101], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 6, 8, 10, 12, 13, 14, 15, 16, 17, 20, 45, 59, 73, 84], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 6, 8, 10, 12, 13, 14, 15, 16, 17, 20, 21, 22, 23, 24, 25, 27, 28, 30, 31, 32, 34, 36, 37, 40, 41, 42, 45, 46, 47, 48, 49, 50, 52, 54, 55, 56, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 73, 74, 75, 76, 77, 79, 80, 81, 84, 85, 86, 87, 88, 90, 91, 92, 93, 94, 96, 97, 98, 100, 101], "summary": {"covered_lines": 75, "num_statements": 75, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_totp_uri.py": {"executed_lines": [1, 2, 4, 6, 8, 13, 14, 15, 16, 17, 18, 19, 25, 26, 27, 33, 34, 35, 36, 42, 43, 44, 45, 46, 47], "summary": {"covered_lines": 25, "num_statements": 25, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_parse_otpauth_normal": {"executed_lines": [14, 15, 16, 17, 18, 19], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_parse_otpauth_missing_prefix": {"executed_lines": [26, 27], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_parse_otpauth_missing_secret": {"executed_lines": [34, 35, 36], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_make_otpauth_uri_roundtrip": {"executed_lines": [43, 44, 45, 46, 47], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 6, 8, 13, 25, 33, 42], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 4, 6, 8, 13, 14, 15, 16, 17, 18, 19, 25, 26, 27, 33, 34, 35, 36, 42, 43, 44, 45, 46, 47], "summary": {"covered_lines": 25, "num_statements": 25, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_typer_cli.py": {"executed_lines": [1, 2, 3, 5, 7, 9, 10, 11, 12, 13, 15, 18, 19, 21, 22, 23, 25, 29, 30, 31, 32, 33, 36, 37, 45, 46, 47, 48, 51, 52, 53, 55, 56, 66, 67, 68, 69, 72, 73, 75, 76, 77, 79, 80, 81, 82, 83, 84, 85, 88, 89, 91, 92, 94, 95, 96, 97, 98, 99, 100, 103, 104, 106, 107, 108, 110, 111, 113, 114, 117, 118, 119, 120, 121, 122, 125, 126, 128, 129, 131, 132, 133, 134, 135, 138, 139, 141, 142, 143, 145, 152, 153, 154, 155, 156, 159, 160, 162, 163, 164, 166, 173, 174, 175, 176, 177, 180, 181, 183, 184, 186, 189, 190, 191, 196, 197, 200, 201, 207, 208, 209, 210, 213, 214, 218, 219, 220, 221, 224, 225, 227, 228, 230, 235, 236, 237, 238, 241, 242, 244, 245, 247, 251, 252, 253, 254, 257, 258, 260, 261, 263, 266, 267, 268, 269, 272, 273, 279, 280, 281, 282, 285, 286, 288, 289, 291, 295, 296, 297, 298, 299, 302, 303, 306, 307, 308, 309, 312, 313, 315, 316, 317, 323, 324, 325, 326, 327, 328, 329, 330, 333, 334, 336, 337, 338, 339, 341, 346, 351, 374, 375, 376, 386, 389, 391, 393, 394, 395, 397, 398, 400, 401, 402, 405, 407, 409, 410, 411, 412, 414, 415, 416, 417, 420, 421, 423, 424, 425, 426, 428, 433, 434, 462, 463, 464, 465, 477, 478, 480, 483, 485, 490, 491, 492, 493, 496, 497, 498, 500, 505, 506, 507, 508, 511, 512, 514, 515, 517, 522, 523, 524, 525, 526, 529, 530, 532, 533, 535, 540, 541, 542, 543, 544, 547, 548, 550, 558, 560, 561, 562, 563, 564, 567, 568, 570, 574, 575, 576, 577, 580, 581, 583, 588, 589, 590, 591, 594, 595, 597, 602, 603, 604, 605, 608, 610, 612, 613, 614, 616, 617, 621, 622, 623, 626, 627, 629, 630, 632, 637, 638, 639, 640, 643, 646, 648, 649, 650, 653, 656, 658, 659, 660, 662, 664, 666, 667, 669, 671, 673, 674, 676, 682, 683, 684, 685], "summary": {"covered_lines": 345, "num_statements": 345, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_entry_list": {"executed_lines": [19, 21, 25, 29, 30, 31, 32, 33], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_entry_list.list_entries": {"executed_lines": [22, 23], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_entry_search": {"executed_lines": [37, 45, 46, 47, 48], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_entry_get_password": {"executed_lines": [52, 55, 56, 66, 67, 68, 69], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_entry_get_password.search": {"executed_lines": [53], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_vault_export": {"executed_lines": [73, 75, 79, 80, 81, 82, 83, 84, 85], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_vault_export.export_profile": {"executed_lines": [76, 77], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_vault_import": {"executed_lines": [89, 91, 94, 95, 96, 97, 98, 99, 100], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_vault_import.import_profile": {"executed_lines": [92], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_vault_import_triggers_sync": {"executed_lines": [104, 106, 110, 113, 114, 117, 118, 119, 120, 121, 122], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_vault_import_triggers_sync.import_profile": {"executed_lines": [107, 108], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_vault_import_triggers_sync.sync_vault": {"executed_lines": [111], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_vault_change_password": {"executed_lines": [126, 128, 131, 132, 133, 134, 135], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_vault_change_password.change_pw": {"executed_lines": [129], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_vault_lock": {"executed_lines": [139, 141, 145, 152, 153, 154, 155, 156], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_vault_lock.lock": {"executed_lines": [142, 143], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_root_lock": {"executed_lines": [160, 162, 166, 173, 174, 175, 176, 177], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_root_lock.lock": {"executed_lines": [163, 164], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_vault_reveal_parent_seed": {"executed_lines": [181, 183, 186, 189, 190, 191, 196, 197], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_vault_reveal_parent_seed.reveal": {"executed_lines": [184], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_nostr_get_pubkey": {"executed_lines": [201, 207, 208, 209, 210], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_fingerprint_list": {"executed_lines": [214, 218, 219, 220, 221], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_fingerprint_add": {"executed_lines": [225, 227, 230, 235, 236, 237, 238], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_fingerprint_add.add": {"executed_lines": [228], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_fingerprint_remove": {"executed_lines": [242, 244, 247, 251, 252, 253, 254], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_fingerprint_remove.remove": {"executed_lines": [245], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_fingerprint_switch": {"executed_lines": [258, 260, 263, 266, 267, 268, 269], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_fingerprint_switch.switch": {"executed_lines": [261], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_config_get": {"executed_lines": [273, 279, 280, 281, 282], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_config_set": {"executed_lines": [286, 288, 291, 295, 296, 297, 298, 299], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_config_set.set_timeout": {"executed_lines": [289], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_config_set_unknown_key": {"executed_lines": [303, 306, 307, 308, 309], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_nostr_sync": {"executed_lines": [313, 315, 323, 324, 325, 326, 327, 328, 329, 330], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_nostr_sync.sync_vault": {"executed_lines": [316, 317], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_generate_password": {"executed_lines": [334, 336, 341, 346, 351, 374, 375, 376, 386], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_generate_password.gen_pw": {"executed_lines": [337, 338, 339], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_api_start_passes_fingerprint": {"executed_lines": [391, 393, 397, 398, 400, 401, 402], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_api_start_passes_fingerprint.fake_start": {"executed_lines": [394, 395], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_entry_list_passes_fingerprint": {"executed_lines": [407, 409, 410, 414, 415, 416, 417], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_entry_list_passes_fingerprint.PM.__init__": {"executed_lines": [411, 412], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_entry_add": {"executed_lines": [421, 423, 428, 433, 434, 462, 463, 464, 465], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_entry_add.add_entry": {"executed_lines": [424, 425, 426], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_entry_modify": {"executed_lines": [478, 480, 485, 490, 491, 492, 493], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_entry_modify.modify_entry": {"executed_lines": [483], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_entry_modify_invalid": {"executed_lines": [497, 500, 505, 506, 507, 508], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_entry_modify_invalid.modify_entry": {"executed_lines": [498], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_entry_archive": {"executed_lines": [512, 514, 517, 522, 523, 524, 525, 526], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_entry_archive.archive_entry": {"executed_lines": [515], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_entry_unarchive": {"executed_lines": [530, 532, 535, 540, 541, 542, 543, 544], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_entry_unarchive.restore_entry": {"executed_lines": [533], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_entry_export_totp": {"executed_lines": [548, 550, 558, 560, 561, 562, 563, 564], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_entry_totp_codes": {"executed_lines": [568, 570, 574, 575, 576, 577], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_verify_checksum_command": {"executed_lines": [581, 583, 588, 589, 590, 591], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_update_checksum_command": {"executed_lines": [595, 597, 602, 603, 604, 605], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_tui_forward_fingerprint": {"executed_lines": [610, 612, 616, 617, 621, 622, 623], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_tui_forward_fingerprint.fake_main": {"executed_lines": [613, 614], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_gui_command": {"executed_lines": [627, 629, 632, 637, 638, 639, 640], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_gui_command.fake_main": {"executed_lines": [630], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_gui_command_no_backend": {"executed_lines": [646, 648, 649, 650], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_gui_command_install_backend": {"executed_lines": [656, 658, 662, 664, 666, 669, 671, 673, 676, 682, 683, 684, 685], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_gui_command_install_backend.backend_available": {"executed_lines": [659, 660], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_gui_command_install_backend.fake_check_call": {"executed_lines": [667], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_gui_command_install_backend.fake_main": {"executed_lines": [674], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 5, 7, 9, 10, 11, 12, 13, 15, 18, 36, 51, 72, 88, 103, 125, 138, 159, 180, 200, 213, 224, 241, 257, 272, 285, 302, 312, 333, 389, 405, 420, 477, 496, 511, 529, 547, 567, 580, 594, 608, 626, 643, 653], "summary": {"covered_lines": 46, "num_statements": 46, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"test_entry_list_passes_fingerprint.PM": {"executed_lines": [411, 412], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 5, 7, 9, 10, 11, 12, 13, 15, 18, 19, 21, 22, 23, 25, 29, 30, 31, 32, 33, 36, 37, 45, 46, 47, 48, 51, 52, 53, 55, 56, 66, 67, 68, 69, 72, 73, 75, 76, 77, 79, 80, 81, 82, 83, 84, 85, 88, 89, 91, 92, 94, 95, 96, 97, 98, 99, 100, 103, 104, 106, 107, 108, 110, 111, 113, 114, 117, 118, 119, 120, 121, 122, 125, 126, 128, 129, 131, 132, 133, 134, 135, 138, 139, 141, 142, 143, 145, 152, 153, 154, 155, 156, 159, 160, 162, 163, 164, 166, 173, 174, 175, 176, 177, 180, 181, 183, 184, 186, 189, 190, 191, 196, 197, 200, 201, 207, 208, 209, 210, 213, 214, 218, 219, 220, 221, 224, 225, 227, 228, 230, 235, 236, 237, 238, 241, 242, 244, 245, 247, 251, 252, 253, 254, 257, 258, 260, 261, 263, 266, 267, 268, 269, 272, 273, 279, 280, 281, 282, 285, 286, 288, 289, 291, 295, 296, 297, 298, 299, 302, 303, 306, 307, 308, 309, 312, 313, 315, 316, 317, 323, 324, 325, 326, 327, 328, 329, 330, 333, 334, 336, 337, 338, 339, 341, 346, 351, 374, 375, 376, 386, 389, 391, 393, 394, 395, 397, 398, 400, 401, 402, 405, 407, 409, 410, 414, 415, 416, 417, 420, 421, 423, 424, 425, 426, 428, 433, 434, 462, 463, 464, 465, 477, 478, 480, 483, 485, 490, 491, 492, 493, 496, 497, 498, 500, 505, 506, 507, 508, 511, 512, 514, 515, 517, 522, 523, 524, 525, 526, 529, 530, 532, 533, 535, 540, 541, 542, 543, 544, 547, 548, 550, 558, 560, 561, 562, 563, 564, 567, 568, 570, 574, 575, 576, 577, 580, 581, 583, 588, 589, 590, 591, 594, 595, 597, 602, 603, 604, 605, 608, 610, 612, 613, 614, 616, 617, 621, 622, 623, 626, 627, 629, 630, 632, 637, 638, 639, 640, 643, 646, 648, 649, 650, 653, 656, 658, 659, 660, 662, 664, 666, 667, 669, 671, 673, 674, 676, 682, 683, 684, 685], "summary": {"covered_lines": 343, "num_statements": 343, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_unlock_sync.py": {"executed_lines": [1, 2, 3, 4, 5, 6, 8, 10, 11, 14, 15, 16, 17, 18, 19, 20, 21, 23, 24, 26, 28, 29, 30, 31, 33, 36, 37, 38, 39, 41, 42, 45, 47, 48, 49, 51, 53, 54, 56, 58, 60, 63, 64, 65, 66, 67, 69, 70, 72, 73, 75, 76, 78, 79, 80, 81, 82, 83, 85, 86, 87], "summary": {"covered_lines": 61, "num_statements": 61, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_unlock_triggers_sync": {"executed_lines": [15, 16, 17, 18, 19, 20, 21, 23, 26, 28, 29, 30, 31, 33], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_unlock_triggers_sync.fake_sync": {"executed_lines": [24], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_quick_unlock_background_sync": {"executed_lines": [37, 38, 39, 41, 42, 45, 47, 48, 49, 51, 53, 56, 58, 60], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_quick_unlock_background_sync.fake_bg": {"executed_lines": [54], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_start_background_sync_running_loop": {"executed_lines": [64, 65, 66, 67, 69, 72, 75, 76, 78, 85, 86, 87], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_start_background_sync_running_loop.fake_attempt": {"executed_lines": [70], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_start_background_sync_running_loop.fake_sync": {"executed_lines": [73], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_start_background_sync_running_loop.runner": {"executed_lines": [79, 80, 81, 82, 83], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 6, 8, 10, 11, 14, 36, 63], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 5, 6, 8, 10, 11, 14, 15, 16, 17, 18, 19, 20, 21, 23, 24, 26, 28, 29, 30, 31, 33, 36, 37, 38, 39, 41, 42, 45, 47, 48, 49, 51, 53, 54, 56, 58, 60, 63, 64, 65, 66, 67, 69, 70, 72, 73, 75, 76, 78, 79, 80, 81, 82, 83, 85, 86, 87], "summary": {"covered_lines": 61, "num_statements": 61, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_v2_prefix_fallback.py": {"executed_lines": [1, 2, 3, 5, 6, 8, 9, 10, 13, 14, 15, 17, 18, 19, 21, 22, 24, 25, 28, 29, 30, 32, 34, 35, 36, 38], "summary": {"covered_lines": 26, "num_statements": 26, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_v2_prefix_fernet_fallback": {"executed_lines": [14, 15, 17, 18, 19, 21, 22, 24, 25], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_aesgcm_payload_too_short": {"executed_lines": [29, 30, 32, 34, 35, 36, 38], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 5, 6, 8, 9, 10, 13, 28], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 5, 6, 8, 9, 10, 13, 14, 15, 17, 18, 19, 21, 22, 24, 25, 28, 29, 30, 32, 34, 35, 36, 38], "summary": {"covered_lines": 26, "num_statements": 26, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_vault_initialization.py": {"executed_lines": [1, 2, 3, 4, 6, 8, 9, 11, 14, 15, 16, 17, 18, 19, 20, 21, 23, 24, 28, 30, 31], "summary": {"covered_lines": 21, "num_statements": 21, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_save_and_encrypt_seed_initializes_vault": {"executed_lines": [15, 16, 17, 18, 19, 20, 21, 23, 24, 28, 30, 31], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 6, 8, 9, 11, 14], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 6, 8, 9, 11, 14, 15, 16, 17, 18, 19, 20, 21, 23, 24, 28, 30, 31], "summary": {"covered_lines": 21, "num_statements": 21, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_vault_lock_event.py": {"executed_lines": [1, 2, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 20, 21, 23, 24, 25, 27, 28], "summary": {"covered_lines": 22, "num_statements": 22, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_lock_vault_publishes_event": {"executed_lines": [6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 20, 23, 24, 25, 27, 28], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_lock_vault_publishes_event.handler": {"executed_lines": [21], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 5], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 20, 21, 23, 24, 25, 27, 28], "summary": {"covered_lines": 22, "num_statements": 22, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_vault_lock_flag.py": {"executed_lines": [1, 2, 4, 5, 8, 9, 10, 12, 13, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52], "summary": {"covered_lines": 42, "num_statements": 42, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"DummyEntryManager.__init__": {"executed_lines": [10], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "DummyEntryManager.clear_cache": {"executed_lines": [13], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_lock_vault_sets_flag_and_keeps_objects": {"executed_lines": [17, 18, 19, 20, 21, 22, 23, 24, 25, 26], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_entry_service_requires_unlocked": {"executed_lines": [30, 31, 32, 33, 34, 35, 36, 37], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_unlock_vault_clears_locked_flag": {"executed_lines": [41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 5, 8, 9, 12, 16, 29, 40], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"DummyEntryManager": {"executed_lines": [10, 13], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 5, 8, 9, 12, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52], "summary": {"covered_lines": 40, "num_statements": 40, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/tests/test_verbose_timing.py": {"executed_lines": [1, 2, 4, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 22, 23, 24, 25, 26, 27, 28, 29], "summary": {"covered_lines": 24, "num_statements": 24, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_unlock_vault_logs_time": {"executed_lines": [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "test_publish_snapshot_logs_time": {"executed_lines": [23, 24, 25, 26, 27, 28, 29], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 7, 22], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 4, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 22, 23, 24, 25, 26, 27, 28, 29], "summary": {"covered_lines": 24, "num_statements": 24, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/utils/__init__.py": {"executed_lines": [3, 5, 7, 9, 10, 19, 27, 28, 29, 30, 31, 37, 40, 41, 54], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 10}, "missing_lines": [], "excluded_lines": [40, 41, 42, 43, 45, 46, 48, 49, 50, 51], "functions": {"": {"executed_lines": [3, 5, 7, 9, 10, 19, 27, 28, 29, 30, 31, 37, 40, 41, 54], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 10}, "missing_lines": [], "excluded_lines": [40, 41, 42, 43, 45, 46, 48, 49, 50, 51]}}, "classes": {"": {"executed_lines": [3, 5, 7, 9, 10, 19, 27, 28, 29, 30, 31, 37, 40, 41, 54], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 10}, "missing_lines": [], "excluded_lines": [40, 41, 42, 43, 45, 46, 48, 49, 50, 51]}}}, "src/utils/atomic_write.py": {"executed_lines": [1, 14, 16, 17, 18, 19, 22, 44, 45, 47, 48, 49, 50, 51, 52, 53, 62], "summary": {"covered_lines": 16, "num_statements": 22, "percent_covered": 72.72727272727273, "percent_covered_display": "73", "missing_lines": 6, "excluded_lines": 0}, "missing_lines": [54, 55, 56, 57, 58, 59], "excluded_lines": [], "functions": {"atomic_write": {"executed_lines": [44, 45, 47, 48, 49, 50, 51, 52, 53], "summary": {"covered_lines": 9, "num_statements": 15, "percent_covered": 60.0, "percent_covered_display": "60", "missing_lines": 6, "excluded_lines": 0}, "missing_lines": [54, 55, 56, 57, 58, 59], "excluded_lines": []}, "": {"executed_lines": [1, 14, 16, 17, 18, 19, 22, 62], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 14, 16, 17, 18, 19, 22, 44, 45, 47, 48, 49, 50, 51, 52, 53, 62], "summary": {"covered_lines": 16, "num_statements": 22, "percent_covered": 72.72727272727273, "percent_covered_display": "73", "missing_lines": 6, "excluded_lines": 0}, "missing_lines": [54, 55, 56, 57, 58, 59], "excluded_lines": []}}}, "src/utils/checksum.py": {"executed_lines": [3, 13, 14, 15, 16, 17, 18, 20, 22, 23, 26, 29, 31, 34, 36, 37, 40, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 65, 78, 89, 90, 91, 101, 102, 103, 105, 106, 109, 120, 121, 122, 123, 124, 125, 126, 140, 151, 152, 155, 156, 157, 158, 160, 161, 162, 165, 176, 177, 180, 181, 182, 185, 186, 201], "summary": {"covered_lines": 64, "num_statements": 95, "percent_covered": 67.36842105263158, "percent_covered_display": "67", "missing_lines": 31, "excluded_lines": 0}, "missing_lines": [66, 67, 70, 75, 92, 93, 94, 95, 96, 99, 127, 128, 131, 137, 153, 178, 187, 188, 192, 198, 203, 204, 205, 206, 207, 208, 211, 212, 213, 217, 223], "excluded_lines": [], "functions": {"canonical_json_dumps": {"executed_lines": [31], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "json_checksum": {"executed_lines": [36, 37], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "calculate_checksum": {"executed_lines": [50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 65], "summary": {"covered_lines": 12, "num_statements": 16, "percent_covered": 75.0, "percent_covered_display": "75", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [66, 67, 70, 75], "excluded_lines": []}, "verify_checksum": {"executed_lines": [89, 90, 91, 101, 102, 103, 105, 106], "summary": {"covered_lines": 8, "num_statements": 14, "percent_covered": 57.142857142857146, "percent_covered_display": "57", "missing_lines": 6, "excluded_lines": 0}, "missing_lines": [92, 93, 94, 95, 96, 99], "excluded_lines": []}, "update_checksum": {"executed_lines": [120, 121, 122, 123, 124, 125, 126], "summary": {"covered_lines": 7, "num_statements": 11, "percent_covered": 63.63636363636363, "percent_covered_display": "64", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [127, 128, 131, 137], "excluded_lines": []}, "verify_and_update_checksum": {"executed_lines": [151, 152, 155, 156, 157, 158, 160, 161, 162], "summary": {"covered_lines": 9, "num_statements": 10, "percent_covered": 90.0, "percent_covered_display": "90", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [153], "excluded_lines": []}, "initialize_checksum": {"executed_lines": [176, 177, 180, 181, 182, 185, 186], "summary": {"covered_lines": 7, "num_statements": 12, "percent_covered": 58.333333333333336, "percent_covered_display": "58", "missing_lines": 5, "excluded_lines": 0}, "missing_lines": [178, 187, 188, 192, 198], "excluded_lines": []}, "update_checksum_file": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 11, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 11, "excluded_lines": 0}, "missing_lines": [203, 204, 205, 206, 207, 208, 211, 212, 213, 217, 223], "excluded_lines": []}, "": {"executed_lines": [3, 13, 14, 15, 16, 17, 18, 20, 22, 23, 26, 29, 34, 40, 78, 109, 140, 165, 201], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [3, 13, 14, 15, 16, 17, 18, 20, 22, 23, 26, 29, 31, 34, 36, 37, 40, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 65, 78, 89, 90, 91, 101, 102, 103, 105, 106, 109, 120, 121, 122, 123, 124, 125, 126, 140, 151, 152, 155, 156, 157, 158, 160, 161, 162, 165, 176, 177, 180, 181, 182, 185, 186, 201], "summary": {"covered_lines": 64, "num_statements": 95, "percent_covered": 67.36842105263158, "percent_covered_display": "67", "missing_lines": 31, "excluded_lines": 0}, "missing_lines": [66, 67, 70, 75, 92, 93, 94, 95, 96, 99, 127, 128, 131, 137, 153, 178, 187, 188, 192, 198, 203, 204, 205, 206, 207, 208, 211, 212, 213, 217, 223], "excluded_lines": []}}}, "src/utils/clipboard.py": {"executed_lines": [1, 3, 4, 5, 6, 8, 11, 12, 15, 18, 20, 21, 22, 23, 24, 25, 35, 38, 40, 42, 43, 44, 46, 47, 48, 49, 52], "summary": {"covered_lines": 25, "num_statements": 26, "percent_covered": 96.15384615384616, "percent_covered_display": "96", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [29], "excluded_lines": [], "functions": {"_ensure_clipboard": {"executed_lines": [20, 21, 22, 23, 24, 25], "summary": {"covered_lines": 6, "num_statements": 7, "percent_covered": 85.71428571428571, "percent_covered_display": "86", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [29], "excluded_lines": []}, "copy_to_clipboard": {"executed_lines": [38, 40, 42, 46, 47, 48, 49], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "copy_to_clipboard.clear_clipboard": {"executed_lines": [43, 44], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 4, 5, 6, 8, 11, 12, 15, 18, 35, 52], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"ClipboardUnavailableError": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 4, 5, 6, 8, 11, 12, 15, 18, 20, 21, 22, 23, 24, 25, 35, 38, 40, 42, 43, 44, 46, 47, 48, 49, 52], "summary": {"covered_lines": 25, "num_statements": 26, "percent_covered": 96.15384615384616, "percent_covered_display": "96", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [29], "excluded_lines": []}}}, "src/utils/color_scheme.py": {"executed_lines": [1, 3, 6, 7, 10, 12, 16, 29, 31, 32, 33, 34, 35], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"_apply_orange": {"executed_lines": [12], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "color_text": {"executed_lines": [31, 32, 33, 34, 35], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 6, 7, 10, 16, 29], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 3, 6, 7, 10, 12, 16, 29, 31, 32, 33, 34, 35], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/utils/file_lock.py": {"executed_lines": [1, 3, 4, 5, 6, 7, 10, 11, 21, 22, 23, 24, 25, 26, 38, 39, 42, 43, 53, 54, 55, 56, 57, 69, 70, 71], "summary": {"covered_lines": 25, "num_statements": 27, "percent_covered": 92.5925925925926, "percent_covered_display": "93", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [32, 63], "excluded_lines": [], "functions": {"exclusive_lock": {"executed_lines": [21, 22, 23, 24, 25, 26, 38, 39], "summary": {"covered_lines": 8, "num_statements": 9, "percent_covered": 88.88888888888889, "percent_covered_display": "89", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [32], "excluded_lines": []}, "shared_lock": {"executed_lines": [53, 54, 55, 56, 57, 69, 70, 71], "summary": {"covered_lines": 8, "num_statements": 9, "percent_covered": 88.88888888888889, "percent_covered_display": "89", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [63], "excluded_lines": []}, "": {"executed_lines": [1, 3, 4, 5, 6, 7, 10, 11, 42, 43], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 3, 4, 5, 6, 7, 10, 11, 21, 22, 23, 24, 25, 26, 38, 39, 42, 43, 53, 54, 55, 56, 57, 69, 70, 71], "summary": {"covered_lines": 25, "num_statements": 27, "percent_covered": 92.5925925925926, "percent_covered_display": "93", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [32, 63], "excluded_lines": []}}}, "src/utils/fingerprint.py": {"executed_lines": [3, 11, 12, 13, 16, 19, 30, 32, 33, 36, 37, 40, 41, 43], "summary": {"covered_lines": 13, "num_statements": 16, "percent_covered": 81.25, "percent_covered_display": "81", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [44, 45, 46], "excluded_lines": [], "functions": {"generate_fingerprint": {"executed_lines": [30, 32, 33, 36, 37, 40, 41, 43], "summary": {"covered_lines": 8, "num_statements": 11, "percent_covered": 72.72727272727273, "percent_covered_display": "73", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [44, 45, 46], "excluded_lines": []}, "": {"executed_lines": [3, 11, 12, 13, 16, 19], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [3, 11, 12, 13, 16, 19, 30, 32, 33, 36, 37, 40, 41, 43], "summary": {"covered_lines": 13, "num_statements": 16, "percent_covered": 81.25, "percent_covered_display": "81", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [44, 45, 46], "excluded_lines": []}}}, "src/utils/fingerprint_manager.py": {"executed_lines": [3, 4, 5, 6, 7, 9, 11, 12, 15, 18, 19, 27, 34, 35, 36, 37, 43, 50, 51, 56, 60, 61, 62, 69, 71, 72, 73, 74, 75, 76, 77, 78, 81, 82, 85, 90, 94, 95, 100, 104, 111, 122, 123, 124, 125, 126, 127, 128, 130, 131, 132, 133, 134, 135, 136, 141, 154, 155, 156, 157, 158, 159, 162, 164, 165, 166, 167, 168, 171, 172, 173, 174, 175, 176, 182, 183, 185, 192, 193, 195, 205, 206, 207, 208, 209, 214, 225, 227, 229, 231, 232, 234, 244, 245, 246], "summary": {"covered_lines": 94, "num_statements": 122, "percent_covered": 77.04918032786885, "percent_covered_display": "77", "missing_lines": 28, "excluded_lines": 0}, "missing_lines": [53, 54, 63, 64, 67, 86, 87, 88, 107, 108, 109, 138, 139, 169, 170, 177, 180, 211, 212, 216, 217, 218, 219, 221, 222, 223, 248, 249], "excluded_lines": [], "functions": {"FingerprintManager.__init__": {"executed_lines": [34, 35, 36, 37], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "FingerprintManager.get_current_fingerprint_dir": {"executed_lines": [50, 51], "summary": {"covered_lines": 2, "num_statements": 4, "percent_covered": 50.0, "percent_covered_display": "50", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [53, 54], "excluded_lines": []}, "FingerprintManager._ensure_app_directory": {"executed_lines": [60, 61, 62], "summary": {"covered_lines": 3, "num_statements": 6, "percent_covered": 50.0, "percent_covered_display": "50", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [63, 64, 67], "excluded_lines": []}, "FingerprintManager._load_fingerprints": {"executed_lines": [71, 72, 73, 74, 75, 76, 77, 78, 81, 82, 85], "summary": {"covered_lines": 11, "num_statements": 14, "percent_covered": 78.57142857142857, "percent_covered_display": "79", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [86, 87, 88], "excluded_lines": []}, "FingerprintManager._save_fingerprints": {"executed_lines": [94, 95, 100, 104], "summary": {"covered_lines": 4, "num_statements": 7, "percent_covered": 57.142857142857146, "percent_covered_display": "57", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [107, 108, 109], "excluded_lines": []}, "FingerprintManager.add_fingerprint": {"executed_lines": [122, 123, 124, 125, 126, 127, 128, 130, 131, 132, 133, 134, 135, 136], "summary": {"covered_lines": 14, "num_statements": 16, "percent_covered": 87.5, "percent_covered_display": "88", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [138, 139], "excluded_lines": []}, "FingerprintManager.remove_fingerprint": {"executed_lines": [154, 155, 156, 157, 158, 159, 162, 164, 165, 166, 167, 168, 171, 172, 173, 174, 175, 176, 182, 183], "summary": {"covered_lines": 20, "num_statements": 24, "percent_covered": 83.33333333333333, "percent_covered_display": "83", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [169, 170, 177, 180], "excluded_lines": []}, "FingerprintManager.list_fingerprints": {"executed_lines": [192, 193], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "FingerprintManager.select_fingerprint": {"executed_lines": [205, 206, 207, 208, 209], "summary": {"covered_lines": 5, "num_statements": 7, "percent_covered": 71.42857142857143, "percent_covered_display": "71", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [211, 212], "excluded_lines": []}, "FingerprintManager.set_name": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 7, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 7, "excluded_lines": 0}, "missing_lines": [216, 217, 218, 219, 221, 222, 223], "excluded_lines": []}, "FingerprintManager.get_name": {"executed_lines": [227], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "FingerprintManager.display_name": {"executed_lines": [231, 232], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "FingerprintManager.get_fingerprint_directory": {"executed_lines": [244, 245, 246], "summary": {"covered_lines": 3, "num_statements": 5, "percent_covered": 60.0, "percent_covered_display": "60", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [248, 249], "excluded_lines": []}, "": {"executed_lines": [3, 4, 5, 6, 7, 9, 11, 12, 15, 18, 19, 27, 43, 56, 69, 90, 111, 141, 185, 195, 214, 225, 229, 234], "summary": {"covered_lines": 23, "num_statements": 23, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"FingerprintManager": {"executed_lines": [34, 35, 36, 37, 50, 51, 60, 61, 62, 71, 72, 73, 74, 75, 76, 77, 78, 81, 82, 85, 94, 95, 100, 104, 122, 123, 124, 125, 126, 127, 128, 130, 131, 132, 133, 134, 135, 136, 154, 155, 156, 157, 158, 159, 162, 164, 165, 166, 167, 168, 171, 172, 173, 174, 175, 176, 182, 183, 192, 193, 205, 206, 207, 208, 209, 227, 231, 232, 244, 245, 246], "summary": {"covered_lines": 71, "num_statements": 99, "percent_covered": 71.71717171717172, "percent_covered_display": "72", "missing_lines": 28, "excluded_lines": 0}, "missing_lines": [53, 54, 63, 64, 67, 86, 87, 88, 107, 108, 109, 138, 139, 169, 170, 177, 180, 211, 212, 216, 217, 218, 219, 221, 222, 223, 248, 249], "excluded_lines": []}, "": {"executed_lines": [3, 4, 5, 6, 7, 9, 11, 12, 15, 18, 19, 27, 43, 56, 69, 90, 111, 141, 185, 195, 214, 225, 229, 234], "summary": {"covered_lines": 23, "num_statements": 23, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/utils/imghdr_stub.py": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 77, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 77, "excluded_lines": 39}, "missing_lines": [7, 9, 10, 12, 14, 25, 27, 28, 29, 30, 31, 32, 34, 35, 36, 37, 38, 39, 40, 42, 43, 44, 51, 54, 56, 57, 58, 59, 62, 65, 67, 68, 71, 74, 76, 77, 80, 83, 85, 86, 89, 92, 94, 95, 98, 101, 103, 104, 107, 110, 112, 113, 116, 119, 121, 122, 125, 128, 130, 131, 134, 137, 139, 140, 143, 146, 148, 149, 152, 155, 157, 158, 161, 164, 166, 167, 170], "excluded_lines": [178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 219, 220], "functions": {"what": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 16, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 16, "excluded_lines": 0}, "missing_lines": [27, 28, 29, 30, 31, 32, 34, 35, 36, 37, 38, 39, 40, 42, 43, 44], "excluded_lines": []}, "test_jpeg": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 4, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [56, 57, 58, 59], "excluded_lines": []}, "test_png": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [67, 68], "excluded_lines": []}, "test_gif": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [76, 77], "excluded_lines": []}, "test_tiff": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [85, 86], "excluded_lines": []}, "test_rgb": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [94, 95], "excluded_lines": []}, "test_pbm": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [103, 104], "excluded_lines": []}, "test_pgm": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [112, 113], "excluded_lines": []}, "test_ppm": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [121, 122], "excluded_lines": []}, "test_rast": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [130, 131], "excluded_lines": []}, "test_xbm": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [139, 140], "excluded_lines": []}, "test_bmp": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [148, 149], "excluded_lines": []}, "test_webp": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [157, 158], "excluded_lines": []}, "test_exr": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [166, 167], "excluded_lines": []}, "test": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 14}, "missing_lines": [], "excluded_lines": [179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192]}, "testall": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 21}, "missing_lines": [], "excluded_lines": [196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216]}, "": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 33, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 33, "excluded_lines": 4}, "missing_lines": [7, 9, 10, 12, 14, 25, 51, 54, 62, 65, 71, 74, 80, 83, 89, 92, 98, 101, 107, 110, 116, 119, 125, 128, 134, 137, 143, 146, 152, 155, 161, 164, 170], "excluded_lines": [178, 195, 219, 220]}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 77, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 77, "excluded_lines": 39}, "missing_lines": [7, 9, 10, 12, 14, 25, 27, 28, 29, 30, 31, 32, 34, 35, 36, 37, 38, 39, 40, 42, 43, 44, 51, 54, 56, 57, 58, 59, 62, 65, 67, 68, 71, 74, 76, 77, 80, 83, 85, 86, 89, 92, 94, 95, 98, 101, 103, 104, 107, 110, 112, 113, 116, 119, 121, 122, 125, 128, 130, 131, 134, 137, 139, 140, 143, 146, 148, 149, 152, 155, 157, 158, 161, 164, 166, 167, 170], "excluded_lines": [178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 219, 220]}}}, "src/utils/input_utils.py": {"executed_lines": [1, 2, 3, 4, 5, 7, 8, 9, 10, 13, 25, 48], "summary": {"covered_lines": 10, "num_statements": 40, "percent_covered": 25.0, "percent_covered_display": "25", "missing_lines": 30, "excluded_lines": 4}, "missing_lines": [15, 16, 17, 18, 19, 20, 21, 22, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 42, 43, 44, 45, 50, 51, 52, 54, 55, 58], "excluded_lines": [9, 10, 27, 28], "functions": {"_timed_input_posix": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 8, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 8, "excluded_lines": 0}, "missing_lines": [15, 16, 17, 18, 19, 20, 21, 22], "excluded_lines": []}, "_timed_input_windows": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 16, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 16, "excluded_lines": 2}, "missing_lines": [29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 42, 43, 44, 45], "excluded_lines": [27, 28]}, "timed_input": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 6, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 6, "excluded_lines": 0}, "missing_lines": [50, 51, 52, 54, 55, 58], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 7, 8, 9, 10, 13, 25, 48], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2}, "missing_lines": [], "excluded_lines": [9, 10]}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 5, 7, 8, 9, 10, 13, 25, 48], "summary": {"covered_lines": 10, "num_statements": 40, "percent_covered": 25.0, "percent_covered_display": "25", "missing_lines": 30, "excluded_lines": 4}, "missing_lines": [15, 16, 17, 18, 19, 20, 21, 22, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 42, 43, 44, 45, 50, 51, 52, 54, 55, 58], "excluded_lines": [9, 10, 27, 28]}}}, "src/utils/key_derivation.py": {"executed_lines": [3, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26, 27, 28, 30, 31, 32, 35, 38, 39, 41, 44, 47, 49, 53, 54, 55, 57, 58, 59, 66, 71, 74, 96, 97, 98, 100, 101, 104, 105, 108, 111, 113, 115, 116, 123, 126, 127, 129, 136, 147, 151, 152, 153, 155, 156, 157, 166, 172, 214, 216, 217, 218, 219, 222, 224, 227, 229, 230, 233, 234, 236, 237, 238, 239, 240, 242, 243, 244, 245, 251], "summary": {"covered_lines": 77, "num_statements": 117, "percent_covered": 65.8119658119658, "percent_covered_display": "66", "missing_lines": 40, "excluded_lines": 5}, "missing_lines": [109, 131, 132, 133, 148, 149, 181, 183, 186, 188, 189, 191, 194, 201, 203, 204, 208, 209, 210, 211, 231, 246, 247, 248, 279, 280, 281, 282, 283, 284, 285, 289, 290, 291, 292, 293, 295, 296, 297, 298], "excluded_lines": [49, 50, 167, 168, 169], "functions": {"derive_key_from_password": {"executed_lines": [96, 97, 98, 100, 101, 104, 105, 108, 111, 113, 115, 116, 123, 126, 127, 129], "summary": {"covered_lines": 16, "num_statements": 20, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [109, 131, 132, 133], "excluded_lines": []}, "derive_key_from_password_argon2": {"executed_lines": [147, 151, 152, 153, 155, 156, 157, 166], "summary": {"covered_lines": 8, "num_statements": 10, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 2, "excluded_lines": 3}, "missing_lines": [148, 149], "excluded_lines": [167, 168, 169]}, "derive_key_from_parent_seed": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 14, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 14, "excluded_lines": 0}, "missing_lines": [181, 183, 186, 188, 189, 191, 194, 201, 203, 204, 208, 209, 210, 211], "excluded_lines": []}, "derive_index_key_seed_only": {"executed_lines": [216, 217, 218, 219], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "derive_index_key": {"executed_lines": [224], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "derive_totp_secret": {"executed_lines": [229, 230, 233, 234, 236, 237, 238, 239, 240, 242, 243, 244, 245], "summary": {"covered_lines": 13, "num_statements": 17, "percent_covered": 76.47058823529412, "percent_covered_display": "76", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [231, 246, 247, 248], "excluded_lines": []}, "calibrate_argon2_time_cost": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 16, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 16, "excluded_lines": 0}, "missing_lines": [279, 280, 281, 282, 283, 284, 285, 289, 290, 291, 292, 293, 295, 296, 297, 298], "excluded_lines": []}, "": {"executed_lines": [3, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26, 27, 28, 30, 31, 32, 35, 38, 39, 41, 44, 47, 49, 53, 54, 55, 57, 58, 59, 66, 71, 74, 136, 172, 214, 222, 227, 251], "summary": {"covered_lines": 35, "num_statements": 35, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2}, "missing_lines": [], "excluded_lines": [49, 50]}}, "classes": {"EncryptionMode": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "KdfConfig": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26, 27, 28, 30, 31, 32, 35, 38, 39, 41, 44, 47, 49, 53, 54, 55, 57, 58, 59, 66, 71, 74, 96, 97, 98, 100, 101, 104, 105, 108, 111, 113, 115, 116, 123, 126, 127, 129, 136, 147, 151, 152, 153, 155, 156, 157, 166, 172, 214, 216, 217, 218, 219, 222, 224, 227, 229, 230, 233, 234, 236, 237, 238, 239, 240, 242, 243, 244, 245, 251], "summary": {"covered_lines": 77, "num_statements": 117, "percent_covered": 65.8119658119658, "percent_covered_display": "66", "missing_lines": 40, "excluded_lines": 5}, "missing_lines": [109, 131, 132, 133, 148, 149, 181, 183, 186, 188, 189, 191, 194, 201, 203, 204, 208, 209, 210, 211, 231, 246, 247, 248, 279, 280, 281, 282, 283, 284, 285, 289, 290, 291, 292, 293, 295, 296, 297, 298], "excluded_lines": [49, 50, 167, 168, 169]}}}, "src/utils/key_hierarchy.py": {"executed_lines": [1, 3, 4, 5, 8, 21, 28], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"kd": {"executed_lines": [21, 28], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 4, 5, 8], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 3, 4, 5, 8, 21, 28], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/utils/key_validation.py": {"executed_lines": [1, 3, 4, 5, 6, 7, 8, 10, 13, 15, 16, 17, 18, 19, 20, 23, 25, 26, 27, 35, 41, 43, 44, 45, 51, 53, 54, 55, 56, 57, 63, 65, 66], "summary": {"covered_lines": 29, "num_statements": 29, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 15}, "missing_lines": [], "excluded_lines": [18, 19, 20, 36, 37, 38, 46, 47, 48, 58, 59, 60, 67, 68, 69], "functions": {"validate_totp_secret": {"executed_lines": [15, 16, 17, 18, 19, 20], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 3}, "missing_lines": [], "excluded_lines": [18, 19, 20]}, "validate_ssh_key_pair": {"executed_lines": [25, 26, 27, 35], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 3}, "missing_lines": [], "excluded_lines": [36, 37, 38]}, "validate_pgp_private_key": {"executed_lines": [43, 44, 45], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 3}, "missing_lines": [], "excluded_lines": [46, 47, 48]}, "validate_nostr_keys": {"executed_lines": [53, 54, 55, 56, 57], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 3}, "missing_lines": [], "excluded_lines": [58, 59, 60]}, "validate_seed_phrase": {"executed_lines": [65, 66], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 3}, "missing_lines": [], "excluded_lines": [67, 68, 69]}, "": {"executed_lines": [1, 3, 4, 5, 6, 7, 8, 10, 13, 23, 41, 51, 63], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 3, 4, 5, 6, 7, 8, 10, 13, 15, 16, 17, 18, 19, 20, 23, 25, 26, 27, 35, 41, 43, 44, 45, 51, 53, 54, 55, 56, 57, 63, 65, 66], "summary": {"covered_lines": 29, "num_statements": 29, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 15}, "missing_lines": [], "excluded_lines": [18, 19, 20, 36, 37, 38, 46, 47, 48, 58, 59, 60, 67, 68, 69]}}}, "src/utils/logging_utils.py": {"executed_lines": [1, 2, 3, 4, 6, 9, 10, 12, 15, 18, 19, 21, 24, 25, 26, 32, 35, 38, 41, 44, 45, 47, 48, 49, 51, 54, 57, 58, 59, 60, 62], "summary": {"covered_lines": 23, "num_statements": 23, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 13}, "missing_lines": [], "excluded_lines": [12, 13, 14, 15, 21, 22, 23, 24, 25, 26, 27, 28, 29], "functions": {"ConsolePauseFilter.filter": {"executed_lines": [15], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1}, "missing_lines": [], "excluded_lines": [15]}, "ChecksumWarningFilter.filter": {"executed_lines": [24, 25, 26], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 6}, "missing_lines": [], "excluded_lines": [24, 25, 26, 27, 28, 29]}, "pause_console_logging": {"executed_lines": [35], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "resume_console_logging": {"executed_lines": [41], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "console_logging_paused": {"executed_lines": [47, 48, 49, 51], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "pause_logging_for_ui": {"executed_lines": [57, 58, 62], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "pause_logging_for_ui.wrapper": {"executed_lines": [59, 60], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 6, 9, 10, 12, 18, 19, 21, 32, 38, 44, 45, 54], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 6}, "missing_lines": [], "excluded_lines": [12, 13, 14, 21, 22, 23]}}, "classes": {"ConsolePauseFilter": {"executed_lines": [15], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1}, "missing_lines": [], "excluded_lines": [15]}, "ChecksumWarningFilter": {"executed_lines": [24, 25, 26], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 6}, "missing_lines": [], "excluded_lines": [24, 25, 26, 27, 28, 29]}, "": {"executed_lines": [1, 2, 3, 4, 6, 9, 10, 12, 18, 19, 21, 32, 35, 38, 41, 44, 45, 47, 48, 49, 51, 54, 57, 58, 59, 60, 62], "summary": {"covered_lines": 23, "num_statements": 23, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 6}, "missing_lines": [], "excluded_lines": [12, 13, 14, 21, 22, 23]}}}, "src/utils/memory_protection.py": {"executed_lines": [1, 3, 4, 10, 11, 17, 18, 19, 20, 21, 22, 23, 25, 27, 29, 31, 32, 33, 34, 36, 38], "summary": {"covered_lines": 20, "num_statements": 20, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"InMemorySecret.__init__": {"executed_lines": [18, 19, 20, 21, 22, 23], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "InMemorySecret.get_bytes": {"executed_lines": [27], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "InMemorySecret.wipe": {"executed_lines": [31, 32, 33, 34], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "InMemorySecret.get_str": {"executed_lines": [38], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 4, 10, 11, 17, 25, 29, 36], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"InMemorySecret": {"executed_lines": [18, 19, 20, 21, 22, 23, 27, 31, 32, 33, 34, 38], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 4, 10, 11, 17, 25, 29, 36], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/utils/password_prompt.py": {"executed_lines": [3, 14, 15, 16, 17, 18, 19, 21, 22, 24, 27, 30, 33, 36, 39, 42, 45, 47, 48, 53, 56, 59, 61, 62, 65, 66, 68, 71, 89, 90, 96, 97, 99, 100, 101, 102, 104, 113, 114, 120, 123, 124, 125, 127, 137, 138, 139, 158, 180, 181, 184, 185, 186, 187, 188, 190, 199, 200, 201, 219, 235, 236, 237, 238, 239, 240, 241, 242, 243, 259], "summary": {"covered_lines": 68, "num_statements": 126, "percent_covered": 53.96825396825397, "percent_covered_display": "54", "missing_lines": 58, "excluded_lines": 0}, "missing_lines": [46, 49, 50, 51, 52, 60, 91, 92, 93, 94, 105, 108, 109, 110, 111, 128, 131, 132, 133, 134, 141, 142, 143, 144, 145, 146, 149, 150, 151, 153, 154, 155, 182, 191, 194, 195, 196, 197, 203, 204, 205, 206, 207, 208, 212, 213, 214, 216, 245, 247, 248, 249, 250, 251, 252, 255, 256, 268], "excluded_lines": [], "functions": {"_env_password": {"executed_lines": [39], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "_get_max_attempts": {"executed_lines": [45, 47, 48, 53], "summary": {"covered_lines": 4, "num_statements": 9, "percent_covered": 44.44444444444444, "percent_covered_display": "44", "missing_lines": 5, "excluded_lines": 0}, "missing_lines": [46, 49, 50, 51, 52], "excluded_lines": []}, "_apply_backoff": {"executed_lines": [59, 61, 62], "summary": {"covered_lines": 3, "num_statements": 4, "percent_covered": 75.0, "percent_covered_display": "75", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [60], "excluded_lines": []}, "prompt_new_password": {"executed_lines": [89, 90, 96, 97, 99, 100, 101, 102, 104, 113, 114, 120, 123, 124, 125, 127, 137, 138, 139], "summary": {"covered_lines": 19, "num_statements": 45, "percent_covered": 42.22222222222222, "percent_covered_display": "42", "missing_lines": 26, "excluded_lines": 0}, "missing_lines": [91, 92, 93, 94, 105, 108, 109, 110, 111, 128, 131, 132, 133, 134, 141, 142, 143, 144, 145, 146, 149, 150, 151, 153, 154, 155], "excluded_lines": []}, "prompt_existing_password": {"executed_lines": [180, 181, 184, 185, 186, 187, 188, 190, 199, 200, 201], "summary": {"covered_lines": 11, "num_statements": 27, "percent_covered": 40.74074074074074, "percent_covered_display": "41", "missing_lines": 16, "excluded_lines": 0}, "missing_lines": [182, 191, 194, 195, 196, 197, 203, 204, 205, 206, 207, 208, 212, 213, 214, 216], "excluded_lines": []}, "confirm_action": {"executed_lines": [235, 236, 237, 238, 239, 240, 241, 242, 243], "summary": {"covered_lines": 9, "num_statements": 18, "percent_covered": 50.0, "percent_covered_display": "50", "missing_lines": 9, "excluded_lines": 0}, "missing_lines": [245, 247, 248, 249, 250, 251, 252, 255, 256], "excluded_lines": []}, "prompt_for_password": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [268], "excluded_lines": []}, "": {"executed_lines": [3, 14, 15, 16, 17, 18, 19, 21, 22, 24, 27, 30, 33, 36, 42, 56, 65, 66, 68, 71, 158, 219, 259], "summary": {"covered_lines": 21, "num_statements": 21, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"PasswordPromptError": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 14, 15, 16, 17, 18, 19, 21, 22, 24, 27, 30, 33, 36, 39, 42, 45, 47, 48, 53, 56, 59, 61, 62, 65, 66, 68, 71, 89, 90, 96, 97, 99, 100, 101, 102, 104, 113, 114, 120, 123, 124, 125, 127, 137, 138, 139, 158, 180, 181, 184, 185, 186, 187, 188, 190, 199, 200, 201, 219, 235, 236, 237, 238, 239, 240, 241, 242, 243, 259], "summary": {"covered_lines": 68, "num_statements": 126, "percent_covered": 53.96825396825397, "percent_covered_display": "54", "missing_lines": 58, "excluded_lines": 0}, "missing_lines": [46, 49, 50, 51, 52, 60, 91, 92, 93, 94, 105, 108, 109, 110, 111, 128, 131, 132, 133, 134, 141, 142, 143, 144, 145, 146, 149, 150, 151, 153, 154, 155, 182, 191, 194, 195, 196, 197, 203, 204, 205, 206, 207, 208, 212, 213, 214, 216, 245, 247, 248, 249, 250, 251, 252, 255, 256, 268], "excluded_lines": []}}}, "src/utils/seed_prompt.py": {"executed_lines": [1, 2, 3, 5, 6, 7, 8, 10, 11, 12, 17, 18, 20, 23, 31, 33, 34, 39, 42, 45, 47, 48, 51, 53, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 71, 72, 73, 76, 78, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 100, 101, 102, 104, 107, 109, 110, 111, 112, 113, 114, 118, 121, 150, 152, 153, 155, 156, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 169, 170, 171, 172, 174, 175, 176, 177, 178, 179, 184, 185, 186, 187, 188, 189, 190, 191, 194, 195, 196, 211, 212, 213, 214], "summary": {"covered_lines": 107, "num_statements": 128, "percent_covered": 83.59375, "percent_covered_display": "84", "missing_lines": 21, "excluded_lines": 11}, "missing_lines": [32, 35, 36, 37, 38, 46, 67, 68, 69, 168, 197, 198, 199, 200, 201, 204, 205, 206, 207, 208, 209], "excluded_lines": [7, 8, 13, 14, 15, 53, 54, 78, 79, 115, 116], "functions": {"_get_max_attempts": {"executed_lines": [31, 33, 34, 39], "summary": {"covered_lines": 4, "num_statements": 9, "percent_covered": 44.44444444444444, "percent_covered_display": "44", "missing_lines": 5, "excluded_lines": 0}, "missing_lines": [32, 35, 36, 37, 38], "excluded_lines": []}, "_apply_backoff": {"executed_lines": [45, 47, 48], "summary": {"covered_lines": 3, "num_statements": 4, "percent_covered": 75.0, "percent_covered_display": "75", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [46], "excluded_lines": []}, "_masked_input_windows": {"executed_lines": [53, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 71, 72, 73], "summary": {"covered_lines": 14, "num_statements": 17, "percent_covered": 82.3529411764706, "percent_covered_display": "82", "missing_lines": 3, "excluded_lines": 2}, "missing_lines": [67, 68, 69], "excluded_lines": [53, 54]}, "_masked_input_posix": {"executed_lines": [78, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 100, 101, 102, 104], "summary": {"covered_lines": 22, "num_statements": 22, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2}, "missing_lines": [], "excluded_lines": [78, 79]}, "masked_input": {"executed_lines": [109, 110, 111, 112, 113, 114, 118], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2}, "missing_lines": [], "excluded_lines": [115, 116]}, "prompt_seed_words": {"executed_lines": [150, 152, 153, 155, 156, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 169, 170, 171, 172, 174, 175, 176, 177, 178, 179, 184, 185, 186, 187, 188, 189, 190, 191, 194, 195, 196, 211, 212, 213, 214], "summary": {"covered_lines": 40, "num_statements": 52, "percent_covered": 76.92307692307692, "percent_covered_display": "77", "missing_lines": 12, "excluded_lines": 0}, "missing_lines": [168, 197, 198, 199, 200, 201, 204, 205, 206, 207, 208, 209], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 5, 6, 7, 8, 10, 11, 12, 17, 18, 20, 23, 42, 51, 76, 107, 121], "summary": {"covered_lines": 17, "num_statements": 17, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 5}, "missing_lines": [], "excluded_lines": [7, 8, 13, 14, 15]}}, "classes": {"": {"executed_lines": [1, 2, 3, 5, 6, 7, 8, 10, 11, 12, 17, 18, 20, 23, 31, 33, 34, 39, 42, 45, 47, 48, 51, 53, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 71, 72, 73, 76, 78, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 100, 101, 102, 104, 107, 109, 110, 111, 112, 113, 114, 118, 121, 150, 152, 153, 155, 156, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 169, 170, 171, 172, 174, 175, 176, 177, 178, 179, 184, 185, 186, 187, 188, 189, 190, 191, 194, 195, 196, 211, 212, 213, 214], "summary": {"covered_lines": 107, "num_statements": 128, "percent_covered": 83.59375, "percent_covered_display": "84", "missing_lines": 21, "excluded_lines": 11}, "missing_lines": [32, 35, 36, 37, 38, 46, 67, 68, 69, 168, 197, 198, 199, 200, 201, 204, 205, 206, 207, 208, 209], "excluded_lines": [7, 8, 13, 14, 15, 53, 54, 78, 79, 115, 116]}}}, "src/utils/terminal_utils.py": {"executed_lines": [1, 3, 4, 5, 7, 9, 12, 14, 16, 17, 18, 21, 22, 25, 26, 29, 31, 34, 57, 73, 82, 83, 84, 86, 87, 88, 90, 91, 92, 93, 94, 96, 97, 98, 99, 100, 101, 102, 103, 104, 106, 107, 108, 109, 111, 113, 116, 118, 119], "summary": {"covered_lines": 42, "num_statements": 75, "percent_covered": 56.0, "percent_covered_display": "56", "missing_lines": 33, "excluded_lines": 6}, "missing_lines": [15, 19, 20, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 85, 89, 110, 120, 121, 122, 123], "excluded_lines": [21, 22, 25, 102, 103, 104], "functions": {"format_profile": {"executed_lines": [14, 16, 17, 18, 21, 22, 25, 26], "summary": {"covered_lines": 5, "num_statements": 8, "percent_covered": 62.5, "percent_covered_display": "62", "missing_lines": 3, "excluded_lines": 3}, "missing_lines": [15, 19, 20], "excluded_lines": [21, 22, 25]}, "clear_screen": {"executed_lines": [31], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "clear_and_print_fingerprint": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 13, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 13, "excluded_lines": 0}, "missing_lines": [42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54], "excluded_lines": []}, "clear_and_print_profile_chain": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 10, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 10, "excluded_lines": 0}, "missing_lines": [61, 62, 63, 64, 65, 66, 67, 68, 69, 70], "excluded_lines": []}, "clear_header_with_notification": {"executed_lines": [82, 83, 84, 86, 87, 88, 90, 91, 92, 93, 94, 96, 97, 98, 99, 100, 101, 102, 103, 104, 106, 107, 108, 109, 111, 113], "summary": {"covered_lines": 23, "num_statements": 26, "percent_covered": 88.46153846153847, "percent_covered_display": "88", "missing_lines": 3, "excluded_lines": 3}, "missing_lines": [85, 89, 110], "excluded_lines": [102, 103, 104]}, "pause": {"executed_lines": [118, 119], "summary": {"covered_lines": 2, "num_statements": 6, "percent_covered": 33.333333333333336, "percent_covered_display": "33", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [120, 121, 122, 123], "excluded_lines": []}, "": {"executed_lines": [1, 3, 4, 5, 7, 9, 12, 29, 34, 57, 73, 116], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 3, 4, 5, 7, 9, 12, 14, 16, 17, 18, 21, 22, 25, 26, 29, 31, 34, 57, 73, 82, 83, 84, 86, 87, 88, 90, 91, 92, 93, 94, 96, 97, 98, 99, 100, 101, 102, 103, 104, 106, 107, 108, 109, 111, 113, 116, 118, 119], "summary": {"covered_lines": 42, "num_statements": 75, "percent_covered": 56.0, "percent_covered_display": "56", "missing_lines": 33, "excluded_lines": 6}, "missing_lines": [15, 19, 20, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 85, 89, 110, 120, 121, 122, 123], "excluded_lines": [21, 22, 25, 102, 103, 104]}}}}, "totals": {"covered_lines": 17094, "num_statements": 19933, "percent_covered": 85.75728691115236, "percent_covered_display": "86", "missing_lines": 2839, "excluded_lines": 290}}