Files
SeedPass/artifacts/coverage/coverage.json
T

1 line
1023 KiB
JSON

{"meta": {"format": 3, "version": "7.10.1", "timestamp": "2026-02-25T20:55:36.169534", "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, 104, 106, 117, 118, 119, 120, 121, 122, 124, 125, 126, 127, 128, 129, 131, 137, 138, 141, 142, 148, 150, 151, 152, 153], "summary": {"covered_lines": 59, "num_statements": 74, "percent_covered": 79.72972972972973, "percent_covered_display": "80", "missing_lines": 15, "excluded_lines": 0}, "missing_lines": [56, 57, 58, 59, 107, 110, 113, 143, 144, 145, 146, 154, 155, 156, 157], "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, 104, 106, 117, 118, 119, 120, 121, 122], "summary": {"covered_lines": 21, "num_statements": 24, "percent_covered": 87.5, "percent_covered_display": "88", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [107, 110, 113], "excluded_lines": []}, "BIP85.derive_mnemonic": {"executed_lines": [125, 126, 127, 128, 129, 131, 137, 138, 141, 142], "summary": {"covered_lines": 10, "num_statements": 14, "percent_covered": 71.42857142857143, "percent_covered_display": "71", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [143, 144, 145, 146], "excluded_lines": []}, "BIP85.derive_symmetric_key": {"executed_lines": [150, 151, 152, 153], "summary": {"covered_lines": 4, "num_statements": 8, "percent_covered": 50.0, "percent_covered_display": "50", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [154, 155, 156, 157], "excluded_lines": []}, "": {"executed_lines": [3, 16, 17, 18, 19, 20, 21, 23, 25, 27, 28, 29, 32, 35, 36, 38, 41, 42, 61, 124, 148], "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, 104, 106, 117, 118, 119, 120, 121, 122, 125, 126, 127, 128, 129, 131, 137, 138, 141, 142, 150, 151, 152, 153], "summary": {"covered_lines": 40, "num_statements": 55, "percent_covered": 72.72727272727273, "percent_covered_display": "73", "missing_lines": 15, "excluded_lines": 0}, "missing_lines": [56, 57, 58, 59, 107, 110, 113, 143, 144, 145, 146, 154, 155, 156, 157], "excluded_lines": []}, "": {"executed_lines": [3, 16, 17, 18, 19, 20, 21, 23, 25, 27, 28, 29, 32, 35, 36, 38, 41, 42, 61, 124, 148], "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, 29, 34, 41, 42, 43, 48, 50, 52, 59, 61, 62, 63, 72, 74, 75, 76, 77, 78, 79, 80, 81, 82, 85, 88, 89, 91, 92, 93, 94, 96, 97, 99, 102, 103, 105, 106, 107, 108, 109, 111, 113, 114, 117, 118, 135, 150, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 163, 166, 167, 173, 174, 175, 184, 185, 186, 187, 189, 190, 194, 195, 196, 201, 211, 224, 226, 227, 228, 232, 233, 234, 235, 237, 238, 242, 243, 246, 248, 249, 250, 251, 252, 253, 255, 272, 277, 283, 284, 285, 289, 290, 291, 292, 293, 299, 317, 325, 326, 327, 328, 329, 331, 332, 333, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 364, 373, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 390, 392, 394, 396, 399, 400, 401, 402, 403, 405, 406, 409, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 427, 428, 433, 436, 438, 439, 440, 450, 451, 458, 459, 460, 466, 471, 474, 491, 493, 494, 495, 496, 497, 502, 515, 517, 518, 521, 522, 525, 526, 527, 528, 531, 532, 533, 534, 535, 536, 543, 546, 548, 549, 552, 553, 554, 555, 558, 559, 560, 561, 564, 572, 573, 574, 575, 580, 583, 585, 586, 589, 591, 592, 593, 594, 599, 602, 636, 638, 639, 641, 642, 645, 652, 653, 658, 659, 660, 661, 662, 663, 664, 667, 673, 674, 677, 678, 679, 685, 734, 753, 755, 756, 757, 758, 759, 760, 761, 769, 770, 771, 776, 777, 778, 779, 782, 783, 784, 785, 786, 792, 793, 794, 795, 796, 797, 798, 804, 806, 807, 808, 809, 810, 811, 812, 820, 821, 826, 827, 828, 829, 832, 833, 834, 835, 841, 843, 844, 845, 846, 847, 848, 849, 857, 858, 863, 864, 865, 866, 869, 870, 871, 872, 873, 879, 881, 882, 887, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 906, 908, 910, 912, 914, 915, 918, 922, 923, 924, 925, 932, 1000, 1002, 1003, 1008, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1037, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1050, 1051, 1052, 1054, 1057, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1073, 1074, 1075, 1076, 1080, 1081, 1088, 1089, 1090, 1091, 1094, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1116, 1117, 1119, 1122, 1125, 1128, 1129, 1132, 1136, 1140, 1141, 1142, 1143, 1146, 1154, 1165, 1166, 1167, 1168, 1169, 1170, 1175, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1194, 1204, 1205, 1206, 1208, 1209, 1210, 1214, 1215, 1217, 1220, 1221, 1222, 1223, 1224, 1228, 1229, 1230, 1231, 1232, 1250, 1251, 1252, 1253, 1254, 1255, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1275, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1294, 1295, 1298, 1301, 1304, 1307, 1310, 1313, 1316, 1319, 1320, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1360, 1370, 1371, 1372, 1373, 1374, 1376, 1377, 1378, 1379, 1383, 1388, 1393, 1399, 1401, 1402, 1403, 1409, 1410, 1412, 1413, 1415, 1416, 1418, 1419, 1421, 1423, 1424, 1425, 1433, 1434, 1435, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1450, 1451, 1452, 1458, 1461, 1462, 1463, 1473, 1475, 1478, 1479, 1480, 1481, 1482, 1483, 1486, 1491, 1492, 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1508, 1509, 1514, 1515, 1516, 1517, 1518, 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1528, 1529, 1530, 1531, 1536, 1537, 1538, 1539, 1540, 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1553, 1554, 1555, 1556, 1557, 1566, 1572, 1584, 1585, 1587, 1588, 1624, 1627], "summary": {"covered_lines": 659, "num_statements": 1190, "percent_covered": 55.378151260504204, "percent_covered_display": "55", "missing_lines": 531, "excluded_lines": 5}, "missing_lines": [8, 64, 65, 125, 126, 127, 128, 129, 130, 132, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 162, 176, 182, 191, 192, 202, 203, 205, 206, 207, 208, 217, 218, 219, 220, 221, 229, 230, 239, 240, 258, 261, 262, 269, 271, 273, 274, 286, 287, 294, 295, 296, 303, 304, 305, 306, 307, 309, 310, 311, 312, 313, 314, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 366, 367, 389, 391, 393, 395, 397, 404, 429, 430, 431, 441, 447, 448, 454, 455, 456, 457, 467, 468, 469, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 498, 499, 504, 505, 506, 507, 508, 509, 510, 511, 512, 519, 520, 523, 524, 529, 530, 537, 538, 539, 540, 541, 550, 551, 556, 557, 562, 563, 565, 571, 576, 577, 578, 587, 588, 595, 596, 597, 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, 633, 643, 644, 654, 655, 656, 657, 665, 666, 668, 669, 670, 671, 672, 675, 676, 680, 681, 682, 687, 688, 689, 690, 691, 692, 693, 694, 696, 697, 698, 699, 700, 702, 705, 706, 707, 708, 709, 710, 711, 712, 714, 715, 716, 717, 718, 719, 720, 721, 722, 724, 725, 726, 727, 728, 729, 730, 731, 736, 737, 738, 739, 740, 741, 742, 744, 745, 746, 747, 748, 750, 762, 763, 764, 765, 767, 768, 772, 773, 774, 775, 780, 781, 787, 788, 789, 790, 791, 799, 800, 801, 813, 814, 815, 816, 818, 819, 822, 823, 824, 825, 830, 831, 836, 837, 838, 850, 851, 852, 853, 855, 856, 859, 860, 861, 862, 867, 868, 874, 875, 876, 905, 907, 909, 911, 913, 917, 919, 920, 921, 926, 927, 928, 929, 934, 935, 936, 937, 938, 939, 940, 941, 942, 944, 945, 950, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 1036, 1038, 1046, 1047, 1048, 1049, 1053, 1055, 1056, 1058, 1059, 1070, 1071, 1072, 1077, 1078, 1079, 1082, 1083, 1084, 1085, 1086, 1087, 1092, 1093, 1095, 1096, 1104, 1105, 1110, 1112, 1113, 1118, 1120, 1121, 1123, 1124, 1126, 1127, 1131, 1133, 1134, 1135, 1137, 1138, 1139, 1195, 1196, 1197, 1203, 1233, 1234, 1240, 1241, 1242, 1243, 1249, 1256, 1257, 1296, 1297, 1299, 1300, 1302, 1303, 1305, 1306, 1308, 1309, 1311, 1312, 1314, 1315, 1317, 1318, 1354, 1355, 1356, 1357, 1426, 1432, 1436, 1437, 1438, 1439, 1449, 1453, 1454, 1455, 1456, 1459, 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1474, 1476, 1487, 1488, 1489, 1490, 1493, 1494, 1510, 1511, 1512, 1513, 1519, 1532, 1533, 1534, 1535, 1541, 1558, 1559, 1567, 1568, 1569, 1570, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582, 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1628], "excluded_lines": [334, 335, 368, 369, 370], "functions": {"_warn_missing_optional_dependencies": {"executed_lines": [61, 62, 63], "summary": {"covered_lines": 3, "num_statements": 5, "percent_covered": 60.0, "percent_covered_display": "60", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [64, 65], "excluded_lines": []}, "load_global_config": {"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": []}, "configure_logging": {"executed_lines": [88, 89, 91, 92, 93, 94, 96, 97, 99, 102, 103, 105, 106, 107, 108, 109, 111, 113, 114], "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": [125, 126, 127, 128, 129, 130, 132], "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": [137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147], "excluded_lines": []}, "get_notification_text": {"executed_lines": [152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 163], "summary": {"covered_lines": 11, "num_statements": 12, "percent_covered": 91.66666666666667, "percent_covered_display": "92", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [162], "excluded_lines": []}, "handle_switch_fingerprint": {"executed_lines": [173, 174, 175, 184, 185, 186, 187, 189, 190, 194, 195, 196, 201], "summary": {"covered_lines": 13, "num_statements": 23, "percent_covered": 56.52173913043478, "percent_covered_display": "57", "missing_lines": 10, "excluded_lines": 0}, "missing_lines": [176, 182, 191, 192, 202, 203, 205, 206, 207, 208], "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": [217, 218, 219, 220, 221], "excluded_lines": []}, "handle_remove_fingerprint": {"executed_lines": [226, 227, 228, 232, 233, 234, 235, 237, 238, 242, 243, 246, 248, 255, 272], "summary": {"covered_lines": 15, "num_statements": 26, "percent_covered": 57.69230769230769, "percent_covered_display": "58", "missing_lines": 11, "excluded_lines": 0}, "missing_lines": [229, 230, 239, 240, 258, 261, 262, 269, 271, 273, 274], "excluded_lines": []}, "handle_remove_fingerprint._cleanup_and_exit": {"executed_lines": [249, 250, 251, 252, 253], "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": [283, 284, 285, 289, 290, 291, 292, 293], "summary": {"covered_lines": 8, "num_statements": 13, "percent_covered": 61.53846153846154, "percent_covered_display": "62", "missing_lines": 5, "excluded_lines": 0}, "missing_lines": [286, 287, 294, 295, 296], "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": [303, 304, 305, 306, 307, 309, 310, 311, 312, 313, 314], "excluded_lines": []}, "_display_live_stats": {"executed_lines": [325, 326, 327, 328, 329, 331, 332, 333, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347], "summary": {"covered_lines": 19, "num_statements": 32, "percent_covered": 59.375, "percent_covered_display": "59", "missing_lines": 13, "excluded_lines": 2}, "missing_lines": [349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361], "excluded_lines": [334, 335]}, "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": [366, 367], "excluded_lines": [368, 369, 370]}, "print_matches": {"executed_lines": [378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 390, 392, 394, 396, 399, 400, 401, 402, 403, 405, 406], "summary": {"covered_lines": 22, "num_statements": 28, "percent_covered": 78.57142857142857, "percent_covered_display": "79", "missing_lines": 6, "excluded_lines": 0}, "missing_lines": [389, 391, 393, 395, 397, 404], "excluded_lines": []}, "handle_post_to_nostr": {"executed_lines": [415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 427, 428, 433], "summary": {"covered_lines": 14, "num_statements": 17, "percent_covered": 82.3529411764706, "percent_covered_display": "82", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [429, 430, 431], "excluded_lines": []}, "handle_retrieve_from_nostr": {"executed_lines": [438, 439, 440, 450, 451, 458, 459, 460, 466, 471], "summary": {"covered_lines": 10, "num_statements": 20, "percent_covered": 50.0, "percent_covered_display": "50", "missing_lines": 10, "excluded_lines": 0}, "missing_lines": [441, 447, 448, 454, 455, 456, 457, 467, 468, 469], "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": [476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488], "excluded_lines": []}, "_safe_close_client_pool": {"executed_lines": [493, 494, 495, 496, 497], "summary": {"covered_lines": 5, "num_statements": 7, "percent_covered": 71.42857142857143, "percent_covered_display": "71", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [498, 499], "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": [504, 505, 506, 507, 508, 509, 510, 511, 512], "excluded_lines": []}, "handle_add_relay": {"executed_lines": [517, 518, 521, 522, 525, 526, 527, 528, 531, 532, 533, 534, 535, 536, 543], "summary": {"covered_lines": 15, "num_statements": 26, "percent_covered": 57.69230769230769, "percent_covered_display": "58", "missing_lines": 11, "excluded_lines": 0}, "missing_lines": [519, 520, 523, 524, 529, 530, 537, 538, 539, 540, 541], "excluded_lines": []}, "handle_remove_relay": {"executed_lines": [548, 549, 552, 553, 554, 555, 558, 559, 560, 561, 564, 572, 573, 574, 575, 580], "summary": {"covered_lines": 16, "num_statements": 27, "percent_covered": 59.25925925925926, "percent_covered_display": "59", "missing_lines": 11, "excluded_lines": 0}, "missing_lines": [550, 551, 556, 557, 562, 563, 565, 571, 576, 577, 578], "excluded_lines": []}, "handle_reset_relays": {"executed_lines": [585, 586, 589, 591, 592, 593, 594, 599], "summary": {"covered_lines": 8, "num_statements": 13, "percent_covered": 61.53846153846154, "percent_covered_display": "62", "missing_lines": 5, "excluded_lines": 0}, "missing_lines": [587, 588, 595, 596, 597], "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": [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, 633], "excluded_lines": []}, "handle_set_kdf_iterations": {"executed_lines": [638, 639, 641, 642, 645, 652, 653, 658, 659, 660, 661, 662, 663, 664, 667, 673, 674, 677, 678, 679], "summary": {"covered_lines": 20, "num_statements": 38, "percent_covered": 52.63157894736842, "percent_covered_display": "53", "missing_lines": 18, "excluded_lines": 0}, "missing_lines": [643, 644, 654, 655, 656, 657, 665, 666, 668, 669, 670, 671, 672, 675, 676, 680, 681, 682], "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": [687, 688, 689, 690, 691, 692, 693, 694, 696, 697, 698, 699, 700, 702, 705, 706, 707, 708, 709, 710, 711, 712, 714, 715, 716, 717, 718, 719, 720, 721, 722, 724, 725, 726, 727, 728, 729, 730, 731], "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": [736, 737, 738, 739, 740, 741, 742, 744, 745, 746, 747, 748, 750], "excluded_lines": []}, "handle_toggle_secret_mode": {"executed_lines": [755, 756, 757, 758, 759, 760, 761, 769, 770, 771, 776, 777, 778, 779, 782, 783, 784, 785, 786, 792, 793, 794, 795, 796, 797, 798], "summary": {"covered_lines": 26, "num_statements": 46, "percent_covered": 56.52173913043478, "percent_covered_display": "57", "missing_lines": 20, "excluded_lines": 0}, "missing_lines": [762, 763, 764, 765, 767, 768, 772, 773, 774, 775, 780, 781, 787, 788, 789, 790, 791, 799, 800, 801], "excluded_lines": []}, "handle_toggle_quick_unlock": {"executed_lines": [806, 807, 808, 809, 810, 811, 812, 820, 821, 826, 827, 828, 829, 832, 833, 834, 835], "summary": {"covered_lines": 17, "num_statements": 32, "percent_covered": 53.125, "percent_covered_display": "53", "missing_lines": 15, "excluded_lines": 0}, "missing_lines": [813, 814, 815, 816, 818, 819, 822, 823, 824, 825, 830, 831, 836, 837, 838], "excluded_lines": []}, "handle_toggle_offline_mode": {"executed_lines": [843, 844, 845, 846, 847, 848, 849, 857, 858, 863, 864, 865, 866, 869, 870, 871, 872, 873], "summary": {"covered_lines": 18, "num_statements": 33, "percent_covered": 54.54545454545455, "percent_covered_display": "55", "missing_lines": 15, "excluded_lines": 0}, "missing_lines": [850, 851, 852, 853, 855, 856, 859, 860, 861, 862, 867, 868, 874, 875, 876], "excluded_lines": []}, "handle_profiles_menu": {"executed_lines": [881, 882, 887, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 906, 908, 910, 912, 914, 915, 918, 922, 923, 924, 925], "summary": {"covered_lines": 25, "num_statements": 38, "percent_covered": 65.78947368421052, "percent_covered_display": "66", "missing_lines": 13, "excluded_lines": 0}, "missing_lines": [905, 907, 909, 911, 913, 917, 919, 920, 921, 926, 927, 928, 929], "excluded_lines": []}, "handle_nostr_menu": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 52, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 52, "excluded_lines": 0}, "missing_lines": [934, 935, 936, 937, 938, 939, 940, 941, 942, 944, 945, 950, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997], "excluded_lines": []}, "handle_settings": {"executed_lines": [1002, 1003, 1008, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1037, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1050, 1051, 1052, 1054, 1057, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1073, 1074, 1075, 1076, 1080, 1081, 1088, 1089, 1090, 1091, 1094, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1116, 1117, 1119, 1122, 1125, 1128, 1129, 1132, 1136, 1140, 1141, 1142, 1143], "summary": {"covered_lines": 78, "num_statements": 124, "percent_covered": 62.903225806451616, "percent_covered_display": "63", "missing_lines": 46, "excluded_lines": 0}, "missing_lines": [1036, 1038, 1046, 1047, 1048, 1049, 1053, 1055, 1056, 1058, 1059, 1070, 1071, 1072, 1077, 1078, 1079, 1082, 1083, 1084, 1085, 1086, 1087, 1092, 1093, 1095, 1096, 1104, 1105, 1110, 1112, 1113, 1118, 1120, 1121, 1123, 1124, 1126, 1127, 1131, 1133, 1134, 1135, 1137, 1138, 1139], "excluded_lines": []}, "display_menu": {"executed_lines": [1154, 1165, 1166, 1167, 1168, 1169, 1170, 1175, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1194, 1204, 1205, 1206, 1208, 1209, 1210, 1214, 1215, 1217, 1220, 1221, 1222, 1223, 1224, 1228, 1229, 1230, 1231, 1232, 1250, 1251, 1252, 1253, 1254, 1255, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1275, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1294, 1295, 1298, 1301, 1304, 1307, 1310, 1313, 1316, 1319, 1320, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353], "summary": {"covered_lines": 103, "num_statements": 136, "percent_covered": 75.73529411764706, "percent_covered_display": "76", "missing_lines": 33, "excluded_lines": 0}, "missing_lines": [1195, 1196, 1197, 1203, 1233, 1234, 1240, 1241, 1242, 1243, 1249, 1256, 1257, 1296, 1297, 1299, 1300, 1302, 1303, 1305, 1306, 1308, 1309, 1311, 1312, 1314, 1315, 1317, 1318, 1354, 1355, 1356, 1357], "excluded_lines": []}, "main": {"executed_lines": [1370, 1371, 1372, 1373, 1374, 1376, 1377, 1378, 1379, 1383, 1388, 1393, 1399, 1401, 1402, 1403, 1409, 1410, 1412, 1413, 1415, 1416, 1418, 1419, 1421, 1423, 1424, 1425, 1433, 1434, 1435, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1450, 1451, 1452, 1458, 1461, 1462, 1463, 1473, 1475, 1478, 1479, 1480, 1481, 1482, 1483, 1486, 1491, 1492, 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1508, 1509, 1514, 1515, 1516, 1517, 1518, 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1528, 1529, 1530, 1531, 1536, 1537, 1538, 1539, 1540, 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1553, 1554, 1555, 1556, 1557, 1566, 1572, 1584, 1585, 1587, 1588, 1624], "summary": {"covered_lines": 113, "num_statements": 190, "percent_covered": 59.473684210526315, "percent_covered_display": "59", "missing_lines": 77, "excluded_lines": 0}, "missing_lines": [1426, 1432, 1436, 1437, 1438, 1439, 1449, 1453, 1454, 1455, 1456, 1459, 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1474, 1476, 1487, 1488, 1489, 1490, 1493, 1494, 1510, 1511, 1512, 1513, 1519, 1532, 1533, 1534, 1535, 1541, 1558, 1559, 1567, 1568, 1569, 1570, 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623], "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": [1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582], "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, 29, 34, 41, 42, 43, 48, 50, 52, 59, 72, 85, 117, 118, 135, 150, 166, 167, 211, 224, 277, 299, 317, 364, 373, 409, 436, 474, 491, 502, 515, 546, 583, 602, 636, 685, 734, 753, 804, 841, 879, 932, 1000, 1146, 1360, 1627], "summary": {"covered_lines": 67, "num_statements": 69, "percent_covered": 97.10144927536231, "percent_covered_display": "97", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [8, 1628], "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, 29, 34, 41, 42, 43, 48, 50, 52, 59, 61, 62, 63, 72, 74, 75, 76, 77, 78, 79, 80, 81, 82, 85, 88, 89, 91, 92, 93, 94, 96, 97, 99, 102, 103, 105, 106, 107, 108, 109, 111, 113, 114, 117, 118, 135, 150, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 163, 166, 167, 173, 174, 175, 184, 185, 186, 187, 189, 190, 194, 195, 196, 201, 211, 224, 226, 227, 228, 232, 233, 234, 235, 237, 238, 242, 243, 246, 248, 249, 250, 251, 252, 253, 255, 272, 277, 283, 284, 285, 289, 290, 291, 292, 293, 299, 317, 325, 326, 327, 328, 329, 331, 332, 333, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 364, 373, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 390, 392, 394, 396, 399, 400, 401, 402, 403, 405, 406, 409, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 427, 428, 433, 436, 438, 439, 440, 450, 451, 458, 459, 460, 466, 471, 474, 491, 493, 494, 495, 496, 497, 502, 515, 517, 518, 521, 522, 525, 526, 527, 528, 531, 532, 533, 534, 535, 536, 543, 546, 548, 549, 552, 553, 554, 555, 558, 559, 560, 561, 564, 572, 573, 574, 575, 580, 583, 585, 586, 589, 591, 592, 593, 594, 599, 602, 636, 638, 639, 641, 642, 645, 652, 653, 658, 659, 660, 661, 662, 663, 664, 667, 673, 674, 677, 678, 679, 685, 734, 753, 755, 756, 757, 758, 759, 760, 761, 769, 770, 771, 776, 777, 778, 779, 782, 783, 784, 785, 786, 792, 793, 794, 795, 796, 797, 798, 804, 806, 807, 808, 809, 810, 811, 812, 820, 821, 826, 827, 828, 829, 832, 833, 834, 835, 841, 843, 844, 845, 846, 847, 848, 849, 857, 858, 863, 864, 865, 866, 869, 870, 871, 872, 873, 879, 881, 882, 887, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 906, 908, 910, 912, 914, 915, 918, 922, 923, 924, 925, 932, 1000, 1002, 1003, 1008, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1037, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1050, 1051, 1052, 1054, 1057, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1073, 1074, 1075, 1076, 1080, 1081, 1088, 1089, 1090, 1091, 1094, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1116, 1117, 1119, 1122, 1125, 1128, 1129, 1132, 1136, 1140, 1141, 1142, 1143, 1146, 1154, 1165, 1166, 1167, 1168, 1169, 1170, 1175, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1194, 1204, 1205, 1206, 1208, 1209, 1210, 1214, 1215, 1217, 1220, 1221, 1222, 1223, 1224, 1228, 1229, 1230, 1231, 1232, 1250, 1251, 1252, 1253, 1254, 1255, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1275, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1294, 1295, 1298, 1301, 1304, 1307, 1310, 1313, 1316, 1319, 1320, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1360, 1370, 1371, 1372, 1373, 1374, 1376, 1377, 1378, 1379, 1383, 1388, 1393, 1399, 1401, 1402, 1403, 1409, 1410, 1412, 1413, 1415, 1416, 1418, 1419, 1421, 1423, 1424, 1425, 1433, 1434, 1435, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1450, 1451, 1452, 1458, 1461, 1462, 1463, 1473, 1475, 1478, 1479, 1480, 1481, 1482, 1483, 1486, 1491, 1492, 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1508, 1509, 1514, 1515, 1516, 1517, 1518, 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1528, 1529, 1530, 1531, 1536, 1537, 1538, 1539, 1540, 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1553, 1554, 1555, 1556, 1557, 1566, 1572, 1584, 1585, 1587, 1588, 1624, 1627], "summary": {"covered_lines": 659, "num_statements": 1190, "percent_covered": 55.378151260504204, "percent_covered_display": "55", "missing_lines": 531, "excluded_lines": 5}, "missing_lines": [8, 64, 65, 125, 126, 127, 128, 129, 130, 132, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 162, 176, 182, 191, 192, 202, 203, 205, 206, 207, 208, 217, 218, 219, 220, 221, 229, 230, 239, 240, 258, 261, 262, 269, 271, 273, 274, 286, 287, 294, 295, 296, 303, 304, 305, 306, 307, 309, 310, 311, 312, 313, 314, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 366, 367, 389, 391, 393, 395, 397, 404, 429, 430, 431, 441, 447, 448, 454, 455, 456, 457, 467, 468, 469, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 498, 499, 504, 505, 506, 507, 508, 509, 510, 511, 512, 519, 520, 523, 524, 529, 530, 537, 538, 539, 540, 541, 550, 551, 556, 557, 562, 563, 565, 571, 576, 577, 578, 587, 588, 595, 596, 597, 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, 633, 643, 644, 654, 655, 656, 657, 665, 666, 668, 669, 670, 671, 672, 675, 676, 680, 681, 682, 687, 688, 689, 690, 691, 692, 693, 694, 696, 697, 698, 699, 700, 702, 705, 706, 707, 708, 709, 710, 711, 712, 714, 715, 716, 717, 718, 719, 720, 721, 722, 724, 725, 726, 727, 728, 729, 730, 731, 736, 737, 738, 739, 740, 741, 742, 744, 745, 746, 747, 748, 750, 762, 763, 764, 765, 767, 768, 772, 773, 774, 775, 780, 781, 787, 788, 789, 790, 791, 799, 800, 801, 813, 814, 815, 816, 818, 819, 822, 823, 824, 825, 830, 831, 836, 837, 838, 850, 851, 852, 853, 855, 856, 859, 860, 861, 862, 867, 868, 874, 875, 876, 905, 907, 909, 911, 913, 917, 919, 920, 921, 926, 927, 928, 929, 934, 935, 936, 937, 938, 939, 940, 941, 942, 944, 945, 950, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 1036, 1038, 1046, 1047, 1048, 1049, 1053, 1055, 1056, 1058, 1059, 1070, 1071, 1072, 1077, 1078, 1079, 1082, 1083, 1084, 1085, 1086, 1087, 1092, 1093, 1095, 1096, 1104, 1105, 1110, 1112, 1113, 1118, 1120, 1121, 1123, 1124, 1126, 1127, 1131, 1133, 1134, 1135, 1137, 1138, 1139, 1195, 1196, 1197, 1203, 1233, 1234, 1240, 1241, 1242, 1243, 1249, 1256, 1257, 1296, 1297, 1299, 1300, 1302, 1303, 1305, 1306, 1308, 1309, 1311, 1312, 1314, 1315, 1317, 1318, 1354, 1355, 1356, 1357, 1426, 1432, 1436, 1437, 1438, 1439, 1449, 1453, 1454, 1455, 1456, 1459, 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1474, 1476, 1487, 1488, 1489, 1490, 1493, 1494, 1510, 1511, 1512, 1513, 1519, 1532, 1533, 1534, 1535, 1541, 1558, 1559, 1567, 1568, 1569, 1570, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582, 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1628], "excluded_lines": [334, 335, 368, 369, 370]}}}, "src/nostr/__init__.py": {"executed_lines": [3, 5, 6, 8, 16, 18, 29, 30, 32, 34], "summary": {"covered_lines": 9, "num_statements": 11, "percent_covered": 81.81818181818181, "percent_covered_display": "82", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [31, 33], "excluded_lines": [], "functions": {"__getattr__": {"executed_lines": [30, 32, 34], "summary": {"covered_lines": 3, "num_statements": 5, "percent_covered": 60.0, "percent_covered_display": "60", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [31, 33], "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, 32, 34], "summary": {"covered_lines": 9, "num_statements": 11, "percent_covered": 81.81818181818181, "percent_covered_display": "82", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [31, 33], "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, 11, 12, 13, 15, 17, 18, 19, 21, 23, 24, 25, 27, 28, 29, 30, 31, 32, 34, 36, 37, 40, 41, 42, 43, 48, 49, 50, 51, 52, 55, 56, 57, 58, 59, 62, 63, 65, 66, 67, 68, 69, 70, 73, 74, 75, 76, 77, 80, 81, 83, 84, 88, 91, 92, 93, 94, 97, 99, 100, 101, 102, 105, 106, 108, 109, 117, 118, 119, 120, 121, 124, 127, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 141, 149, 150, 153, 154, 155, 156, 157, 158, 161, 162, 163, 164, 167, 169, 170, 171, 174, 180, 181, 182, 183, 184, 187, 188, 191, 192, 193, 194, 195, 208, 209, 215, 216, 217, 218, 219, 220, 222, 225, 226, 237, 238, 239, 241, 243, 244, 254, 256, 263, 265, 266, 268, 279, 281, 282, 289, 339, 340, 351, 352, 353, 354, 355, 366, 367, 368, 371, 372, 376, 377, 378, 379, 380, 383, 384, 388, 389, 390, 391, 392, 395, 396, 399, 400, 401, 402, 405, 406, 408, 410, 413, 414, 421, 422, 423, 427, 428, 429, 440, 442, 443, 445, 448, 449, 452, 453, 457, 458, 459, 460, 462, 464, 466, 467, 468, 469, 470, 471, 474, 475, 478, 479, 480, 483, 484, 488, 489, 490, 491, 492, 495, 496, 500, 501, 502, 503, 504, 507, 508, 512, 513, 514, 516, 518, 519, 522, 523, 529, 530, 531, 532, 533, 534, 537, 538, 544, 545, 546, 547, 548, 551, 552, 553, 554, 556, 558, 561, 564, 565, 569, 570, 571, 572, 575, 576, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 592, 593, 594, 595, 596, 597, 600, 601, 603, 604, 605, 606, 607, 610, 611, 615, 616, 617, 618, 620, 622, 623, 625, 627, 628, 629, 630, 633, 634, 638, 639, 640, 641, 642, 644, 646, 648, 649, 650, 651, 654, 655, 659, 660, 661, 662, 664, 665, 666, 667, 670, 671, 675, 676, 677, 678, 679, 682, 683, 687, 688, 689, 690, 691, 694, 695, 701, 702, 703, 704, 705, 706, 708, 709, 712, 713, 717, 718, 719, 721, 723, 724, 725, 727, 729, 730, 731, 735, 736, 737, 738, 739, 740, 742, 744, 745, 747, 750, 751, 752, 757, 758, 759, 762, 763, 770, 771, 772, 773, 775, 777, 779, 781, 783, 784, 785, 786, 789, 790, 794, 795, 796, 797, 799, 802, 803, 807, 808, 809, 810, 812, 822, 824, 825, 826, 829, 830, 834, 835, 836, 837, 840, 841, 847, 848, 850, 851, 852, 853, 854, 855, 856, 857, 860, 861, 864, 865, 867], "summary": {"covered_lines": 433, "num_statements": 472, "percent_covered": 91.73728813559322, "percent_covered_display": "92", "missing_lines": 39, "excluded_lines": 0}, "missing_lines": [64, 78, 79, 82, 103, 104, 107, 122, 123, 152, 221, 291, 292, 301, 303, 304, 311, 313, 314, 320, 322, 323, 328, 334, 336, 409, 424, 446, 465, 517, 621, 626, 645, 647, 707, 728, 748, 782, 849], "excluded_lines": [], "functions": {"dynamic_cors_headers": {"executed_lines": [42, 43, 48, 49, 50, 51, 52], "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": []}, "_get_pm": {"executed_lines": [56, 57, 58, 59], "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": []}, "_check_token": {"executed_lines": [63, 65, 66, 67, 68, 69, 70], "summary": {"covered_lines": 7, "num_statements": 8, "percent_covered": 87.5, "percent_covered_display": "88", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [64], "excluded_lines": []}, "_enforce_rate_limit": {"executed_lines": [74, 75, 76, 77, 80, 81, 83, 84, 88], "summary": {"covered_lines": 9, "num_statements": 12, "percent_covered": 75.0, "percent_covered_display": "75", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [78, 79, 82], "excluded_lines": []}, "_request_rate_key": {"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": []}, "_enforce_unlock_attempt_limit": {"executed_lines": [99, 100, 101, 102, 105, 106, 108, 109], "summary": {"covered_lines": 8, "num_statements": 11, "percent_covered": 72.72727272727273, "percent_covered_display": "73", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [103, 104, 107], "excluded_lines": []}, "_record_unlock_failure": {"executed_lines": [118, 119, 120, 121, 124], "summary": {"covered_lines": 5, "num_statements": 7, "percent_covered": 71.42857142857143, "percent_covered_display": "71", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [122, 123], "excluded_lines": []}, "_reload_relays": {"executed_lines": [129, 130, 131, 132, 133, 134, 135, 136, 137, 138], "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": [149, 150, 153, 154, 155, 156, 157, 158], "summary": {"covered_lines": 8, "num_statements": 9, "percent_covered": 88.88888888888889, "percent_covered_display": "89", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [152], "excluded_lines": []}, "_require_password": {"executed_lines": [162, 163, 164], "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": []}, "_require_unlocked": {"executed_lines": [169, 170, 171], "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": [180, 181, 182, 183, 184], "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": [191, 192, 193, 194, 195], "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_entry": {"executed_lines": [215, 216, 217, 218, 219, 220, 222], "summary": {"covered_lines": 7, "num_statements": 8, "percent_covered": 87.5, "percent_covered_display": "88", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [221], "excluded_lines": []}, "create_entry": {"executed_lines": [237, 238, 239, 241, 243, 244, 254, 256, 263, 265, 266, 268, 279, 281, 282, 289], "summary": {"covered_lines": 16, "num_statements": 30, "percent_covered": 53.333333333333336, "percent_covered_display": "53", "missing_lines": 14, "excluded_lines": 0}, "missing_lines": [291, 292, 301, 303, 304, 311, 313, 314, 320, 322, 323, 328, 334, 336], "excluded_lines": []}, "update_entry": {"executed_lines": [351, 352, 353, 354, 355, 366, 367, 368], "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": []}, "archive_entry": {"executed_lines": [376, 377, 378, 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": []}, "unarchive_entry": {"executed_lines": [388, 389, 390, 391, 392], "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_config": {"executed_lines": [399, 400, 401, 402, 405, 406, 408, 410], "summary": {"covered_lines": 8, "num_statements": 9, "percent_covered": 88.88888888888889, "percent_covered_display": "89", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [409], "excluded_lines": []}, "update_config": {"executed_lines": [421, 422, 423, 427, 428, 429, 440, 442, 443, 445, 448, 449], "summary": {"covered_lines": 12, "num_statements": 14, "percent_covered": 85.71428571428571, "percent_covered_display": "86", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [424, 446], "excluded_lines": []}, "set_secret_mode": {"executed_lines": [457, 458, 459, 460, 462, 464, 466, 467, 468, 469, 470, 471], "summary": {"covered_lines": 12, "num_statements": 13, "percent_covered": 92.3076923076923, "percent_covered_display": "92", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [465], "excluded_lines": []}, "list_fingerprints": {"executed_lines": [478, 479, 480], "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": [488, 489, 490, 491, 492], "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": []}, "remove_fingerprint": {"executed_lines": [500, 501, 502, 503, 504], "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": []}, "select_fingerprint": {"executed_lines": [512, 513, 514, 516, 518, 519], "summary": {"covered_lines": 6, "num_statements": 7, "percent_covered": 85.71428571428571, "percent_covered_display": "86", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [517], "excluded_lines": []}, "export_totp": {"executed_lines": [529, 530, 531, 532, 533, 534], "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": []}, "get_totp_codes": {"executed_lines": [544, 545, 546, 547, 548, 551, 552, 553, 554, 556, 558, 561], "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": []}, "get_profile_stats": {"executed_lines": [569, 570, 571, 572], "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_notifications": {"executed_lines": [580, 581, 582, 583, 584, 585, 586, 587, 588, 589], "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": [594, 595, 596, 597], "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": []}, "list_relays": {"executed_lines": [603, 604, 605, 606, 607], "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": []}, "add_relay": {"executed_lines": [615, 616, 617, 618, 620, 622, 623, 625, 627, 628, 629, 630], "summary": {"covered_lines": 12, "num_statements": 14, "percent_covered": 85.71428571428571, "percent_covered_display": "86", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [621, 626], "excluded_lines": []}, "remove_relay": {"executed_lines": [638, 639, 640, 641, 642, 644, 646, 648, 649, 650, 651], "summary": {"covered_lines": 11, "num_statements": 13, "percent_covered": 84.61538461538461, "percent_covered_display": "85", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [645, 647], "excluded_lines": []}, "reset_relays": {"executed_lines": [659, 660, 661, 662, 664, 665, 666, 667], "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": []}, "verify_checksum": {"executed_lines": [675, 676, 677, 678, 679], "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": []}, "update_checksum": {"executed_lines": [687, 688, 689, 690, 691], "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": []}, "export_vault": {"executed_lines": [701, 702, 703, 704, 705, 706, 708, 709], "summary": {"covered_lines": 8, "num_statements": 9, "percent_covered": 88.88888888888889, "percent_covered_display": "89", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [707], "excluded_lines": []}, "import_vault": {"executed_lines": [717, 718, 719, 721, 723, 724, 725, 727, 729, 730, 731, 735, 736, 737, 738, 739, 740, 742, 744, 745, 747, 750, 751, 752, 757, 758, 759], "summary": {"covered_lines": 27, "num_statements": 29, "percent_covered": 93.10344827586206, "percent_covered_display": "93", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [728, 748], "excluded_lines": []}, "backup_parent_seed": {"executed_lines": [770, 771, 772, 773, 775, 777, 779, 781, 783, 784, 785, 786], "summary": {"covered_lines": 12, "num_statements": 13, "percent_covered": 92.3076923076923, "percent_covered_display": "92", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [782], "excluded_lines": []}, "change_password": {"executed_lines": [794, 795, 796, 797, 799], "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": []}, "generate_password": {"executed_lines": [807, 808, 809, 810, 812, 822, 824, 825, 826], "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": []}, "lock_vault": {"executed_lines": [834, 835, 836, 837], "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": []}, "unlock_vault": {"executed_lines": [847, 848, 850, 851, 852, 853, 854, 855, 856, 857], "summary": {"covered_lines": 10, "num_statements": 11, "percent_covered": 90.9090909090909, "percent_covered_display": "91", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [849], "excluded_lines": []}, "shutdown_server": {"executed_lines": [864, 865, 867], "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, 11, 12, 13, 15, 17, 18, 19, 21, 23, 24, 25, 27, 28, 29, 30, 31, 32, 34, 36, 37, 40, 41, 55, 62, 73, 91, 97, 117, 127, 141, 161, 167, 174, 187, 188, 208, 209, 225, 226, 339, 340, 371, 372, 383, 384, 395, 396, 413, 414, 452, 453, 474, 475, 483, 484, 495, 496, 507, 508, 522, 523, 537, 538, 564, 565, 575, 576, 592, 593, 600, 601, 610, 611, 633, 634, 654, 655, 670, 671, 682, 683, 694, 695, 712, 713, 762, 763, 789, 790, 802, 803, 829, 830, 840, 841, 860, 861], "summary": {"covered_lines": 104, "num_statements": 104, "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, 11, 12, 13, 15, 17, 18, 19, 21, 23, 24, 25, 27, 28, 29, 30, 31, 32, 34, 36, 37, 40, 41, 42, 43, 48, 49, 50, 51, 52, 55, 56, 57, 58, 59, 62, 63, 65, 66, 67, 68, 69, 70, 73, 74, 75, 76, 77, 80, 81, 83, 84, 88, 91, 92, 93, 94, 97, 99, 100, 101, 102, 105, 106, 108, 109, 117, 118, 119, 120, 121, 124, 127, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 141, 149, 150, 153, 154, 155, 156, 157, 158, 161, 162, 163, 164, 167, 169, 170, 171, 174, 180, 181, 182, 183, 184, 187, 188, 191, 192, 193, 194, 195, 208, 209, 215, 216, 217, 218, 219, 220, 222, 225, 226, 237, 238, 239, 241, 243, 244, 254, 256, 263, 265, 266, 268, 279, 281, 282, 289, 339, 340, 351, 352, 353, 354, 355, 366, 367, 368, 371, 372, 376, 377, 378, 379, 380, 383, 384, 388, 389, 390, 391, 392, 395, 396, 399, 400, 401, 402, 405, 406, 408, 410, 413, 414, 421, 422, 423, 427, 428, 429, 440, 442, 443, 445, 448, 449, 452, 453, 457, 458, 459, 460, 462, 464, 466, 467, 468, 469, 470, 471, 474, 475, 478, 479, 480, 483, 484, 488, 489, 490, 491, 492, 495, 496, 500, 501, 502, 503, 504, 507, 508, 512, 513, 514, 516, 518, 519, 522, 523, 529, 530, 531, 532, 533, 534, 537, 538, 544, 545, 546, 547, 548, 551, 552, 553, 554, 556, 558, 561, 564, 565, 569, 570, 571, 572, 575, 576, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 592, 593, 594, 595, 596, 597, 600, 601, 603, 604, 605, 606, 607, 610, 611, 615, 616, 617, 618, 620, 622, 623, 625, 627, 628, 629, 630, 633, 634, 638, 639, 640, 641, 642, 644, 646, 648, 649, 650, 651, 654, 655, 659, 660, 661, 662, 664, 665, 666, 667, 670, 671, 675, 676, 677, 678, 679, 682, 683, 687, 688, 689, 690, 691, 694, 695, 701, 702, 703, 704, 705, 706, 708, 709, 712, 713, 717, 718, 719, 721, 723, 724, 725, 727, 729, 730, 731, 735, 736, 737, 738, 739, 740, 742, 744, 745, 747, 750, 751, 752, 757, 758, 759, 762, 763, 770, 771, 772, 773, 775, 777, 779, 781, 783, 784, 785, 786, 789, 790, 794, 795, 796, 797, 799, 802, 803, 807, 808, 809, 810, 812, 822, 824, 825, 826, 829, 830, 834, 835, 836, 837, 840, 841, 847, 848, 850, 851, 852, 853, 854, 855, 856, 857, 860, 861, 864, 865, 867], "summary": {"covered_lines": 433, "num_statements": 472, "percent_covered": 91.73728813559322, "percent_covered_display": "92", "missing_lines": 39, "excluded_lines": 0}, "missing_lines": [64, 78, 79, 82, 103, 104, 107, 122, 123, 152, 221, 291, 292, 301, 303, 304, 311, 313, 314, 320, 322, 323, 328, 334, 336, 409, 424, 446, 465, 517, 621, 626, 645, 647, 707, 728, 748, 782, 849], "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, 49, 52, 61, 63, 64, 65, 69, 70, 80, 85, 86, 87, 90, 91, 93, 94, 95, 98, 99, 112, 113, 114, 115, 116, 132, 133, 138, 140, 146, 151, 152, 163, 172, 179, 181, 184], "summary": {"covered_lines": 56, "num_statements": 79, "percent_covered": 70.88607594936708, "percent_covered_display": "71", "missing_lines": 23, "excluded_lines": 2}, "missing_lines": [54, 55, 56, 57, 58, 66, 117, 118, 119, 120, 121, 122, 123, 124, 126, 130, 143, 144, 164, 165, 170, 173, 177], "excluded_lines": [184, 185], "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": [54, 55, 56, 57, 58], "excluded_lines": []}, "_gui_backend_available": {"executed_lines": [63, 64, 65], "summary": {"covered_lines": 3, "num_statements": 4, "percent_covered": 75.0, "percent_covered_display": "75", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [66], "excluded_lines": []}, "main": {"executed_lines": [80, 85, 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": []}, "root_lock": {"executed_lines": [93, 94, 95], "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": [112, 113, 114, 115, 116, 132, 133, 138, 140, 146, 151, 152, 163, 172, 179, 181], "summary": {"covered_lines": 16, "num_statements": 33, "percent_covered": 48.484848484848484, "percent_covered_display": "48", "missing_lines": 17, "excluded_lines": 0}, "missing_lines": [117, 118, 119, 120, 121, 122, 123, 124, 126, 130, 143, 144, 164, 165, 170, 173, 177], "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, 49, 52, 61, 69, 70, 90, 91, 98, 99, 184], "summary": {"covered_lines": 30, "num_statements": 30, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2}, "missing_lines": [], "excluded_lines": [184, 185]}}, "classes": {"": {"executed_lines": [1, 3, 4, 5, 6, 7, 9, 11, 12, 14, 20, 27, 33, 40, 42, 43, 44, 45, 46, 47, 48, 49, 52, 61, 63, 64, 65, 69, 70, 80, 85, 86, 87, 90, 91, 93, 94, 95, 98, 99, 112, 113, 114, 115, 116, 132, 133, 138, 140, 146, 151, 152, 163, 172, 179, 181, 184], "summary": {"covered_lines": 56, "num_statements": 79, "percent_covered": 70.88607594936708, "percent_covered_display": "71", "missing_lines": 23, "excluded_lines": 2}, "missing_lines": [54, 55, 56, 57, 58, 66, 117, 118, 119, 120, 121, 122, 123, 124, 126, 130, 143, 144, 164, 165, 170, 173, 177], "excluded_lines": [184, 185]}}}, "src/seedpass/cli/agent.py": {"executed_lines": [1, 3, 4, 5, 6, 7, 9, 10, 11, 12, 13, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26, 28, 35, 46, 47, 50, 58, 59, 60, 61, 62, 63, 64, 65, 66, 96, 97, 98, 99, 100, 103, 104, 105, 106, 109, 112, 117, 118, 122, 124, 130, 131, 133, 136, 137, 163, 164, 165, 167, 168, 169, 170, 171, 172, 180, 181, 182, 184, 186, 189, 190, 192, 193, 194, 195, 196, 197, 198, 199, 200, 202, 203, 205, 212, 215, 216, 218, 219, 220, 221, 222, 225, 226, 246, 247, 248, 249, 250, 251, 252, 253, 256, 257, 271, 272, 273, 274, 275, 276, 277, 278, 288, 290, 291, 292, 293, 294, 310, 311, 313, 314, 315, 316, 319, 320, 321, 322, 333, 334, 348, 349, 350, 351, 353, 354, 356, 366, 368, 369, 380], "summary": {"covered_lines": 141, "num_statements": 176, "percent_covered": 80.11363636363636, "percent_covered_display": "80", "missing_lines": 35, "excluded_lines": 0}, "missing_lines": [51, 67, 69, 70, 71, 72, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 88, 91, 92, 93, 119, 123, 125, 132, 173, 174, 175, 176, 183, 317, 335, 346, 352], "excluded_lines": [], "functions": {"_policy_path": {"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": []}, "_deny_all_policy": {"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": []}, "_load_policy": {"executed_lines": [59, 60, 61, 62, 63, 64, 65, 66], "summary": {"covered_lines": 8, "num_statements": 29, "percent_covered": 27.586206896551722, "percent_covered_display": "28", "missing_lines": 21, "excluded_lines": 0}, "missing_lines": [67, 69, 70, 71, 72, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 88, 91, 92, 93], "excluded_lines": []}, "_save_policy": {"executed_lines": [97, 98, 99, 100], "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": []}, "_password_from_env": {"executed_lines": [104, 105, 106, 109], "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": []}, "_seed_from_inputs": {"executed_lines": [117, 118, 122, 124, 130, 131, 133], "summary": {"covered_lines": 7, "num_statements": 11, "percent_covered": 63.63636363636363, "percent_covered_display": "64", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [119, 123, 125, 132], "excluded_lines": []}, "agent_init": {"executed_lines": [163, 164, 165, 167, 168, 169, 170, 171, 172, 180, 181, 182, 184, 186, 189, 190, 192, 193, 194, 195, 196, 197, 198, 199, 200, 202, 203, 205, 212], "summary": {"covered_lines": 29, "num_statements": 34, "percent_covered": 85.29411764705883, "percent_covered_display": "85", "missing_lines": 5, "excluded_lines": 0}, "missing_lines": [173, 174, 175, 176, 183], "excluded_lines": []}, "agent_policy_show": {"executed_lines": [218, 219, 220, 221, 222], "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": []}, "agent_policy_set": {"executed_lines": [246, 247, 248, 249, 250, 251, 252, 253], "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": []}, "agent_get": {"executed_lines": [271, 272, 273, 274, 275, 276, 277, 278, 288, 290, 291, 292, 293, 294, 310, 311, 313, 314, 315, 316, 319, 320, 321, 322, 333, 334, 348, 349, 350, 351, 353, 354, 356, 366, 368, 369, 380], "summary": {"covered_lines": 37, "num_statements": 41, "percent_covered": 90.2439024390244, "percent_covered_display": "90", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [317, 335, 346, 352], "excluded_lines": []}, "": {"executed_lines": [1, 3, 4, 5, 6, 7, 9, 10, 11, 12, 13, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26, 28, 35, 46, 50, 58, 96, 103, 112, 136, 137, 215, 216, 225, 226, 256, 257], "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": []}}, "classes": {"": {"executed_lines": [1, 3, 4, 5, 6, 7, 9, 10, 11, 12, 13, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26, 28, 35, 46, 47, 50, 58, 59, 60, 61, 62, 63, 64, 65, 66, 96, 97, 98, 99, 100, 103, 104, 105, 106, 109, 112, 117, 118, 122, 124, 130, 131, 133, 136, 137, 163, 164, 165, 167, 168, 169, 170, 171, 172, 180, 181, 182, 184, 186, 189, 190, 192, 193, 194, 195, 196, 197, 198, 199, 200, 202, 203, 205, 212, 215, 216, 218, 219, 220, 221, 222, 225, 226, 246, 247, 248, 249, 250, 251, 252, 253, 256, 257, 271, 272, 273, 274, 275, 276, 277, 278, 288, 290, 291, 292, 293, 294, 310, 311, 313, 314, 315, 316, 319, 320, 321, 322, 333, 334, 348, 349, 350, 351, 353, 354, 356, 366, 368, 369, 380], "summary": {"covered_lines": 141, "num_statements": 176, "percent_covered": 80.11363636363636, "percent_covered_display": "80", "missing_lines": 35, "excluded_lines": 0}, "missing_lines": [51, 67, 69, 70, 71, 72, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 88, 91, 92, 93, 119, 123, 125, 132, 173, 174, 175, 176, 183, 317, 335, 346, 352], "excluded_lines": []}}}, "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, 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": 54, "num_statements": 62, "percent_covered": 87.09677419354838, "percent_covered_display": "87", "missing_lines": 8, "excluded_lines": 15}, "missing_lines": [16, 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, 18], "summary": {"covered_lines": 4, "num_statements": 5, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [16], "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, 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": 54, "num_statements": 62, "percent_covered": 87.09677419354838, "percent_covered_display": "87", "missing_lines": 8, "excluded_lines": 15}, "missing_lines": [16, 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, 45, 47, 50, 51, 63, 64, 65, 66, 69, 70, 71, 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": 136, "num_statements": 156, "percent_covered": 87.17948717948718, "percent_covered_display": "87", "missing_lines": 20, "excluded_lines": 0}, "missing_lines": [44, 46, 67, 68, 72, 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, 45, 47], "summary": {"covered_lines": 9, "num_statements": 11, "percent_covered": 81.81818181818181, "percent_covered_display": "82", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [44, 46], "excluded_lines": []}, "entry_search": {"executed_lines": [63, 64, 65, 66, 69, 70, 71, 73, 75], "summary": {"covered_lines": 9, "num_statements": 13, "percent_covered": 69.23076923076923, "percent_covered_display": "69", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [67, 68, 72, 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, 45, 47, 50, 51, 63, 64, 65, 66, 69, 70, 71, 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": 136, "num_statements": 156, "percent_covered": 87.17948717948718, "percent_covered_display": "87", "missing_lines": 20, "excluded_lines": 0}, "missing_lines": [44, 46, 67, 68, 72, 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, 320, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 355, 362, 363, 365, 375, 376, 377, 386, 387, 389, 396, 397, 403, 404, 406, 415, 416, 424, 425, 427, 434, 435, 441, 442, 444, 452, 453, 460, 461, 463, 466, 467, 470, 471, 473, 480, 481, 487, 488, 490, 503, 504, 515, 517, 518, 519, 520, 522, 523, 524, 525, 527, 528, 529, 532, 534, 535, 536, 539, 540, 542, 543, 544, 546, 547, 548, 550, 551, 552, 588, 589, 590, 591, 592, 593, 594, 599, 600, 602, 604, 605, 606, 608, 609, 610, 612, 613, 614, 615, 616, 617, 618, 620, 621, 622, 624, 625, 626, 627, 628, 631, 632, 634, 635, 636, 638, 651, 652, 653, 654, 655, 656, 657, 658, 659, 661, 663, 664, 665, 667, 669, 672, 673, 677, 678, 680, 683, 684, 685, 687, 688, 689, 692, 693, 695, 696, 697, 699, 700, 701, 703, 704, 705, 707, 708, 709, 710, 714, 715, 716, 717], "summary": {"covered_lines": 320, "num_statements": 328, "percent_covered": 97.5609756097561, "percent_covered_display": "98", "missing_lines": 8, "excluded_lines": 0}, "missing_lines": [315, 316, 660, 662, 666, 668, 670, 681], "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.get_totp_secret": {"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": [315, 316], "excluded_lines": []}, "EntryService.add_entry": {"executed_lines": [336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 355, 362, 363], "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": [375, 376, 377, 386, 387], "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": [396, 397, 403, 404], "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": [415, 416, 424, 425], "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": [434, 435, 441, 442], "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": [452, 453, 460, 461], "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": [466, 467, 470, 471], "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": [480, 481, 487, 488], "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": [503, 504, 515], "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": [518, 519, 520], "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": [523, 524, 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.export_totp_entries": {"executed_lines": [528, 529, 532], "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": [535, 536], "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": [543, 544], "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": [547, 548], "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": [551, 552, 588, 589, 590, 591, 592, 593, 594, 599, 600, 602], "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": [605, 606], "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": [609, 610], "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": [613, 614, 615, 616, 617, 618], "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": [621, 622], "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": [625, 626, 627, 628], "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": [635, 636], "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": [651, 652, 653, 654, 655, 656, 657, 658, 659, 661, 663, 664, 665, 667, 669, 672, 673, 677, 678, 680], "summary": {"covered_lines": 20, "num_statements": 26, "percent_covered": 76.92307692307692, "percent_covered_display": "77", "missing_lines": 6, "excluded_lines": 0}, "missing_lines": [660, 662, 666, 668, 670, 681], "excluded_lines": []}, "UtilityService.verify_checksum": {"executed_lines": [684, 685], "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": [688, 689], "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": [696, 697], "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": [700, 701], "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": [704, 705], "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": [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": []}, "NostrService.remove_relay": {"executed_lines": [715, 716, 717], "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, 320, 365, 389, 406, 427, 444, 463, 473, 490, 517, 522, 527, 534, 539, 540, 542, 546, 550, 604, 608, 612, 620, 624, 631, 632, 634, 638, 683, 687, 692, 693, 695, 699, 703, 707, 714], "summary": {"covered_lines": 117, "num_statements": 117, "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, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 355, 362, 363, 375, 376, 377, 386, 387, 396, 397, 403, 404, 415, 416, 424, 425, 434, 435, 441, 442, 452, 453, 460, 461, 466, 467, 470, 471, 480, 481, 487, 488, 503, 504, 515, 518, 519, 520, 523, 524, 525, 528, 529, 532, 535, 536], "summary": {"covered_lines": 81, "num_statements": 83, "percent_covered": 97.59036144578313, "percent_covered_display": "98", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [315, 316], "excluded_lines": []}, "ConfigService": {"executed_lines": [543, 544, 547, 548, 551, 552, 588, 589, 590, 591, 592, 593, 594, 599, 600, 602, 605, 606, 609, 610, 613, 614, 615, 616, 617, 618, 621, 622, 625, 626, 627, 628], "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": [635, 636, 651, 652, 653, 654, 655, 656, 657, 658, 659, 661, 663, 664, 665, 667, 669, 672, 673, 677, 678, 680, 684, 685, 688, 689], "summary": {"covered_lines": 26, "num_statements": 32, "percent_covered": 81.25, "percent_covered_display": "81", "missing_lines": 6, "excluded_lines": 0}, "missing_lines": [660, 662, 666, 668, 670, 681], "excluded_lines": []}, "NostrService": {"executed_lines": [696, 697, 700, 701, 704, 705, 708, 709, 710, 715, 716, 717], "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, 320, 365, 389, 406, 427, 444, 463, 473, 490, 517, 522, 527, 534, 539, 540, 542, 546, 550, 604, 608, 612, 620, 624, 631, 632, 634, 638, 683, 687, 692, 693, 695, 699, 703, 707, 714], "summary": {"covered_lines": 117, "num_statements": 117, "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, 65, 66, 72, 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": 85, "num_statements": 116, "percent_covered": 73.27586206896552, "percent_covered_display": "73", "missing_lines": 31, "excluded_lines": 2}, "missing_lines": [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, 65, 66, 72, 74, 75, 76, 77, 78, 80, 81, 82, 84, 85, 86, 87, 89, 90], "summary": {"covered_lines": 20, "num_statements": 23, "percent_covered": 86.95652173913044, "percent_covered_display": "87", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [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, 65, 66, 72, 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": 66, "num_statements": 97, "percent_covered": 68.04123711340206, "percent_covered_display": "68", "missing_lines": 31, "excluded_lines": 2}, "missing_lines": [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, 28, 29, 31, 32, 33, 34, 36, 45, 46, 47, 73, 74, 75, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 104, 105, 106, 107, 108, 109, 117, 122, 124, 125, 126, 131, 133, 134, 135, 136, 137, 139, 141, 142, 143, 144, 146, 148, 149, 150, 152, 154, 156, 157, 158, 161, 163, 164, 165, 167, 169, 171, 172, 173, 175, 180, 182, 184, 185, 186, 188, 190, 191, 193, 201, 203, 204, 206, 214, 216, 217, 219, 221, 222, 223, 225, 227, 228, 229, 231, 233, 234, 235, 237, 239, 240, 241, 243, 245, 246, 248, 250, 251, 253, 255, 257, 258, 259, 261, 263, 264, 266, 268, 270, 271, 272, 274, 276, 277, 280, 282, 284, 285, 296, 301, 306, 311, 316, 318, 319, 320, 322, 324, 325, 326, 328, 330, 331, 332, 334, 336, 337, 338, 340, 342, 343, 344, 346, 348, 349, 351, 353, 355, 356, 357, 359, 361, 362, 364, 366, 368, 369, 370, 372, 374, 375, 377, 382, 383, 384], "summary": {"covered_lines": 195, "num_statements": 243, "percent_covered": 80.24691358024691, "percent_covered_display": "80", "missing_lines": 48, "excluded_lines": 2}, "missing_lines": [76, 110, 111, 112, 113, 114, 116, 118, 119, 120, 127, 128, 129, 151, 159, 170, 177, 178, 183, 195, 196, 197, 198, 199, 208, 209, 210, 211, 212, 256, 269, 297, 298, 299, 302, 303, 304, 307, 308, 309, 312, 313, 314, 354, 367, 378, 379, 380], "excluded_lines": [18, 19], "functions": {"ConfigManager.__init__": {"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": []}, "ConfigManager.load_config": {"executed_lines": [45, 46, 47, 73, 74, 75, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 104, 105, 106, 107, 108, 109, 117], "summary": {"covered_lines": 37, "num_statements": 47, "percent_covered": 78.72340425531915, "percent_covered_display": "79", "missing_lines": 10, "excluded_lines": 0}, "missing_lines": [76, 110, 111, 112, 113, 114, 116, 118, 119, 120], "excluded_lines": []}, "ConfigManager.save_config": {"executed_lines": [124, 125, 126], "summary": {"covered_lines": 3, "num_statements": 6, "percent_covered": 50.0, "percent_covered_display": "50", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [127, 128, 129], "excluded_lines": []}, "ConfigManager.set_relays": {"executed_lines": [133, 134, 135, 136, 137], "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": [141, 142, 143, 144], "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": [148, 149, 150, 152], "summary": {"covered_lines": 4, "num_statements": 5, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [151], "excluded_lines": []}, "ConfigManager.change_pin": {"executed_lines": [156, 157, 158], "summary": {"covered_lines": 3, "num_statements": 4, "percent_covered": 75.0, "percent_covered_display": "75", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [159], "excluded_lines": []}, "ConfigManager.set_password_hash": {"executed_lines": [163, 164, 165], "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": [169, 171, 172, 173], "summary": {"covered_lines": 4, "num_statements": 5, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [170], "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": [177, 178], "excluded_lines": []}, "ConfigManager.set_kdf_iterations": {"executed_lines": [182, 184, 185, 186], "summary": {"covered_lines": 4, "num_statements": 5, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [183], "excluded_lines": []}, "ConfigManager.get_kdf_iterations": {"executed_lines": [190, 191], "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": [195, 196, 197, 198, 199], "excluded_lines": []}, "ConfigManager.get_kdf_mode": {"executed_lines": [203, 204], "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": [208, 209, 210, 211, 212], "excluded_lines": []}, "ConfigManager.get_argon2_time_cost": {"executed_lines": [216, 217], "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_additional_backup_path": {"executed_lines": [221, 222, 223], "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": [227, 228, 229], "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": [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": []}, "ConfigManager.set_offline_mode": {"executed_lines": [239, 240, 241], "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": [245, 246], "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": [250, 251], "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": [255, 257, 258, 259], "summary": {"covered_lines": 4, "num_statements": 5, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [256], "excluded_lines": []}, "ConfigManager.get_clipboard_clear_delay": {"executed_lines": [263, 264], "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": [268, 270, 271, 272], "summary": {"covered_lines": 4, "num_statements": 5, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [269], "excluded_lines": []}, "ConfigManager.get_backup_interval": {"executed_lines": [276, 277], "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": [282, 284, 285], "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": [297, 298, 299], "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": [302, 303, 304], "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": [307, 308, 309], "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": [312, 313, 314], "excluded_lines": []}, "ConfigManager.set_include_special_chars": {"executed_lines": [318, 319, 320], "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": [324, 325, 326], "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": [330, 331, 332], "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": [336, 337, 338], "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": [342, 343, 344], "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": [348, 349], "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": [353, 355, 356, 357], "summary": {"covered_lines": 4, "num_statements": 5, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [354], "excluded_lines": []}, "ConfigManager.get_nostr_max_retries": {"executed_lines": [361, 362], "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": [366, 368, 369, 370], "summary": {"covered_lines": 4, "num_statements": 5, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [367], "excluded_lines": []}, "ConfigManager.get_nostr_retry_delay": {"executed_lines": [374, 375], "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": [378, 379, 380], "excluded_lines": []}, "ConfigManager.get_verbose_timing": {"executed_lines": [383, 384], "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, 28, 29, 31, 36, 122, 131, 139, 146, 154, 161, 167, 175, 180, 188, 193, 201, 206, 214, 219, 225, 231, 237, 243, 248, 253, 261, 266, 274, 280, 296, 301, 306, 311, 316, 322, 328, 334, 340, 346, 351, 359, 364, 372, 377, 382], "summary": {"covered_lines": 57, "num_statements": 57, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2}, "missing_lines": [], "excluded_lines": [18, 19]}}, "classes": {"ConfigManager": {"executed_lines": [32, 33, 34, 45, 46, 47, 73, 74, 75, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 104, 105, 106, 107, 108, 109, 117, 124, 125, 126, 133, 134, 135, 136, 137, 141, 142, 143, 144, 148, 149, 150, 152, 156, 157, 158, 163, 164, 165, 169, 171, 172, 173, 182, 184, 185, 186, 190, 191, 203, 204, 216, 217, 221, 222, 223, 227, 228, 229, 233, 234, 235, 239, 240, 241, 245, 246, 250, 251, 255, 257, 258, 259, 263, 264, 268, 270, 271, 272, 276, 277, 282, 284, 285, 318, 319, 320, 324, 325, 326, 330, 331, 332, 336, 337, 338, 342, 343, 344, 348, 349, 353, 355, 356, 357, 361, 362, 366, 368, 369, 370, 374, 375, 383, 384], "summary": {"covered_lines": 138, "num_statements": 186, "percent_covered": 74.19354838709677, "percent_covered_display": "74", "missing_lines": 48, "excluded_lines": 0}, "missing_lines": [76, 110, 111, 112, 113, 114, 116, 118, 119, 120, 127, 128, 129, 151, 159, 170, 177, 178, 183, 195, 196, 197, 198, 199, 208, 209, 210, 211, 212, 256, 269, 297, 298, 299, 302, 303, 304, 307, 308, 309, 312, 313, 314, 354, 367, 378, 379, 380], "excluded_lines": []}, "": {"executed_lines": [1, 3, 5, 6, 7, 9, 11, 13, 14, 16, 18, 21, 24, 25, 27, 28, 29, 31, 36, 122, 131, 139, 146, 154, 161, 167, 175, 180, 188, 193, 201, 206, 214, 219, 225, 231, 237, 243, 248, 253, 261, 266, 274, 280, 296, 301, 306, 311, 316, 322, 328, 334, 340, 346, 351, 359, 364, 372, 377, 382], "summary": {"covered_lines": 57, "num_statements": 57, "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, 23, 24, 25, 26, 27, 28, 29, 30, 31, 34, 37, 39, 40, 41, 44, 45, 47, 48, 51, 52, 55, 56, 61, 70, 71, 73, 74, 78, 79, 81, 82, 84, 93, 94, 96, 101, 102, 103, 104, 109, 123, 125, 127, 128, 129, 130, 131, 136, 137, 138, 139, 144, 145, 146, 147, 148, 149, 150, 153, 154, 155, 158, 159, 160, 163, 173, 174, 175, 176, 177, 180, 184, 185, 190, 191, 192, 198, 203, 204, 205, 206, 207, 210, 211, 212, 213, 214, 215, 217, 220, 226, 229, 230, 231, 239, 258, 259, 260, 261, 263, 267, 268, 269, 271, 273, 274, 275, 277, 278, 281, 283, 284, 285, 287, 289, 290, 291, 292, 295, 303, 304, 305, 308, 309, 310, 311, 312, 313, 314, 317, 322, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 339, 340, 341, 342, 343, 344, 345, 347, 348, 349, 350, 351, 352, 353, 355, 362, 363, 364, 365, 368, 369, 371, 378, 379, 380, 381, 382, 383, 384, 389, 390, 391, 393, 394, 397, 399, 400, 403, 404, 409, 410, 411, 412, 413, 415, 416, 417, 418, 422, 428, 433, 434, 435, 436, 437, 438, 439, 440, 442, 462, 463, 465, 466, 467, 469, 470, 471, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 488, 489, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 504, 507, 508, 509, 510, 513, 519, 520, 552, 554, 555, 556, 557, 560, 561, 562, 563, 564, 567, 568, 571, 572, 573, 574, 581, 582, 583, 584, 585, 586, 587, 595, 601, 602, 603, 604, 605, 606, 611], "summary": {"covered_lines": 280, "num_statements": 337, "percent_covered": 83.0860534124629, "percent_covered_display": "83", "missing_lines": 57, "excluded_lines": 23}, "missing_lines": [75, 85, 86, 90, 105, 106, 107, 132, 133, 164, 165, 168, 232, 233, 293, 307, 367, 387, 406, 419, 420, 421, 429, 430, 431, 473, 521, 522, 523, 527, 533, 534, 535, 558, 575, 576, 588, 589, 593, 607, 608, 609, 612, 613, 614, 615, 617, 618, 619, 620, 622, 623, 624, 625, 626, 627, 628], "excluded_lines": [11, 12, 13, 15, 193, 194, 221, 222, 230, 231, 313, 314, 422, 423, 424, 425, 536, 537, 538, 542, 548, 549, 550], "functions": {"_derive_legacy_key_from_password": {"executed_lines": [39, 40, 41], "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": [48, 51, 52], "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": [70, 71, 73, 74, 78, 79, 81, 82, 84, 93, 94], "summary": {"covered_lines": 11, "num_statements": 15, "percent_covered": 73.33333333333333, "percent_covered_display": "73", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [75, 85, 86, 90], "excluded_lines": []}, "EncryptionManager.encrypt_data": {"executed_lines": [101, 102, 103, 104], "summary": {"covered_lines": 4, "num_statements": 7, "percent_covered": 57.142857142857146, "percent_covered_display": "57", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [105, 106, 107], "excluded_lines": []}, "EncryptionManager.decrypt_data": {"executed_lines": [123, 125, 127, 128, 129, 130, 131, 136, 137, 138, 139, 144, 145, 146, 147, 148, 149, 150, 153, 154, 155, 158, 159, 160, 163, 173, 174, 175, 176, 177, 180, 184, 185, 190, 191, 192], "summary": {"covered_lines": 36, "num_statements": 41, "percent_covered": 87.8048780487805, "percent_covered_display": "88", "missing_lines": 5, "excluded_lines": 2}, "missing_lines": [132, 133, 164, 165, 168], "excluded_lines": [193, 194]}, "EncryptionManager.decrypt_legacy": {"executed_lines": [203, 204, 205, 206, 207, 210, 211, 212, 213, 214, 215, 217, 220, 226, 229, 230, 231], "summary": {"covered_lines": 15, "num_statements": 17, "percent_covered": 88.23529411764706, "percent_covered_display": "88", "missing_lines": 2, "excluded_lines": 4}, "missing_lines": [232, 233], "excluded_lines": [221, 222, 230, 231]}, "EncryptionManager.resolve_relative_path": {"executed_lines": [258, 259, 260, 261], "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": [267, 268, 269], "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": [273, 274, 275, 277, 278, 281, 283, 284, 285, 287], "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": [290, 291, 292], "summary": {"covered_lines": 3, "num_statements": 4, "percent_covered": 75.0, "percent_covered_display": "75", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [293], "excluded_lines": []}, "EncryptionManager._deserialize": {"executed_lines": [303, 304, 305, 308, 309, 310, 311, 312, 313, 314, 317], "summary": {"covered_lines": 9, "num_statements": 10, "percent_covered": 90.0, "percent_covered_display": "90", "missing_lines": 1, "excluded_lines": 2}, "missing_lines": [307], "excluded_lines": [313, 314]}, "EncryptionManager.encrypt_and_save_file": {"executed_lines": [325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337], "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": [340, 341, 342, 343, 344, 345], "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": [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.save_json_data": {"executed_lines": [362, 363, 364, 365, 368, 369], "summary": {"covered_lines": 6, "num_statements": 7, "percent_covered": 85.71428571428571, "percent_covered_display": "86", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [367], "excluded_lines": []}, "EncryptionManager.load_json_data": {"executed_lines": [378, 379, 380, 381, 382, 383, 384, 389, 390, 391, 393, 394, 397, 399, 400, 403, 404, 409, 410, 411, 412, 413, 415, 416, 417, 418, 422, 428], "summary": {"covered_lines": 27, "num_statements": 35, "percent_covered": 77.14285714285714, "percent_covered_display": "77", "missing_lines": 8, "excluded_lines": 4}, "missing_lines": [387, 406, 419, 420, 421, 429, 430, 431], "excluded_lines": [422, 423, 424, 425]}, "EncryptionManager.get_encrypted_index": {"executed_lines": [434, 435, 436, 437, 438, 439, 440], "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": [462, 463, 465, 466, 467, 469, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 504, 507, 508, 509, 510, 513, 519, 520], "summary": {"covered_lines": 25, "num_statements": 32, "percent_covered": 78.125, "percent_covered_display": "78", "missing_lines": 7, "excluded_lines": 7}, "missing_lines": [521, 522, 523, 527, 533, 534, 535], "excluded_lines": [536, 537, 538, 542, 548, 549, 550]}, "EncryptionManager.decrypt_and_save_index_from_nostr._process": {"executed_lines": [470, 471, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 488, 489], "summary": {"covered_lines": 16, "num_statements": 17, "percent_covered": 94.11764705882354, "percent_covered_display": "94", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [473], "excluded_lines": []}, "EncryptionManager.update_checksum": {"executed_lines": [554, 555, 556, 557, 560, 561, 562, 563, 564, 567, 568, 571, 572, 573, 574, 581, 582, 583, 584, 585, 586, 587], "summary": {"covered_lines": 22, "num_statements": 28, "percent_covered": 78.57142857142857, "percent_covered_display": "79", "missing_lines": 6, "excluded_lines": 0}, "missing_lines": [558, 575, 576, 588, 589, 593], "excluded_lines": []}, "EncryptionManager.validate_seed": {"executed_lines": [601, 602, 603, 604, 605, 606], "summary": {"covered_lines": 6, "num_statements": 9, "percent_covered": 66.66666666666667, "percent_covered_display": "67", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [607, 608, 609], "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": [612, 613, 614, 615, 617, 618, 619, 620, 622, 623, 624, 625, 626, 627, 628], "excluded_lines": []}, "": {"executed_lines": [3, 4, 6, 7, 9, 10, 16, 17, 18, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 34, 37, 44, 45, 47, 55, 56, 61, 96, 109, 198, 239, 263, 271, 289, 295, 322, 339, 347, 355, 371, 433, 442, 552, 595, 611], "summary": {"covered_lines": 45, "num_statements": 45, "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": [48, 51, 52], "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": [70, 71, 73, 74, 78, 79, 81, 82, 84, 93, 94, 101, 102, 103, 104, 123, 125, 127, 128, 129, 130, 131, 136, 137, 138, 139, 144, 145, 146, 147, 148, 149, 150, 153, 154, 155, 158, 159, 160, 163, 173, 174, 175, 176, 177, 180, 184, 185, 190, 191, 192, 203, 204, 205, 206, 207, 210, 211, 212, 213, 214, 215, 217, 220, 226, 229, 230, 231, 258, 259, 260, 261, 267, 268, 269, 273, 274, 275, 277, 278, 281, 283, 284, 285, 287, 290, 291, 292, 303, 304, 305, 308, 309, 310, 311, 312, 313, 314, 317, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 340, 341, 342, 343, 344, 345, 348, 349, 350, 351, 352, 353, 362, 363, 364, 365, 368, 369, 378, 379, 380, 381, 382, 383, 384, 389, 390, 391, 393, 394, 397, 399, 400, 403, 404, 409, 410, 411, 412, 413, 415, 416, 417, 418, 422, 428, 434, 435, 436, 437, 438, 439, 440, 462, 463, 465, 466, 467, 469, 470, 471, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 488, 489, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 504, 507, 508, 509, 510, 513, 519, 520, 554, 555, 556, 557, 560, 561, 562, 563, 564, 567, 568, 571, 572, 573, 574, 581, 582, 583, 584, 585, 586, 587, 601, 602, 603, 604, 605, 606], "summary": {"covered_lines": 229, "num_statements": 286, "percent_covered": 80.06993006993007, "percent_covered_display": "80", "missing_lines": 57, "excluded_lines": 19}, "missing_lines": [75, 85, 86, 90, 105, 106, 107, 132, 133, 164, 165, 168, 232, 233, 293, 307, 367, 387, 406, 419, 420, 421, 429, 430, 431, 473, 521, 522, 523, 527, 533, 534, 535, 558, 575, 576, 588, 589, 593, 607, 608, 609, 612, 613, 614, 615, 617, 618, 619, 620, 622, 623, 624, 625, 626, 627, 628], "excluded_lines": [193, 194, 221, 222, 230, 231, 313, 314, 422, 423, 424, 425, 536, 537, 538, 542, 548, 549, 550]}, "": {"executed_lines": [3, 4, 6, 7, 9, 10, 16, 17, 18, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 34, 37, 39, 40, 41, 44, 45, 47, 55, 56, 61, 96, 109, 198, 239, 263, 271, 289, 295, 322, 339, 347, 355, 371, 433, 442, 552, 595, 611], "summary": {"covered_lines": 48, "num_statements": 48, "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, 333, 335, 339, 340, 345, 348, 349, 350, 351, 352, 353, 355, 356, 357, 358, 359, 360, 362, 363, 364, 365, 366, 367, 368, 369, 374, 375, 377, 378, 379, 380, 381, 384, 394, 395, 396, 397, 405, 407, 409, 412, 414, 423, 424, 425, 426, 436, 439, 445, 455, 456, 460, 461, 465, 467, 469, 475, 476, 477, 478, 479, 481, 483, 484, 485, 486, 487, 488, 489, 490, 498, 499, 503, 504, 506, 508, 510, 511, 512, 517, 519, 520, 534, 535, 537, 538, 539, 540, 544, 546, 547, 548, 549, 550, 551, 553, 555, 556, 557, 558, 559, 560, 562, 564, 565, 566, 570, 574, 575, 577, 579, 581, 582, 583, 584, 585, 586, 587, 589, 590, 591, 592, 593, 595, 596, 597, 598, 599, 601, 602, 603, 604, 605, 606, 607, 609, 611, 612, 613, 614, 615, 617, 630, 631, 633, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 648, 653, 654, 655, 658, 659, 660, 661, 663, 667, 668, 669, 677, 681, 682, 684, 687, 689, 693, 694, 695, 696, 698, 699, 701, 702, 703, 708, 709, 711, 712, 713, 714, 720, 722, 723, 725, 731, 732, 737, 742, 743, 744, 761, 766, 767, 774, 775, 776, 777, 778, 779, 784, 788, 789, 797, 798, 799, 800, 801, 805, 806, 810, 811, 814, 815, 816, 818, 822, 823, 824, 831, 832, 836, 838, 839, 840, 841, 843, 846, 847, 848, 851, 862, 867, 869, 870, 871, 877, 882, 884, 885, 889, 890, 891, 896, 898, 899, 902, 903, 906, 910, 916, 919, 925, 926, 933, 937, 938, 939, 945, 1001, 1010, 1011, 1012, 1013, 1014, 1015, 1017, 1022, 1027, 1028, 1030, 1031, 1032, 1040, 1041, 1042, 1043, 1049, 1050, 1051, 1052, 1057, 1058, 1059, 1060, 1062, 1063, 1064, 1065, 1066, 1067, 1069, 1070, 1071, 1072, 1073, 1075, 1080, 1081, 1086, 1087, 1089, 1090, 1091, 1092, 1094, 1095, 1097, 1099, 1104, 1107, 1110, 1111, 1116, 1121, 1122, 1125, 1126, 1130, 1131, 1132, 1133, 1139, 1140, 1141, 1142, 1144, 1145, 1147, 1150, 1151, 1152, 1153, 1155, 1159, 1160, 1161, 1163, 1164, 1165, 1166, 1167, 1169, 1170, 1171, 1172, 1173, 1175, 1176, 1178, 1180, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1194, 1195, 1196, 1197, 1198, 1200, 1201, 1277, 1278, 1283, 1285, 1295, 1296, 1297, 1299, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1319, 1322, 1342, 1343, 1344, 1345, 1346, 1348, 1350, 1354, 1355, 1356, 1361, 1367, 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1383, 1384, 1385, 1396, 1399, 1405, 1406, 1407, 1408, 1409, 1410, 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1420, 1421, 1422, 1424, 1429, 1430, 1432, 1433, 1435, 1436, 1438, 1439, 1440, 1441, 1450, 1451, 1458, 1459, 1460, 1461, 1463, 1465, 1466, 1467, 1468, 1473, 1474, 1486, 1495, 1498, 1505, 1506, 1507, 1508, 1509, 1514, 1515, 1516, 1519, 1520, 1521, 1522, 1524, 1525, 1527, 1532, 1542, 1543, 1544, 1545, 1546, 1547, 1552, 1559, 1560, 1561, 1562, 1563, 1573, 1574, 1584, 1585, 1586, 1590, 1594, 1599, 1601, 1602, 1604, 1605, 1606, 1607, 1609, 1610, 1612, 1616, 1621, 1622, 1624, 1630, 1632, 1633, 1635, 1636, 1642, 1646, 1647, 1648, 1649, 1650, 1651, 1653, 1663, 1664, 1666, 1672, 1677, 1679, 1683, 1686, 1690, 1691, 1696, 1697, 1698, 1704, 1705, 1708, 1709, 1710, 1712, 1717, 1718, 1726, 1727, 1728, 1729, 1730, 1731, 1732, 1733, 1734, 1742, 1743, 1746, 1747, 1748, 1749, 1750, 1751, 1762, 1765, 1767, 1768, 1769, 1776, 1777, 1778, 1779, 1780, 1781, 1784, 1785, 1786, 1807, 1809, 1810, 1811, 1812, 1814, 1816, 1818, 1819, 1820, 1821, 1822, 1823, 1835, 1836, 1837, 1838, 1839, 1840, 1841, 1844, 1845, 1846, 1847, 1848, 1849, 1850, 1851, 1852, 1853, 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1871, 1872, 1873, 1874, 1906, 1907, 1908, 1924, 1928, 1929, 1931, 1933, 1934, 1935, 1936, 1937, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1951, 1952, 1953, 1954, 1957, 1958, 1960, 1962, 1964, 1965, 1967, 1970, 1972, 1979, 1980, 1981, 1984, 1985, 1986, 1991, 1992, 1993, 1994, 1996, 1997, 1999, 2001, 2002, 2004, 2005, 2006, 2007, 2008, 2014, 2015, 2016, 2017, 2020, 2021, 2022, 2023, 2025, 2027, 2034, 2037, 2038, 2041, 2042, 2043, 2044, 2045, 2046, 2047, 2048, 2049, 2050, 2051, 2057, 2058, 2059, 2060, 2061, 2062, 2063, 2064, 2065, 2066, 2074, 2075, 2076, 2077, 2079, 2080, 2081, 2082, 2084, 2088, 2090, 2091, 2093, 2101, 2112, 2114, 2117, 2118, 2119, 2120, 2125, 2126, 2127, 2128, 2129, 2130, 2131, 2132, 2133, 2134, 2136, 2138, 2140, 2141, 2143, 2144, 2145, 2146, 2148, 2149, 2152, 2153, 2154, 2155, 2156, 2157, 2164, 2165, 2167, 2168, 2169, 2171, 2172, 2174, 2175, 2176, 2177, 2184, 2185, 2186, 2187, 2188, 2189, 2190, 2193, 2194, 2195, 2200, 2201, 2204, 2209, 2210, 2211, 2216, 2226, 2230, 2231, 2232, 2233, 2234, 2239, 2240, 2241, 2242, 2243, 2244, 2250, 2251, 2313, 2314, 2371, 2372, 2441, 2442, 2509, 2510, 2569, 2570, 2651, 2652, 2714, 2716, 2717, 2718, 2721, 2722, 2730, 2732, 2734, 2735, 2736, 2737, 2738, 2739, 2741, 2758, 2760, 2761, 2762, 2763, 2765, 2769, 2770, 2771, 2773, 2774, 2775, 2777, 2778, 2782, 2783, 2784, 2786, 2788, 2790, 2791, 2792, 2799, 2800, 2801, 2802, 2803, 2805, 2806, 2807, 2808, 2809, 2810, 2811, 2816, 2818, 2821, 2822, 2823, 2824, 2825, 2826, 2827, 2828, 2829, 2830, 2831, 2832, 2833, 2839, 2853, 2854, 2855, 2861, 2864, 2869, 2870, 2871, 2872, 2873, 2874, 2875, 2876, 2879, 2881, 2883, 2884, 2885, 2886, 2893, 2894, 2895, 2900, 2903, 2904, 2905, 2906, 2907, 2908, 2909, 2915, 2921, 2929, 2934, 2939, 2940, 2941, 2942, 2943, 2944, 2957, 2959, 2962, 2964, 2965, 2980, 2981, 2982, 2983, 2990, 2991, 2992, 2993, 2998, 2999, 3001, 3005, 3006, 3007, 3008, 3009, 3010, 3013, 3014, 3015, 3022, 3033, 3035, 3037, 3038, 3039, 3040, 3041, 3042, 3043, 3044, 3045, 3046, 3047, 3048, 3057, 3058, 3059, 3060, 3061, 3062, 3064, 3065, 3067, 3068, 3069, 3070, 3071, 3072, 3073, 3074, 3075, 3076, 3080, 3081, 3089, 3090, 3091, 3092, 3096, 3098, 3099, 3100, 3101, 3104, 3105, 3106, 3107, 3110, 3111, 3112, 3113, 3115, 3116, 3118, 3119, 3120, 3129, 3130, 3134, 3136, 3137, 3138, 3139, 3142, 3143, 3144, 3145, 3146, 3147, 3148, 3149, 3150, 3152, 3153, 3155, 3164, 3165, 3166, 3167, 3169, 3170, 3171, 3172, 3173, 3179, 3183, 3185, 3186, 3187, 3188, 3191, 3192, 3193, 3194, 3197, 3198, 3199, 3200, 3202, 3203, 3205, 3206, 3215, 3219, 3221, 3222, 3223, 3224, 3225, 3228, 3229, 3230, 3231, 3240, 3241, 3243, 3244, 3249, 3251, 3252, 3253, 3254, 3255, 3256, 3257, 3259, 3260, 3262, 3267, 3276, 3278, 3279, 3306, 3308, 3309, 3310, 3311, 3312, 3313, 3314, 3316, 3317, 3318, 3319, 3321, 3326, 3333, 3334, 3337, 3346, 3347, 3348, 3352, 3355, 3356, 3357, 3358, 3359, 3360, 3362, 3368, 3370, 3372, 3373, 3378, 3380, 3381, 3382, 3383, 3390, 3396, 3397, 3398, 3399, 3405, 3406, 3407, 3408, 3409, 3410, 3411, 3412, 3413, 3414, 3415, 3416, 3417, 3418, 3419, 3421, 3422, 3423, 3424, 3425, 3426, 3437, 3440, 3442, 3443, 3445, 3446, 3447, 3454, 3457, 3461, 3463, 3464, 3468, 3469, 3470, 3471, 3472, 3473, 3474, 3475, 3477, 3478, 3483, 3484, 3485, 3492, 3495, 3498, 3501, 3502, 3505, 3507, 3616, 3680, 3789, 3790, 3791, 3792, 3793, 3795, 3801, 3802, 3803, 3804, 3811, 3818, 3824, 3830, 3837, 3838, 3850, 3857, 3858, 3859, 3871, 3874, 3880, 3892, 3893, 3895, 3898, 3899, 3900, 3909, 3915, 3916, 3918, 3919, 3920, 3927, 3928, 3929, 3930, 3931, 3933, 3934, 3939, 3940, 3941, 3948, 3949, 3950, 3951, 3953, 3954, 3956, 3959, 3961, 3967, 3968, 3969, 3970, 3971, 3973, 3975, 3976, 3979, 3980, 3981, 3982, 3983, 3986, 3992, 3993, 3995, 3996, 3998, 3999, 4000, 4001, 4002, 4003, 4009, 4010, 4012, 4013, 4015, 4016, 4017, 4018, 4021, 4022, 4023, 4024, 4025, 4026, 4027, 4028, 4030, 4031, 4033, 4034, 4035, 4036, 4039, 4040, 4041, 4042, 4045, 4046, 4047, 4048, 4053, 4054, 4056, 4057, 4059, 4060, 4061, 4062, 4065, 4066, 4068, 4069, 4071, 4072, 4073, 4074, 4075, 4076, 4077, 4079, 4080, 4082, 4083, 4084, 4085, 4086, 4087, 4088, 4089, 4092, 4093, 4094, 4095, 4096, 4098, 4099, 4101, 4102, 4104, 4105, 4106, 4107, 4108, 4109, 4110, 4111, 4112, 4113, 4114, 4115, 4117, 4123, 4125, 4126, 4127, 4129, 4131, 4132, 4135, 4138, 4140, 4146, 4149, 4150, 4153, 4154, 4155, 4166, 4167, 4169, 4170, 4173, 4176, 4177, 4178, 4179, 4180, 4185, 4186, 4188, 4190, 4193, 4196, 4198, 4199, 4200, 4201, 4202, 4203, 4204, 4205, 4206, 4207, 4208, 4209, 4210, 4217, 4218, 4219, 4220, 4223, 4224, 4225, 4230, 4231, 4232, 4239, 4240, 4241, 4242, 4243, 4244, 4245, 4246, 4247, 4248, 4249, 4250, 4251, 4252, 4253, 4255, 4256, 4263, 4264, 4265, 4267, 4268, 4272, 4273, 4274, 4281, 4282, 4283, 4284, 4285, 4289, 4290, 4292, 4293, 4294, 4296, 4302, 4307, 4308, 4336, 4342, 4343, 4344, 4345, 4346, 4356, 4377, 4381, 4382, 4383, 4384, 4385, 4387, 4388, 4389, 4390, 4391, 4392, 4394, 4398, 4399, 4401, 4402, 4403, 4404, 4405, 4406, 4407, 4412, 4413, 4418, 4419, 4420, 4422, 4425, 4427, 4431, 4432, 4433, 4438, 4442, 4443, 4444, 4453, 4454, 4466, 4467, 4468, 4475, 4481, 4482, 4483, 4489, 4492, 4493, 4494, 4497, 4504, 4505, 4506, 4507, 4514, 4520, 4521, 4524, 4525, 4531, 4534, 4535, 4536, 4541, 4542, 4544, 4545, 4553, 4554, 4560, 4569, 4570, 4571, 4572, 4602, 4603, 4605, 4606, 4607, 4608, 4615, 4616, 4618, 4619, 4620, 4621, 4622, 4623, 4624, 4625, 4630, 4631, 4641, 4645, 4648, 4650, 4652, 4663, 4665, 4666, 4667, 4673, 4674, 4686, 4687, 4688, 4695, 4696, 4700, 4706, 4710, 4715, 4718, 4719, 4722, 4723, 4724, 4731, 4732, 4736, 4739, 4740, 4743, 4744, 4746, 4747, 4751, 4754, 4760, 4761, 4762, 4765, 4770, 4780, 4781, 4782, 4783, 4795, 4796, 4797, 4800, 4815, 4826, 4827, 4828, 4829, 4830, 4832, 4837, 4838, 4839, 4840, 4850, 4873, 4875, 4876, 4877, 4881, 4882, 4885, 4887, 4888, 4890, 4892, 4895, 4896, 4897, 4898, 4901, 4902, 4903, 4905, 4909, 4910, 4920, 4936, 4937, 4938, 4947, 5019], "summary": {"covered_lines": 1782, "num_statements": 2845, "percent_covered": 62.63620386643234, "percent_covered_display": "63", "missing_lines": 1063, "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, 334, 343, 382, 408, 427, 501, 507, 513, 514, 515, 522, 523, 524, 525, 526, 529, 530, 531, 532, 541, 542, 567, 568, 580, 632, 634, 670, 671, 672, 675, 724, 728, 729, 734, 735, 736, 738, 739, 745, 753, 754, 756, 757, 758, 759, 781, 782, 785, 825, 834, 852, 858, 879, 880, 886, 887, 900, 901, 907, 908, 917, 927, 928, 930, 931, 934, 935, 947, 948, 949, 950, 951, 952, 954, 955, 956, 957, 959, 960, 961, 962, 967, 973, 975, 981, 982, 983, 984, 986, 987, 988, 989, 995, 996, 997, 998, 999, 1082, 1083, 1084, 1085, 1088, 1093, 1096, 1105, 1108, 1127, 1128, 1129, 1134, 1135, 1136, 1137, 1148, 1179, 1206, 1207, 1208, 1211, 1212, 1215, 1216, 1217, 1223, 1227, 1228, 1229, 1234, 1236, 1237, 1238, 1239, 1241, 1242, 1243, 1246, 1247, 1248, 1251, 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1262, 1265, 1266, 1267, 1268, 1270, 1271, 1272, 1273, 1274, 1275, 1298, 1300, 1315, 1316, 1320, 1351, 1352, 1353, 1357, 1358, 1359, 1365, 1386, 1392, 1400, 1403, 1442, 1443, 1444, 1446, 1447, 1448, 1469, 1470, 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1484, 1485, 1487, 1493, 1499, 1502, 1510, 1511, 1529, 1530, 1548, 1549, 1550, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1595, 1596, 1637, 1638, 1639, 1640, 1656, 1657, 1658, 1661, 1667, 1668, 1669, 1670, 1680, 1736, 1737, 1738, 1739, 1740, 1741, 1793, 1800, 1817, 1824, 1825, 1830, 1834, 1881, 1887, 1888, 1893, 1900, 1909, 1910, 1915, 1916, 1919, 1925, 1926, 1940, 1966, 1968, 1977, 2009, 2010, 2011, 2012, 2035, 2039, 2078, 2085, 2086, 2099, 2102, 2103, 2104, 2105, 2106, 2107, 2108, 2115, 2121, 2122, 2123, 2150, 2159, 2162, 2191, 2192, 2196, 2199, 2227, 2228, 2245, 2246, 2252, 2253, 2254, 2255, 2256, 2260, 2261, 2262, 2263, 2264, 2265, 2268, 2273, 2274, 2284, 2285, 2286, 2292, 2293, 2294, 2295, 2296, 2300, 2301, 2302, 2303, 2304, 2305, 2307, 2308, 2309, 2310, 2311, 2316, 2317, 2318, 2325, 2326, 2327, 2328, 2329, 2330, 2331, 2336, 2339, 2342, 2343, 2345, 2348, 2349, 2351, 2352, 2353, 2354, 2355, 2356, 2357, 2358, 2359, 2360, 2361, 2365, 2366, 2367, 2368, 2369, 2374, 2375, 2376, 2383, 2384, 2385, 2386, 2387, 2388, 2389, 2390, 2395, 2396, 2397, 2398, 2399, 2402, 2403, 2404, 2406, 2409, 2410, 2412, 2418, 2419, 2420, 2421, 2422, 2423, 2424, 2425, 2427, 2428, 2429, 2430, 2431, 2435, 2436, 2437, 2438, 2439, 2444, 2445, 2446, 2453, 2454, 2455, 2456, 2457, 2461, 2462, 2463, 2464, 2469, 2477, 2480, 2481, 2483, 2486, 2487, 2489, 2490, 2491, 2492, 2493, 2494, 2495, 2496, 2497, 2503, 2504, 2505, 2506, 2507, 2512, 2513, 2514, 2521, 2522, 2523, 2524, 2525, 2526, 2527, 2532, 2535, 2536, 2537, 2538, 2539, 2540, 2541, 2542, 2549, 2550, 2551, 2552, 2555, 2556, 2557, 2563, 2564, 2565, 2566, 2567, 2572, 2573, 2574, 2581, 2582, 2583, 2584, 2585, 2586, 2587, 2588, 2589, 2590, 2591, 2592, 2598, 2599, 2600, 2601, 2602, 2603, 2604, 2605, 2606, 2614, 2622, 2623, 2625, 2626, 2627, 2628, 2629, 2630, 2637, 2638, 2639, 2645, 2646, 2647, 2648, 2649, 2654, 2655, 2656, 2663, 2664, 2665, 2666, 2667, 2668, 2669, 2674, 2677, 2678, 2679, 2680, 2686, 2687, 2688, 2689, 2696, 2697, 2698, 2700, 2701, 2702, 2708, 2709, 2710, 2711, 2712, 2719, 2743, 2744, 2749, 2750, 2751, 2752, 2754, 2755, 2756, 2834, 2835, 2836, 2837, 2838, 2840, 2841, 2842, 2844, 2845, 2846, 2847, 2850, 2851, 2852, 2878, 2896, 2897, 2901, 2902, 2910, 2911, 2912, 2913, 2914, 2916, 2917, 2918, 2919, 2920, 2922, 2923, 2924, 2925, 2926, 2930, 2931, 2932, 2933, 2935, 2936, 2937, 2938, 2946, 2947, 2948, 2949, 2950, 2951, 2952, 2954, 2956, 2966, 2967, 2969, 2973, 2974, 2976, 2977, 2978, 3012, 3017, 3049, 3050, 3063, 3066, 3082, 3083, 3084, 3085, 3086, 3087, 3088, 3114, 3117, 3121, 3122, 3151, 3154, 3156, 3157, 3201, 3204, 3207, 3208, 3232, 3233, 3242, 3245, 3258, 3261, 3268, 3269, 3280, 3281, 3282, 3283, 3284, 3285, 3286, 3287, 3289, 3290, 3291, 3292, 3293, 3294, 3295, 3298, 3305, 3315, 3320, 3338, 3339, 3349, 3350, 3351, 3369, 3371, 3427, 3430, 3439, 3458, 3459, 3460, 3465, 3466, 3496, 3497, 3503, 3508, 3509, 3510, 3511, 3512, 3514, 3520, 3521, 3522, 3528, 3532, 3535, 3536, 3537, 3538, 3540, 3544, 3547, 3548, 3549, 3550, 3552, 3556, 3563, 3564, 3565, 3566, 3567, 3568, 3570, 3574, 3576, 3583, 3584, 3585, 3586, 3587, 3588, 3589, 3590, 3591, 3592, 3593, 3597, 3600, 3606, 3617, 3618, 3619, 3621, 3627, 3633, 3637, 3644, 3645, 3646, 3647, 3648, 3649, 3651, 3655, 3657, 3664, 3667, 3673, 3684, 3685, 3686, 3687, 3689, 3695, 3701, 3707, 3711, 3712, 3716, 3717, 3721, 3728, 3729, 3730, 3731, 3732, 3733, 3735, 3739, 3741, 3748, 3749, 3750, 3751, 3752, 3753, 3756, 3757, 3758, 3759, 3760, 3764, 3767, 3773, 3781, 3782, 3784, 3839, 3840, 3841, 3842, 3844, 3848, 3860, 3861, 3862, 3863, 3864, 3865, 3866, 3867, 3903, 3904, 3911, 3912, 3913, 3935, 3936, 3937, 3952, 3960, 3964, 3965, 3966, 3977, 3994, 3997, 4011, 4014, 4029, 4032, 4055, 4058, 4067, 4070, 4078, 4081, 4097, 4100, 4116, 4136, 4137, 4143, 4144, 4156, 4157, 4162, 4163, 4164, 4174, 4175, 4181, 4182, 4183, 4228, 4229, 4254, 4258, 4259, 4260, 4261, 4303, 4304, 4305, 4310, 4311, 4312, 4313, 4314, 4315, 4322, 4323, 4324, 4331, 4332, 4333, 4334, 4348, 4349, 4350, 4351, 4352, 4353, 4354, 4362, 4363, 4364, 4365, 4366, 4369, 4375, 4386, 4397, 4400, 4434, 4435, 4436, 4449, 4450, 4451, 4476, 4477, 4496, 4515, 4516, 4517, 4518, 4537, 4538, 4539, 4540, 4561, 4562, 4568, 4573, 4574, 4575, 4581, 4583, 4584, 4585, 4586, 4587, 4588, 4591, 4592, 4593, 4596, 4597, 4599, 4600, 4627, 4628, 4629, 4642, 4643, 4653, 4654, 4655, 4658, 4659, 4660, 4661, 4668, 4669, 4670, 4671, 4707, 4711, 4712, 4733, 4734, 4748, 4749, 4766, 4767, 4768, 4785, 4786, 4787, 4788, 4789, 4791, 4792, 4793, 4799, 4801, 4802, 4803, 4809, 4810, 4811, 4812, 4813, 4843, 4844, 4849, 4851, 4853, 4854, 4855, 4856, 4858, 4859, 4864, 4865, 4868, 4869, 4870, 4871, 4878, 4906, 4907, 4923, 4925, 4926, 4927, 4939, 4940, 4943, 4944, 4945, 4949, 4950, 4952, 4955, 4956, 4957, 4958, 4959, 4960, 4961, 4962, 4965, 4966, 4967, 4968, 4969, 4970, 4971, 4973, 4974, 4975, 4978, 4979, 4980, 4981, 4982, 4984, 4985, 4986, 4988, 4991, 4992, 4993, 4994, 4997, 5000, 5001, 5002, 5007, 5008, 5009, 5010, 5011, 5013, 5014, 5015, 5017, 5021, 5022, 5023, 5024, 5026, 5027, 5028, 5029, 5030, 5031, 5037, 5038, 5043, 5044, 5050, 5056, 5057, 5058, 5059], "excluded_lines": [2081, 2082, 2109, 2110, 2498, 2499, 2558, 2559, 2640, 2641, 2703, 2704, 3018, 3019, 3020, 3093, 3094, 3095, 3131, 3132, 3133, 3180, 3181, 3182, 3216, 3217, 3218, 3246, 3247, 3248, 4049, 4050], "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": [333, 335], "summary": {"covered_lines": 2, "num_statements": 3, "percent_covered": 66.66666666666667, "percent_covered_display": "67", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [334], "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._get_kdf_mode": {"executed_lines": [356, 357, 358, 359, 360], "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._get_kdf_iterations": {"executed_lines": [363, 364, 365, 366, 367, 368, 369, 374, 375], "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._get_argon2_time_cost": {"executed_lines": [378, 379, 380, 381], "summary": {"covered_lines": 4, "num_statements": 5, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [382], "excluded_lines": []}, "PasswordManager._derive_seed_key": {"executed_lines": [394, 395, 396, 397, 405, 407, 409, 412], "summary": {"covered_lines": 8, "num_statements": 9, "percent_covered": 88.88888888888889, "percent_covered_display": "89", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [408], "excluded_lines": []}, "PasswordManager._build_seed_kdf_config": {"executed_lines": [423, 424, 425, 426, 436, 439], "summary": {"covered_lines": 6, "num_statements": 7, "percent_covered": 85.71428571428571, "percent_covered_display": "86", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [427], "excluded_lines": []}, "PasswordManager._encrypt_parent_seed_compat": {"executed_lines": [455, 456, 460, 461, 465], "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.ensure_key_hierarchy": {"executed_lines": [469, 475, 476, 477, 478, 479], "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": [483, 484, 485, 486, 487, 488, 489, 490], "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": [501], "excluded_lines": []}, "PasswordManager.parent_seed": {"executed_lines": [512, 517], "summary": {"covered_lines": 2, "num_statements": 5, "percent_covered": 40.0, "percent_covered_display": "40", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [513, 514, 515], "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": [522, 523, 524, 525, 526, 529, 530, 531, 532], "excluded_lines": []}, "PasswordManager.header_fingerprint_args": {"executed_lines": [537, 538, 539, 540], "summary": {"covered_lines": 4, "num_statements": 6, "percent_covered": 66.66666666666667, "percent_covered_display": "67", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [541, 542], "excluded_lines": []}, "PasswordManager.update_activity": {"executed_lines": [546, 547, 548, 549, 550, 551], "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": [555, 556, 557, 558, 559, 560], "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": [564, 565, 566, 570, 574, 575], "summary": {"covered_lines": 6, "num_statements": 8, "percent_covered": 75.0, "percent_covered_display": "75", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [567, 568], "excluded_lines": []}, "PasswordManager.poll_background_errors": {"executed_lines": [579, 581, 582, 583, 584, 585, 586, 587], "summary": {"covered_lines": 8, "num_statements": 9, "percent_covered": 88.88888888888889, "percent_covered_display": "89", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [580], "excluded_lines": []}, "PasswordManager.menu_handler": {"executed_lines": [591, 592, 593], "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": [597, 598, 599], "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": [603, 604, 605, 606, 607], "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": [611, 612, 613, 614, 615], "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": [630, 631, 633, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 648, 653, 654, 655, 658, 659, 660, 661], "summary": {"covered_lines": 21, "num_statements": 23, "percent_covered": 91.30434782608695, "percent_covered_display": "91", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [632, 634], "excluded_lines": []}, "PasswordManager.initialize_fingerprint_manager": {"executed_lines": [667, 668, 669], "summary": {"covered_lines": 3, "num_statements": 7, "percent_covered": 42.857142857142854, "percent_covered_display": "43", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [670, 671, 672, 675], "excluded_lines": []}, "PasswordManager.setup_parent_seed": {"executed_lines": [681, 682, 684, 687], "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": [693, 694, 695, 696, 698, 699, 701, 702, 703, 708, 709, 711, 712, 713, 714, 720, 722, 723, 725, 731, 732, 737, 742, 743, 744], "summary": {"covered_lines": 25, "num_statements": 40, "percent_covered": 62.5, "percent_covered_display": "62", "missing_lines": 15, "excluded_lines": 0}, "missing_lines": [724, 728, 729, 734, 735, 736, 738, 739, 745, 753, 754, 756, 757, 758, 759], "excluded_lines": []}, "PasswordManager.add_new_fingerprint": {"executed_lines": [766, 767, 774, 775, 776, 777, 778, 779, 784, 788, 789, 797, 798, 799, 800, 801, 805, 806, 810, 811, 814, 815, 816, 818, 822, 823, 824, 831, 832, 836, 838, 839, 840, 841], "summary": {"covered_lines": 34, "num_statements": 39, "percent_covered": 87.17948717948718, "percent_covered_display": "87", "missing_lines": 5, "excluded_lines": 0}, "missing_lines": [781, 782, 785, 825, 834], "excluded_lines": []}, "PasswordManager.select_fingerprint": {"executed_lines": [846, 847, 848, 851, 862, 867, 869, 870, 871, 877], "summary": {"covered_lines": 10, "num_statements": 14, "percent_covered": 71.42857142857143, "percent_covered_display": "71", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [852, 858, 879, 880], "excluded_lines": []}, "PasswordManager.recover_profile_with_blank_index": {"executed_lines": [884, 885, 889, 890, 891, 896, 898, 899, 902, 903, 906, 910, 916, 919, 925, 926, 933, 937, 938, 939, 945], "summary": {"covered_lines": 21, "num_statements": 64, "percent_covered": 32.8125, "percent_covered_display": "33", "missing_lines": 43, "excluded_lines": 0}, "missing_lines": [886, 887, 900, 901, 907, 908, 917, 927, 928, 930, 931, 934, 935, 947, 948, 949, 950, 951, 952, 954, 955, 956, 957, 959, 960, 961, 962, 967, 973, 975, 981, 982, 983, 984, 986, 987, 988, 989, 995, 996, 997, 998, 999], "excluded_lines": []}, "PasswordManager.setup_encryption_manager": {"executed_lines": [1010, 1011, 1012, 1013, 1014, 1015, 1017, 1022, 1027, 1028, 1030, 1031, 1032, 1040, 1041, 1042, 1043, 1049, 1050, 1051, 1052, 1057, 1058, 1059, 1060, 1062, 1063, 1064, 1065, 1066, 1067, 1069, 1070, 1071, 1072, 1073, 1075, 1080, 1081, 1086, 1087, 1089, 1090, 1091, 1092, 1094, 1095, 1097], "summary": {"covered_lines": 48, "num_statements": 55, "percent_covered": 87.27272727272727, "percent_covered_display": "87", "missing_lines": 7, "excluded_lines": 0}, "missing_lines": [1082, 1083, 1084, 1085, 1088, 1093, 1096], "excluded_lines": []}, "PasswordManager.load_parent_seed": {"executed_lines": [1104, 1107, 1110, 1111, 1116, 1121, 1122, 1125, 1126, 1130, 1131, 1132, 1133], "summary": {"covered_lines": 13, "num_statements": 22, "percent_covered": 59.09090909090909, "percent_covered_display": "59", "missing_lines": 9, "excluded_lines": 0}, "missing_lines": [1105, 1108, 1127, 1128, 1129, 1134, 1135, 1136, 1137], "excluded_lines": []}, "PasswordManager.handle_switch_fingerprint": {"executed_lines": [1142], "summary": {"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": [1147, 1150, 1151, 1152, 1153, 1155, 1159, 1160, 1161, 1163, 1164, 1165, 1166, 1167, 1169, 1170, 1171, 1172, 1173], "summary": {"covered_lines": 19, "num_statements": 20, "percent_covered": 95.0, "percent_covered_display": "95", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [1148], "excluded_lines": []}, "PasswordManager.exit_managed_account": {"executed_lines": [1178, 1180, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1194, 1195, 1196, 1197, 1198], "summary": {"covered_lines": 18, "num_statements": 19, "percent_covered": 94.73684210526316, "percent_covered_display": "95", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [1179], "excluded_lines": []}, "PasswordManager.handle_existing_seed": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 43, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 43, "excluded_lines": 0}, "missing_lines": [1206, 1207, 1208, 1211, 1212, 1215, 1216, 1217, 1223, 1227, 1228, 1229, 1234, 1236, 1237, 1238, 1239, 1241, 1242, 1243, 1246, 1247, 1248, 1251, 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1262, 1265, 1266, 1267, 1268, 1270, 1271, 1272, 1273, 1274, 1275], "excluded_lines": []}, "PasswordManager.handle_new_seed_setup": {"executed_lines": [1283, 1285, 1295, 1296, 1297, 1299, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1319], "summary": {"covered_lines": 20, "num_statements": 25, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 5, "excluded_lines": 0}, "missing_lines": [1298, 1300, 1315, 1316, 1320], "excluded_lines": []}, "PasswordManager.setup_existing_seed": {"executed_lines": [1342, 1343, 1344, 1345, 1346, 1348, 1350, 1354, 1355, 1356], "summary": {"covered_lines": 10, "num_statements": 16, "percent_covered": 62.5, "percent_covered_display": "62", "missing_lines": 6, "excluded_lines": 0}, "missing_lines": [1351, 1352, 1353, 1357, 1358, 1359], "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": [1365], "excluded_lines": []}, "PasswordManager._finalize_existing_seed": {"executed_lines": [1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1383, 1384, 1385, 1396, 1399, 1405, 1406, 1407, 1408, 1409, 1410, 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1420, 1421, 1422, 1424, 1429, 1430, 1432, 1433, 1435, 1436, 1438, 1439, 1440, 1441], "summary": {"covered_lines": 42, "num_statements": 52, "percent_covered": 80.76923076923077, "percent_covered_display": "81", "missing_lines": 10, "excluded_lines": 0}, "missing_lines": [1386, 1392, 1400, 1403, 1442, 1443, 1444, 1446, 1447, 1448], "excluded_lines": []}, "PasswordManager.generate_new_seed": {"executed_lines": [1458, 1459, 1460, 1461, 1463, 1465, 1466, 1467, 1468, 1473, 1474, 1486, 1495, 1498, 1505, 1506, 1507, 1508, 1509, 1514, 1515, 1516, 1519, 1520, 1521, 1522, 1524, 1525, 1527], "summary": {"covered_lines": 29, "num_statements": 48, "percent_covered": 60.416666666666664, "percent_covered_display": "60", "missing_lines": 19, "excluded_lines": 0}, "missing_lines": [1469, 1470, 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1484, 1485, 1487, 1493, 1499, 1502, 1510, 1511, 1529, 1530], "excluded_lines": []}, "PasswordManager.validate_bip85_seed": {"executed_lines": [1542, 1543, 1544, 1545, 1546, 1547], "summary": {"covered_lines": 6, "num_statements": 9, "percent_covered": 66.66666666666667, "percent_covered_display": "67", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [1548, 1549, 1550], "excluded_lines": []}, "PasswordManager.generate_bip85_seed": {"executed_lines": [1559, 1560, 1561, 1562, 1563], "summary": {"covered_lines": 5, "num_statements": 13, "percent_covered": 38.46153846153846, "percent_covered_display": "38", "missing_lines": 8, "excluded_lines": 0}, "missing_lines": [1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571], "excluded_lines": []}, "PasswordManager.save_and_encrypt_seed": {"executed_lines": [1584, 1585, 1586, 1590, 1594, 1599, 1601, 1602, 1604, 1605, 1606, 1607, 1609, 1610, 1612, 1616, 1621, 1622, 1624, 1630, 1632, 1633, 1635, 1636], "summary": {"covered_lines": 24, "num_statements": 30, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 6, "excluded_lines": 0}, "missing_lines": [1595, 1596, 1637, 1638, 1639, 1640], "excluded_lines": []}, "PasswordManager.initialize_bip85": {"executed_lines": [1646, 1647, 1648, 1649, 1650, 1651, 1653, 1663, 1664, 1666], "summary": {"covered_lines": 10, "num_statements": 14, "percent_covered": 71.42857142857143, "percent_covered_display": "71", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [1667, 1668, 1669, 1670], "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": [1656, 1657, 1658, 1661], "excluded_lines": []}, "PasswordManager.initialize_managers": {"executed_lines": [1677, 1679, 1683, 1686, 1690, 1691, 1696, 1697, 1698, 1704, 1705, 1708, 1709, 1710, 1712, 1717, 1718, 1726, 1727, 1728, 1729, 1730, 1731, 1732, 1733, 1734, 1742, 1743, 1746, 1747, 1748, 1749, 1750, 1751, 1762, 1765, 1767, 1768, 1769, 1776, 1777, 1778, 1779, 1780, 1781, 1784, 1785, 1786, 1807, 1809, 1810, 1811, 1812], "summary": {"covered_lines": 53, "num_statements": 62, "percent_covered": 85.48387096774194, "percent_covered_display": "85", "missing_lines": 9, "excluded_lines": 0}, "missing_lines": [1680, 1736, 1737, 1738, 1739, 1740, 1741, 1793, 1800], "excluded_lines": []}, "PasswordManager.sync_index_from_nostr_async": {"executed_lines": [1816, 1818, 1819, 1820, 1821, 1822, 1823, 1835, 1836, 1837, 1838, 1839, 1840, 1841, 1844, 1845, 1846, 1847, 1848, 1849, 1850, 1851, 1852, 1853, 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1871, 1872, 1873, 1874, 1906, 1907, 1908, 1924], "summary": {"covered_lines": 42, "num_statements": 59, "percent_covered": 71.1864406779661, "percent_covered_display": "71", "missing_lines": 17, "excluded_lines": 0}, "missing_lines": [1817, 1824, 1825, 1830, 1834, 1881, 1887, 1888, 1893, 1900, 1909, 1910, 1915, 1916, 1919, 1925, 1926], "excluded_lines": []}, "PasswordManager.sync_index_from_nostr": {"executed_lines": [1929], "summary": {"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": [1933, 1934, 1935, 1936, 1937, 1942, 1951, 1952, 1953, 1954, 1957, 1958, 1960], "summary": {"covered_lines": 13, "num_statements": 14, "percent_covered": 92.85714285714286, "percent_covered_display": "93", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [1940], "excluded_lines": []}, "PasswordManager.start_background_sync._worker": {"executed_lines": [1943, 1944, 1945, 1946, 1947, 1948, 1949], "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": [1964, 1965, 1967], "summary": {"covered_lines": 3, "num_statements": 5, "percent_covered": 60.0, "percent_covered_display": "60", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [1966, 1968], "excluded_lines": []}, "PasswordManager.start_background_relay_check": {"executed_lines": [1972, 1979, 1996, 1997], "summary": {"covered_lines": 4, "num_statements": 5, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [1977], "excluded_lines": []}, "PasswordManager.start_background_relay_check._worker": {"executed_lines": [1980, 1981, 1984, 1985, 1986, 1991, 1992, 1993, 1994], "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": [2001, 2002, 2004, 2014, 2015, 2016, 2017, 2020, 2021, 2022, 2023, 2025], "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": [2005, 2006, 2007, 2008], "summary": {"covered_lines": 4, "num_statements": 8, "percent_covered": 50.0, "percent_covered_display": "50", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [2009, 2010, 2011, 2012], "excluded_lines": []}, "PasswordManager.attempt_initial_sync_async": {"executed_lines": [2034, 2037, 2038, 2041, 2042, 2043, 2044, 2045, 2046, 2047, 2048, 2049, 2050, 2051, 2057, 2058, 2059, 2060, 2061, 2062, 2063, 2064, 2065, 2066, 2074, 2075, 2076, 2077, 2079, 2080, 2081, 2082, 2084, 2088], "summary": {"covered_lines": 32, "num_statements": 37, "percent_covered": 86.48648648648648, "percent_covered_display": "86", "missing_lines": 5, "excluded_lines": 2}, "missing_lines": [2035, 2039, 2078, 2085, 2086], "excluded_lines": [2081, 2082]}, "PasswordManager.attempt_initial_sync": {"executed_lines": [2091], "summary": {"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": [2099], "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": [2102, 2103, 2104, 2105, 2106, 2107, 2108], "excluded_lines": [2109, 2110]}, "PasswordManager.check_nostr_backup_exists": {"executed_lines": [2114, 2117, 2118, 2119, 2120, 2125, 2126, 2127, 2128, 2129, 2130, 2131, 2132, 2133, 2134, 2136], "summary": {"covered_lines": 16, "num_statements": 20, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [2115, 2121, 2122, 2123], "excluded_lines": []}, "PasswordManager.restore_from_nostr_with_guidance": {"executed_lines": [2140, 2141, 2143, 2144, 2145, 2146, 2148, 2149, 2152, 2153, 2154, 2155, 2156, 2157, 2164, 2165], "summary": {"covered_lines": 16, "num_statements": 19, "percent_covered": 84.21052631578948, "percent_covered_display": "84", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [2150, 2159, 2162], "excluded_lines": []}, "PasswordManager.handle_add_password": {"executed_lines": [2169], "summary": {"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": [2174, 2175, 2176, 2177, 2184, 2185, 2186, 2187, 2188, 2189, 2190, 2193, 2194, 2195, 2200, 2201, 2204, 2209, 2210, 2211, 2216, 2226, 2230, 2231, 2232, 2233, 2234, 2239, 2240, 2241, 2242, 2243, 2244, 2250, 2251], "summary": {"covered_lines": 35, "num_statements": 76, "percent_covered": 46.05263157894737, "percent_covered_display": "46", "missing_lines": 41, "excluded_lines": 0}, "missing_lines": [2191, 2192, 2196, 2199, 2227, 2228, 2245, 2246, 2252, 2253, 2254, 2255, 2256, 2260, 2261, 2262, 2263, 2264, 2265, 2268, 2273, 2274, 2284, 2285, 2286, 2292, 2293, 2294, 2295, 2296, 2300, 2301, 2302, 2303, 2304, 2305, 2307, 2308, 2309, 2310, 2311], "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": [2316, 2317, 2318, 2325, 2326, 2327, 2328, 2329, 2330, 2331, 2336, 2339, 2342, 2343, 2345, 2348, 2349, 2351, 2352, 2353, 2354, 2355, 2356, 2357, 2358, 2359, 2360, 2361, 2365, 2366, 2367, 2368, 2369], "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": [2374, 2375, 2376, 2383, 2384, 2385, 2386, 2387, 2388, 2389, 2390, 2395, 2396, 2397, 2398, 2399, 2402, 2403, 2404, 2406, 2409, 2410, 2412, 2418, 2419, 2420, 2421, 2422, 2423, 2424, 2425, 2427, 2428, 2429, 2430, 2431, 2435, 2436, 2437, 2438, 2439], "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": [2444, 2445, 2446, 2453, 2454, 2455, 2456, 2457, 2461, 2462, 2463, 2464, 2469, 2477, 2480, 2481, 2483, 2486, 2487, 2489, 2490, 2491, 2492, 2493, 2494, 2495, 2496, 2497, 2503, 2504, 2505, 2506, 2507], "excluded_lines": [2498, 2499]}, "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": [2512, 2513, 2514, 2521, 2522, 2523, 2524, 2525, 2526, 2527, 2532, 2535, 2536, 2537, 2538, 2539, 2540, 2541, 2542, 2549, 2550, 2551, 2552, 2555, 2556, 2557, 2563, 2564, 2565, 2566, 2567], "excluded_lines": [2558, 2559]}, "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": [2572, 2573, 2574, 2581, 2582, 2583, 2584, 2585, 2586, 2587, 2588, 2589, 2590, 2591, 2592, 2598, 2599, 2600, 2601, 2602, 2603, 2604, 2605, 2606, 2614, 2622, 2623, 2625, 2626, 2627, 2628, 2629, 2630, 2637, 2638, 2639, 2645, 2646, 2647, 2648, 2649], "excluded_lines": [2640, 2641]}, "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": [2654, 2655, 2656, 2663, 2664, 2665, 2666, 2667, 2668, 2669, 2674, 2677, 2678, 2679, 2680, 2686, 2687, 2688, 2689, 2696, 2697, 2698, 2700, 2701, 2702, 2708, 2709, 2710, 2711, 2712], "excluded_lines": [2703, 2704]}, "PasswordManager.show_entry_details_by_index": {"executed_lines": [2716, 2717, 2718, 2721, 2722, 2730, 2732, 2734, 2735, 2736, 2737, 2738, 2739], "summary": {"covered_lines": 13, "num_statements": 14, "percent_covered": 92.85714285714286, "percent_covered_display": "93", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [2719], "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": [2743, 2744, 2749, 2750, 2751, 2752, 2754, 2755, 2756], "excluded_lines": []}, "PasswordManager._entry_type_str": {"executed_lines": [2760, 2761, 2762, 2763], "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": [2769, 2770, 2771, 2773, 2774, 2775, 2777, 2778, 2782, 2783, 2784, 2786], "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": [2790, 2791, 2792, 2799, 2800, 2801, 2802, 2803, 2805, 2806, 2807, 2808, 2809, 2810, 2811, 2816, 2818, 2821, 2822, 2823, 2824, 2825, 2826, 2827, 2828, 2829, 2830, 2831, 2832, 2833, 2839, 2853, 2854, 2855, 2861, 2864, 2869, 2870, 2871, 2872, 2873, 2874, 2875, 2876, 2879], "summary": {"covered_lines": 45, "num_statements": 61, "percent_covered": 73.77049180327869, "percent_covered_display": "74", "missing_lines": 16, "excluded_lines": 0}, "missing_lines": [2834, 2835, 2836, 2837, 2838, 2840, 2841, 2842, 2844, 2845, 2846, 2847, 2850, 2851, 2852, 2878], "excluded_lines": []}, "PasswordManager._entry_edit_menu": {"executed_lines": [2883, 2884, 2885, 2886, 2893, 2894, 2895, 2900, 2903, 2904, 2905, 2906, 2907, 2908, 2909, 2915, 2921, 2929, 2934, 2939, 2940, 2941, 2942, 2943, 2944, 2957], "summary": {"covered_lines": 26, "num_statements": 62, "percent_covered": 41.935483870967744, "percent_covered_display": "42", "missing_lines": 36, "excluded_lines": 0}, "missing_lines": [2896, 2897, 2901, 2902, 2910, 2911, 2912, 2913, 2914, 2916, 2917, 2918, 2919, 2920, 2922, 2923, 2924, 2925, 2926, 2930, 2931, 2932, 2933, 2935, 2936, 2937, 2938, 2946, 2947, 2948, 2949, 2950, 2951, 2952, 2954, 2956], "excluded_lines": []}, "PasswordManager._entry_qr_menu": {"executed_lines": [2962, 2964, 2965, 2980, 2981, 2982, 2983, 2990, 2991, 2992, 2993, 2998, 2999, 3001, 3005, 3006, 3007, 3008, 3009, 3010, 3013, 3014, 3015], "summary": {"covered_lines": 23, "num_statements": 33, "percent_covered": 69.6969696969697, "percent_covered_display": "70", "missing_lines": 10, "excluded_lines": 3}, "missing_lines": [2966, 2967, 2969, 2973, 2974, 2976, 2977, 2978, 3012, 3017], "excluded_lines": [3018, 3019, 3020]}, "PasswordManager.display_sensitive_entry_info": {"executed_lines": [3033, 3035, 3037, 3038, 3039, 3040, 3041, 3042, 3043, 3044, 3045, 3046, 3047, 3048, 3057, 3058, 3059, 3060, 3061, 3062, 3064, 3065, 3067, 3068, 3069, 3070, 3071, 3072, 3073, 3074, 3075, 3076, 3080, 3081, 3089, 3090, 3091, 3092, 3096, 3098, 3099, 3100, 3101, 3104, 3105, 3106, 3107, 3110, 3111, 3112, 3113, 3115, 3116, 3118, 3119, 3120, 3129, 3130, 3134, 3136, 3137, 3138, 3139, 3142, 3143, 3144, 3145, 3146, 3147, 3148, 3149, 3150, 3152, 3153, 3155, 3164, 3165, 3166, 3167, 3169, 3170, 3171, 3172, 3173, 3179, 3183, 3185, 3186, 3187, 3188, 3191, 3192, 3193, 3194, 3197, 3198, 3199, 3200, 3202, 3203, 3205, 3206, 3215, 3219, 3221, 3222, 3223, 3224, 3225, 3228, 3229, 3230, 3231, 3240, 3241, 3243, 3244, 3249, 3251, 3252, 3253, 3254, 3255, 3256, 3257, 3259, 3260, 3262, 3267, 3276, 3278, 3279, 3306, 3308, 3309, 3310, 3311, 3312, 3313, 3314, 3316, 3317, 3318, 3319, 3321, 3326, 3333, 3334, 3337, 3346, 3347, 3348, 3352, 3355, 3356, 3357, 3358, 3359, 3360, 3362, 3368, 3370, 3372, 3373, 3378, 3380, 3381, 3382, 3383, 3390, 3396, 3397, 3398, 3399, 3405, 3406, 3407, 3408, 3409, 3410, 3411, 3412, 3413, 3414, 3415, 3416, 3417, 3418, 3419, 3421, 3422, 3423, 3424, 3425, 3426, 3437, 3440], "summary": {"covered_lines": 197, "num_statements": 257, "percent_covered": 76.65369649805447, "percent_covered_display": "77", "missing_lines": 60, "excluded_lines": 15}, "missing_lines": [3049, 3050, 3063, 3066, 3082, 3083, 3084, 3085, 3086, 3087, 3088, 3114, 3117, 3121, 3122, 3151, 3154, 3156, 3157, 3201, 3204, 3207, 3208, 3232, 3233, 3242, 3245, 3258, 3261, 3268, 3269, 3280, 3281, 3282, 3283, 3284, 3285, 3286, 3287, 3289, 3290, 3291, 3292, 3293, 3294, 3295, 3298, 3305, 3315, 3320, 3338, 3339, 3349, 3350, 3351, 3369, 3371, 3427, 3430, 3439], "excluded_lines": [3093, 3094, 3095, 3131, 3132, 3133, 3180, 3181, 3182, 3216, 3217, 3218, 3246, 3247, 3248]}, "PasswordManager.handle_retrieve_entry": {"executed_lines": [3445, 3446, 3447, 3454, 3457, 3461, 3463, 3464, 3468, 3469, 3470, 3471, 3472, 3473, 3474, 3475], "summary": {"covered_lines": 16, "num_statements": 21, "percent_covered": 76.19047619047619, "percent_covered_display": "76", "missing_lines": 5, "excluded_lines": 0}, "missing_lines": [3458, 3459, 3460, 3465, 3466], "excluded_lines": []}, "PasswordManager.handle_modify_entry": {"executed_lines": [3483, 3484, 3485, 3492, 3495, 3498, 3501, 3502, 3505, 3507, 3616, 3680, 3789, 3790, 3791, 3792, 3793, 3795, 3801, 3802, 3803, 3804, 3811, 3818, 3824, 3830, 3837, 3838, 3850, 3857, 3858, 3859, 3871, 3874, 3880, 3892, 3893, 3895, 3898, 3899, 3900, 3909], "summary": {"covered_lines": 42, "num_statements": 168, "percent_covered": 25.0, "percent_covered_display": "25", "missing_lines": 126, "excluded_lines": 0}, "missing_lines": [3496, 3497, 3503, 3508, 3509, 3510, 3511, 3512, 3514, 3520, 3521, 3522, 3528, 3532, 3535, 3536, 3537, 3538, 3540, 3544, 3547, 3548, 3549, 3550, 3552, 3556, 3563, 3564, 3565, 3566, 3567, 3568, 3570, 3574, 3576, 3583, 3584, 3585, 3586, 3587, 3588, 3589, 3590, 3591, 3592, 3593, 3597, 3600, 3606, 3617, 3618, 3619, 3621, 3627, 3633, 3637, 3644, 3645, 3646, 3647, 3648, 3649, 3651, 3655, 3657, 3664, 3667, 3673, 3684, 3685, 3686, 3687, 3689, 3695, 3701, 3707, 3711, 3712, 3716, 3717, 3721, 3728, 3729, 3730, 3731, 3732, 3733, 3735, 3739, 3741, 3748, 3749, 3750, 3751, 3752, 3753, 3756, 3757, 3758, 3759, 3760, 3764, 3767, 3773, 3781, 3782, 3784, 3839, 3840, 3841, 3842, 3844, 3848, 3860, 3861, 3862, 3863, 3864, 3865, 3866, 3867, 3903, 3904, 3911, 3912, 3913], "excluded_lines": []}, "PasswordManager.handle_search_entries": {"executed_lines": [3918, 3919, 3920, 3927, 3928, 3929, 3930, 3931, 3933, 3934, 3939, 3940, 3941, 3948, 3949, 3950, 3951, 3953, 3954, 3956, 3959, 3961, 3967, 3968, 3969, 3970, 3971], "summary": {"covered_lines": 27, "num_statements": 35, "percent_covered": 77.14285714285714, "percent_covered_display": "77", "missing_lines": 8, "excluded_lines": 0}, "missing_lines": [3935, 3936, 3937, 3952, 3960, 3964, 3965, 3966], "excluded_lines": []}, "PasswordManager.display_entry_details": {"executed_lines": [3975, 3976, 3979, 3980, 3981, 3982, 3983, 3986, 3992, 3993, 3995, 3996, 3998, 3999, 4000, 4001, 4002, 4003, 4009, 4010, 4012, 4013, 4015, 4016, 4017, 4018, 4021, 4022, 4023, 4024, 4025, 4026, 4027, 4028, 4030, 4031, 4033, 4034, 4035, 4036, 4039, 4040, 4041, 4042, 4045, 4046, 4047, 4048, 4053, 4054, 4056, 4057, 4059, 4060, 4061, 4062, 4065, 4066, 4068, 4069, 4071, 4072, 4073, 4074, 4075, 4076, 4077, 4079, 4080, 4082, 4083, 4084, 4085, 4086, 4087, 4088, 4089, 4092, 4093, 4094, 4095, 4096, 4098, 4099, 4101, 4102, 4104, 4105, 4106, 4107, 4108, 4109, 4110, 4111, 4112, 4113, 4114, 4115, 4117, 4123], "summary": {"covered_lines": 100, "num_statements": 116, "percent_covered": 86.20689655172414, "percent_covered_display": "86", "missing_lines": 16, "excluded_lines": 2}, "missing_lines": [3977, 3994, 3997, 4011, 4014, 4029, 4032, 4055, 4058, 4067, 4070, 4078, 4081, 4097, 4100, 4116], "excluded_lines": [4049, 4050]}, "PasswordManager.handle_list_entries": {"executed_lines": [4127], "summary": {"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": [4131, 4132, 4135, 4138, 4140, 4146, 4149, 4150, 4153, 4154, 4155], "summary": {"covered_lines": 11, "num_statements": 20, "percent_covered": 55.0, "percent_covered_display": "55", "missing_lines": 9, "excluded_lines": 0}, "missing_lines": [4136, 4137, 4143, 4144, 4156, 4157, 4162, 4163, 4164], "excluded_lines": []}, "PasswordManager.handle_archive_entry": {"executed_lines": [4169, 4170, 4173, 4176, 4177, 4178, 4179, 4180], "summary": {"covered_lines": 8, "num_statements": 13, "percent_covered": 61.53846153846154, "percent_covered_display": "62", "missing_lines": 5, "excluded_lines": 0}, "missing_lines": [4174, 4175, 4181, 4182, 4183], "excluded_lines": []}, "PasswordManager.handle_view_archived_entries": {"executed_lines": [4188, 4190, 4198, 4199, 4200, 4201, 4202, 4203, 4204, 4205, 4206, 4207, 4208, 4209, 4210, 4217, 4218, 4219, 4220, 4223, 4224, 4225, 4230, 4231, 4232, 4239, 4240, 4241, 4242, 4243, 4244, 4245, 4246, 4247, 4248, 4249, 4250, 4251, 4252, 4253, 4255, 4256], "summary": {"covered_lines": 42, "num_statements": 49, "percent_covered": 85.71428571428571, "percent_covered_display": "86", "missing_lines": 7, "excluded_lines": 0}, "missing_lines": [4228, 4229, 4254, 4258, 4259, 4260, 4261], "excluded_lines": []}, "PasswordManager.handle_view_archived_entries._load_archived_entries": {"executed_lines": [4193, 4196], "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": [4265], "summary": {"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": [4272, 4273, 4274, 4281, 4282, 4283, 4284, 4285, 4289, 4290, 4292, 4293, 4294, 4296, 4302], "summary": {"covered_lines": 15, "num_statements": 18, "percent_covered": 83.33333333333333, "percent_covered_display": "83", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [4303, 4304, 4305], "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": [4310, 4311, 4312, 4313, 4314, 4315, 4322, 4323, 4324, 4331, 4332, 4333, 4334], "excluded_lines": []}, "PasswordManager.get_encrypted_data": {"executed_lines": [4342, 4343, 4344, 4345, 4346], "summary": {"covered_lines": 5, "num_statements": 12, "percent_covered": 41.666666666666664, "percent_covered_display": "42", "missing_lines": 7, "excluded_lines": 0}, "missing_lines": [4348, 4349, 4350, 4351, 4352, 4353, 4354], "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": [4362, 4363, 4364, 4365, 4366, 4369, 4375], "excluded_lines": []}, "PasswordManager.sync_vault_async": {"executed_lines": [4381, 4382, 4383, 4384, 4385, 4387, 4388, 4389, 4390, 4391, 4392, 4394, 4398, 4399, 4401, 4402, 4403, 4404, 4405, 4406, 4407, 4412, 4413, 4418, 4419, 4420], "summary": {"covered_lines": 26, "num_statements": 29, "percent_covered": 89.65517241379311, "percent_covered_display": "90", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [4386, 4397, 4400], "excluded_lines": []}, "PasswordManager.sync_vault": {"executed_lines": [4425], "summary": {"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": [4431, 4432, 4433], "summary": {"covered_lines": 3, "num_statements": 6, "percent_covered": 50.0, "percent_covered_display": "50", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [4434, 4435, 4436], "excluded_lines": []}, "PasswordManager.restore_database": {"executed_lines": [4442, 4443, 4444], "summary": {"covered_lines": 3, "num_statements": 6, "percent_covered": 50.0, "percent_covered_display": "50", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [4449, 4450, 4451], "excluded_lines": []}, "PasswordManager.handle_export_database": {"executed_lines": [4466, 4467, 4468, 4475, 4481, 4482, 4483, 4489, 4492, 4493, 4494, 4497, 4504, 4505, 4506, 4507, 4514], "summary": {"covered_lines": 17, "num_statements": 24, "percent_covered": 70.83333333333333, "percent_covered_display": "71", "missing_lines": 7, "excluded_lines": 0}, "missing_lines": [4476, 4477, 4496, 4515, 4516, 4517, 4518], "excluded_lines": []}, "PasswordManager.handle_import_database": {"executed_lines": [4524, 4525, 4531, 4534, 4535, 4536, 4541, 4542, 4544, 4545, 4553, 4554, 4560, 4569, 4570, 4571, 4572], "summary": {"covered_lines": 17, "num_statements": 41, "percent_covered": 41.46341463414634, "percent_covered_display": "41", "missing_lines": 24, "excluded_lines": 0}, "missing_lines": [4537, 4538, 4539, 4540, 4561, 4562, 4568, 4573, 4574, 4575, 4581, 4583, 4584, 4585, 4586, 4587, 4588, 4591, 4592, 4593, 4596, 4597, 4599, 4600], "excluded_lines": []}, "PasswordManager.handle_export_totp_codes": {"executed_lines": [4605, 4606, 4607, 4608, 4615, 4616, 4618, 4619, 4620, 4621, 4622, 4623, 4624, 4625, 4630, 4631, 4641, 4645, 4648, 4650, 4652, 4663, 4665, 4666, 4667], "summary": {"covered_lines": 25, "num_statements": 41, "percent_covered": 60.97560975609756, "percent_covered_display": "61", "missing_lines": 16, "excluded_lines": 0}, "missing_lines": [4627, 4628, 4629, 4642, 4643, 4653, 4654, 4655, 4658, 4659, 4660, 4661, 4668, 4669, 4670, 4671], "excluded_lines": []}, "PasswordManager.handle_backup_reveal_parent_seed": {"executed_lines": [4686, 4687, 4688, 4695, 4696, 4700, 4706, 4710, 4715, 4718, 4719, 4722, 4723, 4724, 4731, 4732, 4736, 4739, 4740, 4743, 4744, 4746, 4747, 4751, 4754, 4760, 4761, 4762, 4765], "summary": {"covered_lines": 29, "num_statements": 39, "percent_covered": 74.35897435897436, "percent_covered_display": "74", "missing_lines": 10, "excluded_lines": 0}, "missing_lines": [4707, 4711, 4712, 4733, 4734, 4748, 4749, 4766, 4767, 4768], "excluded_lines": []}, "PasswordManager.verify_password": {"executed_lines": [4780, 4781, 4782, 4783, 4795, 4796, 4797, 4800], "summary": {"covered_lines": 8, "num_statements": 25, "percent_covered": 32.0, "percent_covered_display": "32", "missing_lines": 17, "excluded_lines": 0}, "missing_lines": [4785, 4786, 4787, 4788, 4789, 4791, 4792, 4793, 4799, 4801, 4802, 4803, 4809, 4810, 4811, 4812, 4813], "excluded_lines": []}, "PasswordManager.is_valid_filename": {"executed_lines": [4826, 4827, 4828, 4829, 4830], "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": [4837, 4838, 4839, 4840, 4850], "summary": {"covered_lines": 5, "num_statements": 21, "percent_covered": 23.80952380952381, "percent_covered_display": "24", "missing_lines": 16, "excluded_lines": 0}, "missing_lines": [4843, 4844, 4849, 4851, 4853, 4854, 4855, 4856, 4858, 4859, 4864, 4865, 4868, 4869, 4870, 4871], "excluded_lines": []}, "PasswordManager.change_password": {"executed_lines": [4875, 4876, 4877, 4881, 4882, 4885, 4887, 4888, 4890, 4892, 4895, 4896, 4897, 4898, 4901, 4902, 4903, 4905, 4909, 4910, 4920, 4936, 4937, 4938], "summary": {"covered_lines": 24, "num_statements": 36, "percent_covered": 66.66666666666667, "percent_covered_display": "67", "missing_lines": 12, "excluded_lines": 0}, "missing_lines": [4878, 4906, 4907, 4923, 4925, 4926, 4927, 4939, 4940, 4943, 4944, 4945], "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": [4949, 4950, 4952, 4955, 4956, 4957, 4958, 4959, 4960, 4961, 4962, 4965, 4966, 4967, 4968, 4969, 4970, 4971, 4973, 4974, 4975, 4978, 4979, 4980, 4981, 4982, 4984, 4985, 4986, 4988, 4991, 4992, 4993, 4994, 4997, 5000, 5001, 5002, 5007, 5008, 5009, 5010, 5011, 5013, 5014, 5015, 5017], "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": [5021, 5022, 5023, 5024, 5026, 5027, 5028, 5029, 5030, 5031, 5037, 5038, 5043, 5044, 5050, 5056, 5057, 5058, 5059], "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, 362, 377, 384, 414, 445, 467, 481, 498, 499, 503, 504, 510, 511, 519, 520, 534, 535, 544, 553, 562, 577, 589, 590, 595, 596, 601, 602, 609, 617, 663, 677, 689, 761, 843, 882, 1001, 1099, 1139, 1140, 1141, 1144, 1145, 1175, 1176, 1200, 1201, 1277, 1278, 1322, 1361, 1367, 1450, 1451, 1532, 1552, 1573, 1574, 1642, 1672, 1814, 1928, 1931, 1962, 1970, 1999, 2027, 2090, 2093, 2101, 2112, 2138, 2167, 2168, 2171, 2172, 2313, 2314, 2371, 2372, 2441, 2442, 2509, 2510, 2569, 2570, 2651, 2652, 2714, 2741, 2758, 2765, 2788, 2881, 2959, 3022, 3442, 3443, 3477, 3478, 3915, 3916, 3973, 4125, 4126, 4129, 4166, 4167, 4185, 4186, 4263, 4264, 4267, 4268, 4307, 4308, 4336, 4356, 4377, 4422, 4427, 4438, 4453, 4454, 4520, 4521, 4602, 4603, 4673, 4674, 4770, 4815, 4832, 4873, 4947, 5019], "summary": {"covered_lines": 226, "num_statements": 226, "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, 333, 335, 348, 349, 350, 351, 352, 353, 356, 357, 358, 359, 360, 363, 364, 365, 366, 367, 368, 369, 374, 375, 378, 379, 380, 381, 394, 395, 396, 397, 405, 407, 409, 412, 423, 424, 425, 426, 436, 439, 455, 456, 460, 461, 465, 469, 475, 476, 477, 478, 479, 483, 484, 485, 486, 487, 488, 489, 490, 506, 508, 512, 517, 537, 538, 539, 540, 546, 547, 548, 549, 550, 551, 555, 556, 557, 558, 559, 560, 564, 565, 566, 570, 574, 575, 579, 581, 582, 583, 584, 585, 586, 587, 591, 592, 593, 597, 598, 599, 603, 604, 605, 606, 607, 611, 612, 613, 614, 615, 630, 631, 633, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 648, 653, 654, 655, 658, 659, 660, 661, 667, 668, 669, 681, 682, 684, 687, 693, 694, 695, 696, 698, 699, 701, 702, 703, 708, 709, 711, 712, 713, 714, 720, 722, 723, 725, 731, 732, 737, 742, 743, 744, 766, 767, 774, 775, 776, 777, 778, 779, 784, 788, 789, 797, 798, 799, 800, 801, 805, 806, 810, 811, 814, 815, 816, 818, 822, 823, 824, 831, 832, 836, 838, 839, 840, 841, 846, 847, 848, 851, 862, 867, 869, 870, 871, 877, 884, 885, 889, 890, 891, 896, 898, 899, 902, 903, 906, 910, 916, 919, 925, 926, 933, 937, 938, 939, 945, 1010, 1011, 1012, 1013, 1014, 1015, 1017, 1022, 1027, 1028, 1030, 1031, 1032, 1040, 1041, 1042, 1043, 1049, 1050, 1051, 1052, 1057, 1058, 1059, 1060, 1062, 1063, 1064, 1065, 1066, 1067, 1069, 1070, 1071, 1072, 1073, 1075, 1080, 1081, 1086, 1087, 1089, 1090, 1091, 1092, 1094, 1095, 1097, 1104, 1107, 1110, 1111, 1116, 1121, 1122, 1125, 1126, 1130, 1131, 1132, 1133, 1142, 1147, 1150, 1151, 1152, 1153, 1155, 1159, 1160, 1161, 1163, 1164, 1165, 1166, 1167, 1169, 1170, 1171, 1172, 1173, 1178, 1180, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1194, 1195, 1196, 1197, 1198, 1283, 1285, 1295, 1296, 1297, 1299, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1319, 1342, 1343, 1344, 1345, 1346, 1348, 1350, 1354, 1355, 1356, 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1383, 1384, 1385, 1396, 1399, 1405, 1406, 1407, 1408, 1409, 1410, 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1420, 1421, 1422, 1424, 1429, 1430, 1432, 1433, 1435, 1436, 1438, 1439, 1440, 1441, 1458, 1459, 1460, 1461, 1463, 1465, 1466, 1467, 1468, 1473, 1474, 1486, 1495, 1498, 1505, 1506, 1507, 1508, 1509, 1514, 1515, 1516, 1519, 1520, 1521, 1522, 1524, 1525, 1527, 1542, 1543, 1544, 1545, 1546, 1547, 1559, 1560, 1561, 1562, 1563, 1584, 1585, 1586, 1590, 1594, 1599, 1601, 1602, 1604, 1605, 1606, 1607, 1609, 1610, 1612, 1616, 1621, 1622, 1624, 1630, 1632, 1633, 1635, 1636, 1646, 1647, 1648, 1649, 1650, 1651, 1653, 1663, 1664, 1666, 1677, 1679, 1683, 1686, 1690, 1691, 1696, 1697, 1698, 1704, 1705, 1708, 1709, 1710, 1712, 1717, 1718, 1726, 1727, 1728, 1729, 1730, 1731, 1732, 1733, 1734, 1742, 1743, 1746, 1747, 1748, 1749, 1750, 1751, 1762, 1765, 1767, 1768, 1769, 1776, 1777, 1778, 1779, 1780, 1781, 1784, 1785, 1786, 1807, 1809, 1810, 1811, 1812, 1816, 1818, 1819, 1820, 1821, 1822, 1823, 1835, 1836, 1837, 1838, 1839, 1840, 1841, 1844, 1845, 1846, 1847, 1848, 1849, 1850, 1851, 1852, 1853, 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1871, 1872, 1873, 1874, 1906, 1907, 1908, 1924, 1929, 1933, 1934, 1935, 1936, 1937, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1951, 1952, 1953, 1954, 1957, 1958, 1960, 1964, 1965, 1967, 1972, 1979, 1980, 1981, 1984, 1985, 1986, 1991, 1992, 1993, 1994, 1996, 1997, 2001, 2002, 2004, 2005, 2006, 2007, 2008, 2014, 2015, 2016, 2017, 2020, 2021, 2022, 2023, 2025, 2034, 2037, 2038, 2041, 2042, 2043, 2044, 2045, 2046, 2047, 2048, 2049, 2050, 2051, 2057, 2058, 2059, 2060, 2061, 2062, 2063, 2064, 2065, 2066, 2074, 2075, 2076, 2077, 2079, 2080, 2081, 2082, 2084, 2088, 2091, 2114, 2117, 2118, 2119, 2120, 2125, 2126, 2127, 2128, 2129, 2130, 2131, 2132, 2133, 2134, 2136, 2140, 2141, 2143, 2144, 2145, 2146, 2148, 2149, 2152, 2153, 2154, 2155, 2156, 2157, 2164, 2165, 2169, 2174, 2175, 2176, 2177, 2184, 2185, 2186, 2187, 2188, 2189, 2190, 2193, 2194, 2195, 2200, 2201, 2204, 2209, 2210, 2211, 2216, 2226, 2230, 2231, 2232, 2233, 2234, 2239, 2240, 2241, 2242, 2243, 2244, 2250, 2251, 2716, 2717, 2718, 2721, 2722, 2730, 2732, 2734, 2735, 2736, 2737, 2738, 2739, 2760, 2761, 2762, 2763, 2769, 2770, 2771, 2773, 2774, 2775, 2777, 2778, 2782, 2783, 2784, 2786, 2790, 2791, 2792, 2799, 2800, 2801, 2802, 2803, 2805, 2806, 2807, 2808, 2809, 2810, 2811, 2816, 2818, 2821, 2822, 2823, 2824, 2825, 2826, 2827, 2828, 2829, 2830, 2831, 2832, 2833, 2839, 2853, 2854, 2855, 2861, 2864, 2869, 2870, 2871, 2872, 2873, 2874, 2875, 2876, 2879, 2883, 2884, 2885, 2886, 2893, 2894, 2895, 2900, 2903, 2904, 2905, 2906, 2907, 2908, 2909, 2915, 2921, 2929, 2934, 2939, 2940, 2941, 2942, 2943, 2944, 2957, 2962, 2964, 2965, 2980, 2981, 2982, 2983, 2990, 2991, 2992, 2993, 2998, 2999, 3001, 3005, 3006, 3007, 3008, 3009, 3010, 3013, 3014, 3015, 3033, 3035, 3037, 3038, 3039, 3040, 3041, 3042, 3043, 3044, 3045, 3046, 3047, 3048, 3057, 3058, 3059, 3060, 3061, 3062, 3064, 3065, 3067, 3068, 3069, 3070, 3071, 3072, 3073, 3074, 3075, 3076, 3080, 3081, 3089, 3090, 3091, 3092, 3096, 3098, 3099, 3100, 3101, 3104, 3105, 3106, 3107, 3110, 3111, 3112, 3113, 3115, 3116, 3118, 3119, 3120, 3129, 3130, 3134, 3136, 3137, 3138, 3139, 3142, 3143, 3144, 3145, 3146, 3147, 3148, 3149, 3150, 3152, 3153, 3155, 3164, 3165, 3166, 3167, 3169, 3170, 3171, 3172, 3173, 3179, 3183, 3185, 3186, 3187, 3188, 3191, 3192, 3193, 3194, 3197, 3198, 3199, 3200, 3202, 3203, 3205, 3206, 3215, 3219, 3221, 3222, 3223, 3224, 3225, 3228, 3229, 3230, 3231, 3240, 3241, 3243, 3244, 3249, 3251, 3252, 3253, 3254, 3255, 3256, 3257, 3259, 3260, 3262, 3267, 3276, 3278, 3279, 3306, 3308, 3309, 3310, 3311, 3312, 3313, 3314, 3316, 3317, 3318, 3319, 3321, 3326, 3333, 3334, 3337, 3346, 3347, 3348, 3352, 3355, 3356, 3357, 3358, 3359, 3360, 3362, 3368, 3370, 3372, 3373, 3378, 3380, 3381, 3382, 3383, 3390, 3396, 3397, 3398, 3399, 3405, 3406, 3407, 3408, 3409, 3410, 3411, 3412, 3413, 3414, 3415, 3416, 3417, 3418, 3419, 3421, 3422, 3423, 3424, 3425, 3426, 3437, 3440, 3445, 3446, 3447, 3454, 3457, 3461, 3463, 3464, 3468, 3469, 3470, 3471, 3472, 3473, 3474, 3475, 3483, 3484, 3485, 3492, 3495, 3498, 3501, 3502, 3505, 3507, 3616, 3680, 3789, 3790, 3791, 3792, 3793, 3795, 3801, 3802, 3803, 3804, 3811, 3818, 3824, 3830, 3837, 3838, 3850, 3857, 3858, 3859, 3871, 3874, 3880, 3892, 3893, 3895, 3898, 3899, 3900, 3909, 3918, 3919, 3920, 3927, 3928, 3929, 3930, 3931, 3933, 3934, 3939, 3940, 3941, 3948, 3949, 3950, 3951, 3953, 3954, 3956, 3959, 3961, 3967, 3968, 3969, 3970, 3971, 3975, 3976, 3979, 3980, 3981, 3982, 3983, 3986, 3992, 3993, 3995, 3996, 3998, 3999, 4000, 4001, 4002, 4003, 4009, 4010, 4012, 4013, 4015, 4016, 4017, 4018, 4021, 4022, 4023, 4024, 4025, 4026, 4027, 4028, 4030, 4031, 4033, 4034, 4035, 4036, 4039, 4040, 4041, 4042, 4045, 4046, 4047, 4048, 4053, 4054, 4056, 4057, 4059, 4060, 4061, 4062, 4065, 4066, 4068, 4069, 4071, 4072, 4073, 4074, 4075, 4076, 4077, 4079, 4080, 4082, 4083, 4084, 4085, 4086, 4087, 4088, 4089, 4092, 4093, 4094, 4095, 4096, 4098, 4099, 4101, 4102, 4104, 4105, 4106, 4107, 4108, 4109, 4110, 4111, 4112, 4113, 4114, 4115, 4117, 4123, 4127, 4131, 4132, 4135, 4138, 4140, 4146, 4149, 4150, 4153, 4154, 4155, 4169, 4170, 4173, 4176, 4177, 4178, 4179, 4180, 4188, 4190, 4193, 4196, 4198, 4199, 4200, 4201, 4202, 4203, 4204, 4205, 4206, 4207, 4208, 4209, 4210, 4217, 4218, 4219, 4220, 4223, 4224, 4225, 4230, 4231, 4232, 4239, 4240, 4241, 4242, 4243, 4244, 4245, 4246, 4247, 4248, 4249, 4250, 4251, 4252, 4253, 4255, 4256, 4265, 4272, 4273, 4274, 4281, 4282, 4283, 4284, 4285, 4289, 4290, 4292, 4293, 4294, 4296, 4302, 4342, 4343, 4344, 4345, 4346, 4381, 4382, 4383, 4384, 4385, 4387, 4388, 4389, 4390, 4391, 4392, 4394, 4398, 4399, 4401, 4402, 4403, 4404, 4405, 4406, 4407, 4412, 4413, 4418, 4419, 4420, 4425, 4431, 4432, 4433, 4442, 4443, 4444, 4466, 4467, 4468, 4475, 4481, 4482, 4483, 4489, 4492, 4493, 4494, 4497, 4504, 4505, 4506, 4507, 4514, 4524, 4525, 4531, 4534, 4535, 4536, 4541, 4542, 4544, 4545, 4553, 4554, 4560, 4569, 4570, 4571, 4572, 4605, 4606, 4607, 4608, 4615, 4616, 4618, 4619, 4620, 4621, 4622, 4623, 4624, 4625, 4630, 4631, 4641, 4645, 4648, 4650, 4652, 4663, 4665, 4666, 4667, 4686, 4687, 4688, 4695, 4696, 4700, 4706, 4710, 4715, 4718, 4719, 4722, 4723, 4724, 4731, 4732, 4736, 4739, 4740, 4743, 4744, 4746, 4747, 4751, 4754, 4760, 4761, 4762, 4765, 4780, 4781, 4782, 4783, 4795, 4796, 4797, 4800, 4826, 4827, 4828, 4829, 4830, 4837, 4838, 4839, 4840, 4850, 4875, 4876, 4877, 4881, 4882, 4885, 4887, 4888, 4890, 4892, 4895, 4896, 4897, 4898, 4901, 4902, 4903, 4905, 4909, 4910, 4920, 4936, 4937, 4938], "summary": {"covered_lines": 1529, "num_statements": 2572, "percent_covered": 59.447900466562984, "percent_covered_display": "59", "missing_lines": 1043, "excluded_lines": 32}, "missing_lines": [334, 343, 382, 408, 427, 501, 507, 513, 514, 515, 522, 523, 524, 525, 526, 529, 530, 531, 532, 541, 542, 567, 568, 580, 632, 634, 670, 671, 672, 675, 724, 728, 729, 734, 735, 736, 738, 739, 745, 753, 754, 756, 757, 758, 759, 781, 782, 785, 825, 834, 852, 858, 879, 880, 886, 887, 900, 901, 907, 908, 917, 927, 928, 930, 931, 934, 935, 947, 948, 949, 950, 951, 952, 954, 955, 956, 957, 959, 960, 961, 962, 967, 973, 975, 981, 982, 983, 984, 986, 987, 988, 989, 995, 996, 997, 998, 999, 1082, 1083, 1084, 1085, 1088, 1093, 1096, 1105, 1108, 1127, 1128, 1129, 1134, 1135, 1136, 1137, 1148, 1179, 1206, 1207, 1208, 1211, 1212, 1215, 1216, 1217, 1223, 1227, 1228, 1229, 1234, 1236, 1237, 1238, 1239, 1241, 1242, 1243, 1246, 1247, 1248, 1251, 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1262, 1265, 1266, 1267, 1268, 1270, 1271, 1272, 1273, 1274, 1275, 1298, 1300, 1315, 1316, 1320, 1351, 1352, 1353, 1357, 1358, 1359, 1365, 1386, 1392, 1400, 1403, 1442, 1443, 1444, 1446, 1447, 1448, 1469, 1470, 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1484, 1485, 1487, 1493, 1499, 1502, 1510, 1511, 1529, 1530, 1548, 1549, 1550, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1595, 1596, 1637, 1638, 1639, 1640, 1656, 1657, 1658, 1661, 1667, 1668, 1669, 1670, 1680, 1736, 1737, 1738, 1739, 1740, 1741, 1793, 1800, 1817, 1824, 1825, 1830, 1834, 1881, 1887, 1888, 1893, 1900, 1909, 1910, 1915, 1916, 1919, 1925, 1926, 1940, 1966, 1968, 1977, 2009, 2010, 2011, 2012, 2035, 2039, 2078, 2085, 2086, 2099, 2102, 2103, 2104, 2105, 2106, 2107, 2108, 2115, 2121, 2122, 2123, 2150, 2159, 2162, 2191, 2192, 2196, 2199, 2227, 2228, 2245, 2246, 2252, 2253, 2254, 2255, 2256, 2260, 2261, 2262, 2263, 2264, 2265, 2268, 2273, 2274, 2284, 2285, 2286, 2292, 2293, 2294, 2295, 2296, 2300, 2301, 2302, 2303, 2304, 2305, 2307, 2308, 2309, 2310, 2311, 2316, 2317, 2318, 2325, 2326, 2327, 2328, 2329, 2330, 2331, 2336, 2339, 2342, 2343, 2345, 2348, 2349, 2351, 2352, 2353, 2354, 2355, 2356, 2357, 2358, 2359, 2360, 2361, 2365, 2366, 2367, 2368, 2369, 2374, 2375, 2376, 2383, 2384, 2385, 2386, 2387, 2388, 2389, 2390, 2395, 2396, 2397, 2398, 2399, 2402, 2403, 2404, 2406, 2409, 2410, 2412, 2418, 2419, 2420, 2421, 2422, 2423, 2424, 2425, 2427, 2428, 2429, 2430, 2431, 2435, 2436, 2437, 2438, 2439, 2444, 2445, 2446, 2453, 2454, 2455, 2456, 2457, 2461, 2462, 2463, 2464, 2469, 2477, 2480, 2481, 2483, 2486, 2487, 2489, 2490, 2491, 2492, 2493, 2494, 2495, 2496, 2497, 2503, 2504, 2505, 2506, 2507, 2512, 2513, 2514, 2521, 2522, 2523, 2524, 2525, 2526, 2527, 2532, 2535, 2536, 2537, 2538, 2539, 2540, 2541, 2542, 2549, 2550, 2551, 2552, 2555, 2556, 2557, 2563, 2564, 2565, 2566, 2567, 2572, 2573, 2574, 2581, 2582, 2583, 2584, 2585, 2586, 2587, 2588, 2589, 2590, 2591, 2592, 2598, 2599, 2600, 2601, 2602, 2603, 2604, 2605, 2606, 2614, 2622, 2623, 2625, 2626, 2627, 2628, 2629, 2630, 2637, 2638, 2639, 2645, 2646, 2647, 2648, 2649, 2654, 2655, 2656, 2663, 2664, 2665, 2666, 2667, 2668, 2669, 2674, 2677, 2678, 2679, 2680, 2686, 2687, 2688, 2689, 2696, 2697, 2698, 2700, 2701, 2702, 2708, 2709, 2710, 2711, 2712, 2719, 2743, 2744, 2749, 2750, 2751, 2752, 2754, 2755, 2756, 2834, 2835, 2836, 2837, 2838, 2840, 2841, 2842, 2844, 2845, 2846, 2847, 2850, 2851, 2852, 2878, 2896, 2897, 2901, 2902, 2910, 2911, 2912, 2913, 2914, 2916, 2917, 2918, 2919, 2920, 2922, 2923, 2924, 2925, 2926, 2930, 2931, 2932, 2933, 2935, 2936, 2937, 2938, 2946, 2947, 2948, 2949, 2950, 2951, 2952, 2954, 2956, 2966, 2967, 2969, 2973, 2974, 2976, 2977, 2978, 3012, 3017, 3049, 3050, 3063, 3066, 3082, 3083, 3084, 3085, 3086, 3087, 3088, 3114, 3117, 3121, 3122, 3151, 3154, 3156, 3157, 3201, 3204, 3207, 3208, 3232, 3233, 3242, 3245, 3258, 3261, 3268, 3269, 3280, 3281, 3282, 3283, 3284, 3285, 3286, 3287, 3289, 3290, 3291, 3292, 3293, 3294, 3295, 3298, 3305, 3315, 3320, 3338, 3339, 3349, 3350, 3351, 3369, 3371, 3427, 3430, 3439, 3458, 3459, 3460, 3465, 3466, 3496, 3497, 3503, 3508, 3509, 3510, 3511, 3512, 3514, 3520, 3521, 3522, 3528, 3532, 3535, 3536, 3537, 3538, 3540, 3544, 3547, 3548, 3549, 3550, 3552, 3556, 3563, 3564, 3565, 3566, 3567, 3568, 3570, 3574, 3576, 3583, 3584, 3585, 3586, 3587, 3588, 3589, 3590, 3591, 3592, 3593, 3597, 3600, 3606, 3617, 3618, 3619, 3621, 3627, 3633, 3637, 3644, 3645, 3646, 3647, 3648, 3649, 3651, 3655, 3657, 3664, 3667, 3673, 3684, 3685, 3686, 3687, 3689, 3695, 3701, 3707, 3711, 3712, 3716, 3717, 3721, 3728, 3729, 3730, 3731, 3732, 3733, 3735, 3739, 3741, 3748, 3749, 3750, 3751, 3752, 3753, 3756, 3757, 3758, 3759, 3760, 3764, 3767, 3773, 3781, 3782, 3784, 3839, 3840, 3841, 3842, 3844, 3848, 3860, 3861, 3862, 3863, 3864, 3865, 3866, 3867, 3903, 3904, 3911, 3912, 3913, 3935, 3936, 3937, 3952, 3960, 3964, 3965, 3966, 3977, 3994, 3997, 4011, 4014, 4029, 4032, 4055, 4058, 4067, 4070, 4078, 4081, 4097, 4100, 4116, 4136, 4137, 4143, 4144, 4156, 4157, 4162, 4163, 4164, 4174, 4175, 4181, 4182, 4183, 4228, 4229, 4254, 4258, 4259, 4260, 4261, 4303, 4304, 4305, 4310, 4311, 4312, 4313, 4314, 4315, 4322, 4323, 4324, 4331, 4332, 4333, 4334, 4348, 4349, 4350, 4351, 4352, 4353, 4354, 4362, 4363, 4364, 4365, 4366, 4369, 4375, 4386, 4397, 4400, 4434, 4435, 4436, 4449, 4450, 4451, 4476, 4477, 4496, 4515, 4516, 4517, 4518, 4537, 4538, 4539, 4540, 4561, 4562, 4568, 4573, 4574, 4575, 4581, 4583, 4584, 4585, 4586, 4587, 4588, 4591, 4592, 4593, 4596, 4597, 4599, 4600, 4627, 4628, 4629, 4642, 4643, 4653, 4654, 4655, 4658, 4659, 4660, 4661, 4668, 4669, 4670, 4671, 4707, 4711, 4712, 4733, 4734, 4748, 4749, 4766, 4767, 4768, 4785, 4786, 4787, 4788, 4789, 4791, 4792, 4793, 4799, 4801, 4802, 4803, 4809, 4810, 4811, 4812, 4813, 4843, 4844, 4849, 4851, 4853, 4854, 4855, 4856, 4858, 4859, 4864, 4865, 4868, 4869, 4870, 4871, 4878, 4906, 4907, 4923, 4925, 4926, 4927, 4939, 4940, 4943, 4944, 4945, 4949, 4950, 4952, 4955, 4956, 4957, 4958, 4959, 4960, 4961, 4962, 4965, 4966, 4967, 4968, 4969, 4970, 4971, 4973, 4974, 4975, 4978, 4979, 4980, 4981, 4982, 4984, 4985, 4986, 4988, 4991, 4992, 4993, 4994, 4997, 5000, 5001, 5002, 5007, 5008, 5009, 5010, 5011, 5013, 5014, 5015, 5017, 5021, 5022, 5023, 5024, 5026, 5027, 5028, 5029, 5030, 5031, 5037, 5038, 5043, 5044, 5050, 5056, 5057, 5058, 5059], "excluded_lines": [2081, 2082, 2109, 2110, 2498, 2499, 2558, 2559, 2640, 2641, 2703, 2704, 3018, 3019, 3020, 3093, 3094, 3095, 3131, 3132, 3133, 3180, 3181, 3182, 3216, 3217, 3218, 3246, 3247, 3248, 4049, 4050]}, "": {"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, 362, 377, 384, 414, 445, 467, 481, 498, 499, 503, 504, 510, 511, 519, 520, 534, 535, 544, 553, 562, 577, 589, 590, 595, 596, 601, 602, 609, 617, 663, 677, 689, 761, 843, 882, 1001, 1099, 1139, 1140, 1141, 1144, 1145, 1175, 1176, 1200, 1201, 1277, 1278, 1322, 1361, 1367, 1450, 1451, 1532, 1552, 1573, 1574, 1642, 1672, 1814, 1928, 1931, 1962, 1970, 1999, 2027, 2090, 2093, 2101, 2112, 2138, 2167, 2168, 2171, 2172, 2313, 2314, 2371, 2372, 2441, 2442, 2509, 2510, 2569, 2570, 2651, 2652, 2714, 2741, 2758, 2765, 2788, 2881, 2959, 3022, 3442, 3443, 3477, 3478, 3915, 3916, 3973, 4125, 4126, 4129, 4166, 4167, 4185, 4186, 4263, 4264, 4267, 4268, 4307, 4308, 4336, 4356, 4377, 4422, 4427, 4438, 4453, 4454, 4520, 4521, 4602, 4603, 4673, 4674, 4770, 4815, 4832, 4873, 4947, 5019], "summary": {"covered_lines": 233, "num_statements": 243, "percent_covered": 95.88477366255144, "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/release_integrity.py": {"executed_lines": [1, 3, 5, 6, 7, 10, 11, 12, 13, 14, 15, 18, 20, 21, 22, 23, 25, 26, 27, 28, 29, 30, 32, 33, 34, 35, 38, 42, 43, 44, 45, 46, 47, 52, 53, 56, 58, 59, 61, 63, 64, 65, 66, 67, 68, 70, 73, 77, 78, 79, 82, 84, 85, 89, 90, 93, 94, 95, 96], "summary": {"covered_lines": 58, "num_statements": 68, "percent_covered": 85.29411764705883, "percent_covered_display": "85", "missing_lines": 10, "excluded_lines": 0}, "missing_lines": [24, 60, 62, 69, 83, 86, 87, 88, 91, 92], "excluded_lines": [], "functions": {"_file_sha256": {"executed_lines": [11, 12, 13, 14, 15], "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": []}, "collect_artifacts": {"executed_lines": [20, 21, 22, 23, 25, 26, 27, 28, 29, 30, 32, 33, 34, 35], "summary": {"covered_lines": 14, "num_statements": 15, "percent_covered": 93.33333333333333, "percent_covered_display": "93", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [24], "excluded_lines": []}, "generate_checksums": {"executed_lines": [42, 43, 44, 45, 46, 47, 52, 53], "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": []}, "parse_checksum_line": {"executed_lines": [58, 59, 61, 63, 64, 65, 66, 67, 68, 70], "summary": {"covered_lines": 10, "num_statements": 13, "percent_covered": 76.92307692307692, "percent_covered_display": "77", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [60, 62, 69], "excluded_lines": []}, "verify_checksums": {"executed_lines": [77, 78, 79, 82, 84, 85, 89, 90, 93, 94, 95, 96], "summary": {"covered_lines": 12, "num_statements": 18, "percent_covered": 66.66666666666667, "percent_covered_display": "67", "missing_lines": 6, "excluded_lines": 0}, "missing_lines": [83, 86, 87, 88, 91, 92], "excluded_lines": []}, "": {"executed_lines": [1, 3, 5, 6, 7, 10, 18, 38, 56, 73], "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, 5, 6, 7, 10, 11, 12, 13, 14, 15, 18, 20, 21, 22, 23, 25, 26, 27, 28, 29, 30, 32, 33, 34, 35, 38, 42, 43, 44, 45, 46, 47, 52, 53, 56, 58, 59, 61, 63, 64, 65, 66, 67, 68, 70, 73, 77, 78, 79, 82, 84, 85, 89, 90, 93, 94, 95, 96], "summary": {"covered_lines": 58, "num_statements": 68, "percent_covered": 85.29411764705883, "percent_covered_display": "85", "missing_lines": 10, "excluded_lines": 0}, "missing_lines": [24, 60, 62, 69, 83, 86, 87, 88, 91, 92], "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, 389, 394, 419, 423, 424, 426, 449, 454, 466, 479, 484, 485, 499], "summary": {"covered_lines": 203, "num_statements": 313, "percent_covered": 64.85623003194888, "percent_covered_display": "65", "missing_lines": 110, "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, 387, 390, 391, 392, 395, 396, 399, 401, 402, 403, 404, 405, 407, 408, 409, 410, 412, 413, 416, 417, 420, 427, 428, 429, 431, 432, 433, 434, 435, 437, 438, 439, 440, 441, 442, 443, 444, 445, 447, 450, 451, 452, 455, 456, 457, 458, 459, 463, 464, 467, 468, 469, 470, 471, 472, 476, 481], "excluded_lines": [57, 58, 59, 460, 461, 462, 473, 474, 475, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 499, 500, 501], "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": 11, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 11, "excluded_lines": 0}, "missing_lines": [371, 372, 373, 375, 380, 381, 382, 384, 385, 386, 387], "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": [390, 391, 392], "excluded_lines": []}, "TotpViewerWindow.refresh_codes": {"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": [395, 396, 399, 401, 402, 403, 404, 405, 407, 408, 409, 410, 412, 413, 416, 417], "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": [420], "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": [427, 428, 429, 431, 432, 433, 434, 435, 437, 438, 439, 440, 441, 442, 443, 444, 445, 447], "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": [450, 451, 452], "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": [455, 456, 457, 458, 459, 463, 464], "excluded_lines": [460, 461, 462]}, "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": [467, 468, 469, 470, 471, 472, 476], "excluded_lines": [473, 474, 475]}, "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": [481], "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": [486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496]}, "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": [500, 501]}, "": {"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, 389, 394, 419, 423, 424, 426, 449, 454, 466, 479, 484, 485, 499], "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": [485, 499]}}, "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": 31, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 31, "excluded_lines": 0}, "missing_lines": [371, 372, 373, 375, 380, 381, 382, 384, 385, 386, 387, 390, 391, 392, 395, 396, 399, 401, 402, 403, 404, 405, 407, 408, 409, 410, 412, 413, 416, 417, 420], "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": [427, 428, 429, 431, 432, 433, 434, 435, 437, 438, 439, 440, 441, 442, 443, 444, 445, 447, 450, 451, 452, 455, 456, 457, 458, 459, 463, 464, 467, 468, 469, 470, 471, 472, 476], "excluded_lines": [460, 461, 462, 473, 474, 475]}, "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": [486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496]}, "": {"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, 389, 394, 419, 423, 424, 426, 449, 454, 466, 479, 484, 485, 499], "summary": {"covered_lines": 46, "num_statements": 47, "percent_covered": 97.87234042553192, "percent_covered_display": "98", "missing_lines": 1, "excluded_lines": 4}, "missing_lines": [481], "excluded_lines": [485, 499, 500, 501]}}}, "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_account_roundtrip_restore.py": {"executed_lines": [1, 3, 4, 6, 7, 8, 9, 10, 11, 14, 15, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 39, 40, 48, 57, 66, 67, 68, 69, 71, 72, 73, 74, 75, 76, 77, 79, 80, 81, 82, 83, 84, 85, 86, 88, 89, 90, 91, 92, 93, 95, 96, 99, 100, 102, 103, 104, 105, 107, 108, 109, 111, 112, 114, 115, 116, 118, 119, 120, 121, 124, 125, 126, 127, 128, 130, 131, 138, 140, 141, 143, 144, 145, 147, 153, 154], "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": [], "functions": {"_init_pm": {"executed_lines": [15, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36], "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": []}, "_add_sample_entries": {"executed_lines": [40, 48, 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": []}, "_assert_sample_entries": {"executed_lines": [67, 68, 69, 71, 72, 73, 74, 75, 76, 77, 79, 80, 81, 82, 83, 84, 85, 86, 88, 89, 90, 91, 92, 93, 95, 96], "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_account_roundtrip_via_nostr_seed_restore": {"executed_lines": [100, 102, 103, 104, 105, 107, 108, 109, 111, 112, 114, 115, 116, 118, 119, 120, 121], "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_account_roundtrip_via_export_import_seed_restore": {"executed_lines": [125, 126, 127, 128, 130, 131, 138, 140, 141, 143, 144, 145, 147, 153, 154], "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, 3, 4, 6, 7, 8, 9, 10, 11, 14, 39, 66, 99, 124], "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, 4, 6, 7, 8, 9, 10, 11, 14, 15, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 39, 40, 48, 57, 66, 67, 68, 69, 71, 72, 73, 74, 75, 76, 77, 79, 80, 81, 82, 83, 84, 85, 86, 88, 89, 90, 91, 92, 93, 95, 96, 99, 100, 102, 103, 104, 105, 107, 108, 109, 111, 112, 114, 115, 116, 118, 119, 120, 121, 124, 125, 126, 127, 128, 130, 131, 138, 140, 141, 143, 144, 145, 147, 153, 154], "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_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, 16, 17, 19, 20, 22, 23, 24, 27, 28, 29, 30, 31, 34, 35, 36, 37, 38, 39, 40, 43, 44, 45, 46, 51, 54, 55, 56, 57, 62, 63, 64, 65, 68, 69, 70, 71, 75, 76, 77, 78, 81, 82, 83, 84, 88, 89, 90, 91, 94, 95, 96, 97, 101, 102, 103, 104, 107, 108, 109, 110, 112, 117, 118, 120, 125, 126, 128, 129, 130, 132, 133, 134, 137, 138, 139, 140, 142, 143, 145, 146, 147, 152, 153, 154, 155, 158, 159, 160, 161, 162, 165, 166, 171, 172, 173, 176, 177, 178, 179, 180, 181, 182, 187, 188, 189, 190, 193, 194, 195, 196, 197, 202, 205, 206, 207, 209, 211, 212, 213, 214, 216, 218, 222, 223, 224, 225, 226, 227, 230, 231, 248, 249, 250, 251, 252, 253, 254, 255], "summary": {"covered_lines": 147, "num_statements": 147, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_get_pm_requires_initialized_state": {"executed_lines": [13, 14, 16, 17, 19, 20, 22, 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": []}, "test_token_hashed": {"executed_lines": [29, 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_cors_and_auth": {"executed_lines": [36, 37, 38, 39, 40], "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": [45, 46, 51], "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": [56, 57, 62, 63, 64, 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": []}, "test_get_config_value": {"executed_lines": [70, 71, 75, 76, 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_list_fingerprint": {"executed_lines": [83, 84, 88, 89, 90, 91], "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": [96, 97, 101, 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_create_modify_archive_entry": {"executed_lines": [109, 110, 112, 117, 118, 120, 125, 126, 128, 129, 130, 132, 133, 134], "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": [139, 140, 142, 145, 146, 147, 152, 153, 154, 155], "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": [143], "summary": {"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": [160, 161, 162, 165, 166, 171, 172, 173], "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": [178, 179, 180, 181, 182, 187, 188, 189, 190], "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": [195, 196, 197, 202], "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": [207, 209, 211, 212, 216, 218, 222, 223, 224, 225, 226, 227], "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": [213, 214], "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": [249, 250, 251, 252, 253, 254, 255], "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, 27, 28, 34, 35, 43, 44, 54, 55, 68, 69, 81, 82, 94, 95, 107, 108, 137, 138, 158, 159, 176, 177, 193, 194, 205, 206, 230, 231, 248], "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": {"test_get_pm_requires_initialized_state.DummyState": {"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": []}, "test_get_pm_requires_initialized_state.DummyApp": {"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": []}, "test_get_pm_requires_initialized_state.DummyRequest": {"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": []}, "test_shutdown.Loop": {"executed_lines": [213, 214], "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, 16, 17, 19, 20, 22, 23, 24, 27, 28, 29, 30, 31, 34, 35, 36, 37, 38, 39, 40, 43, 44, 45, 46, 51, 54, 55, 56, 57, 62, 63, 64, 65, 68, 69, 70, 71, 75, 76, 77, 78, 81, 82, 83, 84, 88, 89, 90, 91, 94, 95, 96, 97, 101, 102, 103, 104, 107, 108, 109, 110, 112, 117, 118, 120, 125, 126, 128, 129, 130, 132, 133, 134, 137, 138, 139, 140, 142, 143, 145, 146, 147, 152, 153, 154, 155, 158, 159, 160, 161, 162, 165, 166, 171, 172, 173, 176, 177, 178, 179, 180, 181, 182, 187, 188, 189, 190, 193, 194, 195, 196, 197, 202, 205, 206, 207, 209, 211, 212, 216, 218, 222, 223, 224, 225, 226, 227, 230, 231, 248, 249, 250, 251, 252, 253, 254, 255], "summary": {"covered_lines": 145, "num_statements": 145, "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, 294, 295, 297, 298, 300, 301, 303, 304, 305, 307, 308, 309, 311, 312, 314, 315, 320, 321, 322, 323, 324, 327, 328, 329, 330, 331, 333, 334, 335, 337, 338, 340, 342, 343, 344, 346, 348, 349, 350, 355, 356, 359, 360, 361, 362, 363, 366, 368, 369, 370, 371, 372, 378, 380, 381, 382, 385, 386, 387, 388, 389, 390, 394, 395, 400, 403, 404, 405, 406, 407, 408, 409, 411, 412, 417, 420, 421, 422, 423, 425, 426, 427, 429, 430, 432, 433, 434, 435, 436, 437, 438, 441, 442, 445, 446, 447, 448, 450, 451, 452, 453, 454, 456, 457, 458, 459, 461, 462, 463, 464, 465, 468, 469, 470, 471, 472, 474, 475, 477, 478, 479, 480, 481, 482, 483, 486, 487, 488, 489, 490, 492, 493, 494, 495, 498, 499, 500, 501, 502, 504, 505, 506, 507, 510, 511, 512, 513, 514, 516, 517, 518, 519, 522, 523, 524, 525, 526, 527, 528, 529, 532, 533, 534, 535, 536, 537, 538, 542, 548, 549, 550, 552, 553, 555, 559, 561, 562, 565, 566, 567, 568, 570, 571, 573, 574, 576, 577, 579, 580, 585, 586, 587, 588, 591, 592, 593, 594, 595, 597, 599, 603, 604, 605, 607, 610, 613, 614, 615, 616, 617, 618, 622, 623, 627, 632, 633, 634, 636, 641, 644, 645, 646, 647, 648, 649, 650, 654, 659, 662, 663, 664, 665, 666, 668, 669, 671, 673, 674, 676, 677, 678, 683, 686, 687, 689, 691, 692, 693, 695, 696, 697, 699, 702, 703, 704, 706, 707, 708, 709, 712, 713, 714, 716, 717, 718, 720, 721, 724, 726, 729, 731, 732, 737, 738, 739, 742, 743, 744, 746, 747, 748, 750, 751, 754, 756, 759, 761, 762, 763, 768, 769, 770, 771], "summary": {"covered_lines": 469, "num_statements": 469, "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_upload_sets_secure_temp_permissions": {"executed_lines": [289, 290, 291, 292, 294, 297, 298, 300, 301, 303, 307, 311, 312, 314, 315, 320, 321, 322, 323, 324], "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_vault_import_upload_sets_secure_temp_permissions.import_db": {"executed_lines": [295], "summary": {"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_upload_sets_secure_temp_permissions.tracking_chmod": {"executed_lines": [304, 305], "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_upload_sets_secure_temp_permissions.tracking_unlink": {"executed_lines": [308, 309], "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_upload_temp_file_removed_on_failure": {"executed_lines": [329, 330, 331, 333, 337, 338, 340, 342, 346, 348, 349, 350, 355, 356], "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_upload_temp_file_removed_on_failure.import_db": {"executed_lines": [334, 335], "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_upload_temp_file_removed_on_failure.tracking_unlink": {"executed_lines": [343, 344], "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_upload_too_large": {"executed_lines": [361, 362, 363, 366, 368, 369, 370, 371, 372, 378, 380, 381, 382], "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_invalid_extension": {"executed_lines": [387, 388, 389, 390, 394, 395, 400], "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": [405, 406, 407, 408, 409, 411, 412, 417], "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": [422, 423, 425, 429, 430, 432, 433, 434, 435, 436, 437, 438, 441, 442], "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": [426, 427], "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_unlock_endpoint": {"executed_lines": [447, 448, 450, 456, 457, 458, 459, 461, 462, 463, 464, 465], "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_vault_unlock_endpoint.unlock": {"executed_lines": [451, 452, 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": []}, "test_vault_unlock_rate_limited_after_failed_attempts": {"executed_lines": [470, 471, 472, 474, 475, 477, 478, 479, 480, 481, 482, 483], "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_entry_endpoints_blocked_when_vault_locked": {"executed_lines": [488, 489, 490, 492, 493, 494, 495], "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_generate_password_blocked_when_vault_locked": {"executed_lines": [500, 501, 502, 504, 505, 506, 507], "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_config_endpoint_blocked_when_vault_locked": {"executed_lines": [512, 513, 514, 516, 517, 518, 519], "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_get_config_denies_sensitive_keys": {"executed_lines": [524, 525, 526, 527, 528, 529], "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_lock_unlock_cycle_restores_entry_access": {"executed_lines": [534, 535, 536, 537, 538, 542, 548, 549, 550, 552, 553, 555, 559, 561, 562], "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_secret_mode_endpoint": {"executed_lines": [567, 568, 570, 573, 576, 577, 579, 580, 585, 586, 587, 588], "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": [571], "summary": {"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": [574], "summary": {"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": [593, 594, 595, 597, 599, 603, 604, 605, 607, 610], "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": [615, 616, 617, 618, 622, 623, 627, 632, 633, 634, 636, 641], "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": [646, 647, 648, 649, 650, 654, 659], "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": [664, 665, 666, 668, 671, 673, 676, 677, 678, 683, 686, 687, 689, 691, 692, 693, 695, 696, 697, 699, 702, 703, 704, 706, 707, 708, 709], "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": [669], "summary": {"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": [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": []}, "test_generate_password_no_special_chars": {"executed_lines": [714, 716, 717, 720, 721, 726, 729, 731, 732, 737, 738, 739], "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": [718], "summary": {"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": [724], "summary": {"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": [744, 746, 747, 750, 751, 756, 759, 761, 762, 763, 768, 769, 770, 771], "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": [748], "summary": {"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": [754], "summary": {"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, 327, 328, 359, 360, 385, 386, 403, 404, 420, 421, 445, 446, 468, 469, 486, 487, 498, 499, 510, 511, 522, 523, 532, 533, 565, 566, 591, 592, 613, 614, 644, 645, 662, 663, 712, 713, 742, 743], "summary": {"covered_lines": 72, "num_statements": 72, "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": [718], "summary": {"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": [724], "summary": {"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": [748], "summary": {"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": [754], "summary": {"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, 294, 295, 297, 298, 300, 301, 303, 304, 305, 307, 308, 309, 311, 312, 314, 315, 320, 321, 322, 323, 324, 327, 328, 329, 330, 331, 333, 334, 335, 337, 338, 340, 342, 343, 344, 346, 348, 349, 350, 355, 356, 359, 360, 361, 362, 363, 366, 368, 369, 370, 371, 372, 378, 380, 381, 382, 385, 386, 387, 388, 389, 390, 394, 395, 400, 403, 404, 405, 406, 407, 408, 409, 411, 412, 417, 420, 421, 422, 423, 425, 426, 427, 429, 430, 432, 433, 434, 435, 436, 437, 438, 441, 442, 445, 446, 447, 448, 450, 451, 452, 453, 454, 456, 457, 458, 459, 461, 462, 463, 464, 465, 468, 469, 470, 471, 472, 474, 475, 477, 478, 479, 480, 481, 482, 483, 486, 487, 488, 489, 490, 492, 493, 494, 495, 498, 499, 500, 501, 502, 504, 505, 506, 507, 510, 511, 512, 513, 514, 516, 517, 518, 519, 522, 523, 524, 525, 526, 527, 528, 529, 532, 533, 534, 535, 536, 537, 538, 542, 548, 549, 550, 552, 553, 555, 559, 561, 562, 565, 566, 567, 568, 570, 571, 573, 574, 576, 577, 579, 580, 585, 586, 587, 588, 591, 592, 593, 594, 595, 597, 599, 603, 604, 605, 607, 610, 613, 614, 615, 616, 617, 618, 622, 623, 627, 632, 633, 634, 636, 641, 644, 645, 646, 647, 648, 649, 650, 654, 659, 662, 663, 664, 665, 666, 668, 669, 671, 673, 674, 676, 677, 678, 683, 686, 687, 689, 691, 692, 693, 695, 696, 697, 699, 702, 703, 704, 706, 707, 708, 709, 712, 713, 714, 716, 717, 720, 721, 726, 729, 731, 732, 737, 738, 739, 742, 743, 744, 746, 747, 750, 751, 756, 759, 761, 762, 763, 768, 769, 770, 771], "summary": {"covered_lines": 465, "num_statements": 465, "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, 48, 49, 50], "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_rate_limit_exceeded": {"executed_lines": [15, 16, 17, 19, 21, 34, 35, 36, 37, 38, 40, 41, 44, 46, 47, 48, 49, 50], "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, 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, 48, 49, 50], "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_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, 3, 6, 7, 8, 10, 11, 13, 14, 17, 18, 19, 21, 22, 23, 26, 27, 28, 29, 31, 37, 38, 44, 47, 48, 49, 50, 52, 54, 57, 58, 59, 60, 62, 63, 64, 66], "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": {"DummyChild.PrivateKey": {"executed_lines": [8], "summary": {"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": [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": []}, "DummyChild.ToBytes": {"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": []}, "DummyCtx.__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": []}, "DummyCtx.DerivePath": {"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_derivation_paths_for_entropy_lengths": {"executed_lines": [27, 28, 29, 31, 37, 38, 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": []}, "test_default_word_count_from_entropy_bytes": {"executed_lines": [48, 49, 50, 52, 54], "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_entropy_logs_do_not_expose_key_material": {"executed_lines": [58, 59, 60, 62, 63, 64, 66], "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, 6, 7, 10, 13, 17, 18, 21, 26, 47, 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": []}}, "classes": {"DummyChild": {"executed_lines": [8, 11, 14], "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": [19, 22, 23], "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, 6, 7, 10, 13, 17, 18, 21, 26, 27, 28, 29, 31, 37, 38, 44, 47, 48, 49, 50, 52, 54, 57, 58, 59, 60, 62, 63, 64, 66], "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_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_agent_mode.py": {"executed_lines": [1, 2, 3, 4, 6, 8, 10, 11, 12, 14, 17, 18, 19, 20, 21, 22, 23, 26, 27, 28, 42, 43, 44, 45, 46, 49, 50, 51, 52, 61, 62, 63, 64, 65, 66, 67, 70, 71, 72, 73, 82, 83, 84, 87, 88, 89, 90, 93, 94, 95, 103, 104, 105, 107, 108, 110, 111, 113, 114, 116, 117, 123, 124, 125, 126, 127, 128, 129, 132, 133, 134, 142, 143, 144, 146, 147, 149, 150, 152, 153, 162, 163, 164, 165, 166, 169, 170, 171, 179, 180, 181, 183, 184, 189, 190, 196, 197, 198, 199, 200, 201, 204, 205, 206, 214, 215, 216, 218, 219, 221, 222, 224, 225, 231, 232, 233, 234, 235, 236, 239, 240, 241, 249, 250, 251, 253, 254, 256, 257, 259, 260, 266, 267, 268, 269, 270, 273, 274, 275, 276, 277, 278, 279, 282, 283, 284, 285, 286, 287, 288, 289, 290], "summary": {"covered_lines": 152, "num_statements": 152, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_agent_policy_show_defaults": {"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_agent_policy_set_persists": {"executed_lines": [27, 28, 42, 43, 44, 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": []}, "test_agent_init_creates_profile": {"executed_lines": [50, 51, 52, 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": []}, "test_agent_init_requires_password_env": {"executed_lines": [71, 72, 73, 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": []}, "test_agent_get_requires_fingerprint": {"executed_lines": [88, 89, 90], "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_agent_get_password_json": {"executed_lines": [94, 95, 103, 104, 107, 110, 113, 116, 117, 123, 124, 125, 126, 127, 128, 129], "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_agent_get_password_json.DummyEntryService.__init__": {"executed_lines": [105], "summary": {"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_agent_get_password_json.DummyEntryService.search_entries": {"executed_lines": [108], "summary": {"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_agent_get_password_json.DummyEntryService.retrieve_entry": {"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_agent_get_password_json.DummyEntryService.generate_password": {"executed_lines": [114], "summary": {"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_agent_get_denied_by_policy": {"executed_lines": [133, 134, 142, 143, 146, 149, 152, 153, 162, 163, 164, 165, 166], "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_agent_get_denied_by_policy.DummyEntryService.__init__": {"executed_lines": [144], "summary": {"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_agent_get_denied_by_policy.DummyEntryService.search_entries": {"executed_lines": [147], "summary": {"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_agent_get_denied_by_policy.DummyEntryService.retrieve_entry": {"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": []}, "test_agent_get_ambiguous_returns_error_payload": {"executed_lines": [170, 171, 179, 180, 183, 189, 190, 196, 197, 198, 199, 200, 201], "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_agent_get_ambiguous_returns_error_payload.DummyEntryService.__init__": {"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": []}, "test_agent_get_ambiguous_returns_error_payload.DummyEntryService.search_entries": {"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_agent_get_key_value_json": {"executed_lines": [205, 206, 214, 215, 218, 221, 224, 225, 231, 232, 233, 234, 235, 236], "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_agent_get_key_value_json.DummyEntryService.__init__": {"executed_lines": [216], "summary": {"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_agent_get_key_value_json.DummyEntryService.search_entries": {"executed_lines": [219], "summary": {"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_agent_get_key_value_json.DummyEntryService.retrieve_entry": {"executed_lines": [222], "summary": {"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_agent_get_unsupported_kind_payload": {"executed_lines": [240, 241, 249, 250, 253, 256, 259, 260, 266, 267, 268, 269, 270], "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_agent_get_unsupported_kind_payload.DummyEntryService.__init__": {"executed_lines": [251], "summary": {"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_agent_get_unsupported_kind_payload.DummyEntryService.search_entries": {"executed_lines": [254], "summary": {"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_agent_get_unsupported_kind_payload.DummyEntryService.retrieve_entry": {"executed_lines": [257], "summary": {"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_agent_policy_show_invalid_json": {"executed_lines": [274, 275, 276, 277, 278, 279], "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_agent_get_denied_when_policy_invalid": {"executed_lines": [283, 284, 285, 286, 287, 288, 289, 290], "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, 10, 11, 12, 14, 17, 26, 49, 70, 87, 93, 132, 169, 204, 239, 273, 282], "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": {"test_agent_get_password_json.DummyEntryService": {"executed_lines": [105, 108, 111, 114], "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_agent_get_denied_by_policy.DummyEntryService": {"executed_lines": [144, 147, 150], "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_agent_get_ambiguous_returns_error_payload.DummyEntryService": {"executed_lines": [181, 184], "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_agent_get_key_value_json.DummyEntryService": {"executed_lines": [216, 219, 222], "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_agent_get_unsupported_kind_payload.DummyEntryService": {"executed_lines": [251, 254, 257], "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, 14, 17, 18, 19, 20, 21, 22, 23, 26, 27, 28, 42, 43, 44, 45, 46, 49, 50, 51, 52, 61, 62, 63, 64, 65, 66, 67, 70, 71, 72, 73, 82, 83, 84, 87, 88, 89, 90, 93, 94, 95, 103, 104, 107, 110, 113, 116, 117, 123, 124, 125, 126, 127, 128, 129, 132, 133, 134, 142, 143, 146, 149, 152, 153, 162, 163, 164, 165, 166, 169, 170, 171, 179, 180, 183, 189, 190, 196, 197, 198, 199, 200, 201, 204, 205, 206, 214, 215, 218, 221, 224, 225, 231, 232, 233, 234, 235, 236, 239, 240, 241, 249, 250, 253, 256, 259, 260, 266, 267, 268, 269, 270, 273, 274, 275, 276, 277, 278, 279, 282, 283, 284, 285, 286, 287, 288, 289, 290], "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": []}}}, "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, 87, 88, 89, 90, 92, 106, 109, 119, 122], "summary": {"covered_lines": 22, "num_statements": 60, "percent_covered": 36.666666666666664, "percent_covered_display": "37", "missing_lines": 38, "excluded_lines": 0}, "missing_lines": [18, 40, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 57, 60, 65, 66, 82, 83, 84, 96, 97, 98, 99, 100, 101, 102, 103, 110, 111, 112, 113, 116, 123, 124, 125, 126], "excluded_lines": [], "functions": {"DummyPM.__init__": {"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": [18, 40, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 57, 60, 65, 66, 82, 83, 84], "excluded_lines": []}, "load_doc_commands": {"executed_lines": [88, 89, 90, 92], "summary": {"covered_lines": 4, "num_statements": 12, "percent_covered": 33.333333333333336, "percent_covered_display": "33", "missing_lines": 8, "excluded_lines": 0}, "missing_lines": [96, 97, 98, 99, 100, 101, 102, 103], "excluded_lines": []}, "_setup": {"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": [110, 111, 112, 113, 116], "excluded_lines": []}, "test_doc_cli_examples": {"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": [124, 125, 126], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 7, 9, 10, 11, 12, 13, 16, 17, 87, 106, 109, 119, 122], "summary": {"covered_lines": 18, "num_statements": 19, "percent_covered": 94.73684210526316, "percent_covered_display": "95", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [123], "excluded_lines": []}}, "classes": {"DummyPM": {"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": [18, 40, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 57, 60, 65, 66, 82, 83, 84], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 7, 9, 10, 11, 12, 13, 16, 17, 87, 88, 89, 90, 92, 106, 109, 119, 122], "summary": {"covered_lines": 22, "num_statements": 39, "percent_covered": 56.41025641025641, "percent_covered_display": "56", "missing_lines": 17, "excluded_lines": 0}, "missing_lines": [96, 97, 98, 99, 100, 101, 102, 103, 110, 111, 112, 113, 116, 123, 124, 125, 126], "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, 129, 130, 131, 132, 133, 134, 136, 137, 138, 139, 142, 143, 144, 151, 152, 153, 154, 156, 157, 158, 159], "summary": {"covered_lines": 78, "num_statements": 78, "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": []}, "test_cli_export_requires_file": {"executed_lines": [130, 131, 132, 133, 134, 136, 137, 138, 139], "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_import_handler_exception_returns_error": {"executed_lines": [143, 144, 151, 152, 153, 154, 156, 157, 158, 159], "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, 9, 10, 11, 12, 15, 31, 59, 96, 129, 142], "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, 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, 129, 130, 131, 132, 133, 134, 136, 137, 138, 139, 142, 143, 144, 151, 152, 153, 154, 156, 157, 158, 159], "summary": {"covered_lines": 78, "num_statements": 78, "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, 11, 12, 15, 16, 17, 19, 22, 25, 28, 29, 31, 32, 34, 35, 36, 38, 54, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 109, 110, 111, 112, 114, 115, 116, 117, 119, 122, 123, 124, 126, 127, 129, 130, 131, 132, 135, 136, 137, 139, 140, 142, 143, 144, 146, 147, 149, 150, 153, 154, 155, 157, 158, 160, 161, 162, 164, 165, 167, 168], "summary": {"covered_lines": 110, "num_statements": 113, "percent_covered": 97.34513274336283, "percent_covered_display": "97", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [20, 23, 26], "excluded_lines": [], "functions": {"_make_pm": {"executed_lines": [16, 17, 19, 22, 25, 28, 31, 34, 38, 54], "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": [20], "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": [23], "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": [26], "excluded_lines": []}, "_make_pm.update": {"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": []}, "_make_pm.lock": {"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": []}, "_make_pm.unlock": {"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": []}, "test_empty_and_non_numeric_choice": {"executed_lines": [58, 59, 60, 61, 62, 63, 64, 65, 66], "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": [70, 71, 72, 73, 74, 75, 76, 77, 78], "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": [82, 83, 84, 85, 86, 87, 88, 89, 90, 91], "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": [95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106], "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_inactivity_timeout_unlock_cancelled_stays_in_menu": {"executed_lines": [110, 111, 112, 114, 119, 122, 123, 124, 126, 127, 129, 130, 131, 132], "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_inactivity_timeout_unlock_cancelled_stays_in_menu.unlock_fail": {"executed_lines": [115, 116, 117], "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_action_seedpass_error_does_not_crash": {"executed_lines": [136, 137, 139, 142, 143, 144, 146, 147, 149, 150], "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_menu_action_seedpass_error_does_not_crash.fail_retrieve": {"executed_lines": [140], "summary": {"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_action_password_prompt_error_does_not_crash": {"executed_lines": [154, 155, 157, 160, 161, 162, 164, 165, 167, 168], "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_menu_action_password_prompt_error_does_not_crash.fail_retrieve": {"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": []}, "": {"executed_lines": [1, 2, 3, 4, 6, 8, 10, 11, 12, 15, 57, 69, 81, 94, 109, 135, 153], "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, 8, 10, 11, 12, 15, 16, 17, 19, 22, 25, 28, 29, 31, 32, 34, 35, 36, 38, 54, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 109, 110, 111, 112, 114, 115, 116, 117, 119, 122, 123, 124, 126, 127, 129, 130, 131, 132, 135, 136, 137, 139, 140, 142, 143, 144, 146, 147, 149, 150, 153, 154, 155, 157, 158, 160, 161, 162, 164, 165, 167, 168], "summary": {"covered_lines": 110, "num_statements": 113, "percent_covered": 97.34513274336283, "percent_covered_display": "97", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [20, 23, 26], "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_deterministic_artifact_regression.py": {"executed_lines": [1, 2, 4, 5, 6, 8, 14, 16, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 35, 99, 100, 102, 103, 104, 107, 108, 109, 110, 113, 115, 116, 117, 119, 120, 121, 122, 123, 124, 128, 129, 130, 131, 133, 134, 135, 136, 137, 138, 139, 143, 147, 148, 149, 155, 156, 157, 163, 165, 167, 168, 169, 170, 172, 173, 174, 175, 177, 178, 179], "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": {"_MnemonicSeedEncoder.derive_seed_from_mnemonic": {"executed_lines": [104], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "_build_password_generator": {"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_deterministic_vectors_index_352_regression": {"executed_lines": [115, 116, 117, 119, 120, 121, 122, 123, 124, 128, 129, 130, 131, 133, 134, 135, 136, 137, 138, 139, 143, 147, 148, 149, 155, 156, 157], "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_repeatability_for_same_seed_and_index": {"executed_lines": [165, 167, 168, 169, 170, 172, 173, 174, 175, 177, 178, 179], "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, 6, 8, 14, 16, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 35, 99, 100, 102, 103, 107, 113, 163], "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": {"DeterministicVector": {"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": []}, "_MnemonicSeedEncoder": {"executed_lines": [104], "summary": {"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, 14, 16, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 35, 99, 100, 102, 103, 107, 108, 109, 110, 113, 115, 116, 117, 119, 120, 121, 122, 123, 124, 128, 129, 130, 131, 133, 134, 135, 136, 137, 138, 139, 143, 147, 148, 149, 155, 156, 157, 163, 165, 167, 168, 169, 170, 172, 173, 174, 175, 177, 178, 179], "summary": {"covered_lines": 68, "num_statements": 68, "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_entry_types_roundtrip.py": {"executed_lines": [1, 3, 5, 7, 8, 9, 10, 11, 14, 15, 16, 17, 18, 21, 22, 23, 31, 32, 41, 42, 43, 44, 45, 48, 49, 57, 58, 59, 60, 67, 68, 74, 75, 78, 79, 80, 81, 83, 84, 85, 86, 87, 88, 90, 93, 94, 95, 96, 97, 99, 100, 101, 102, 103, 105, 106, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126], "summary": {"covered_lines": 75, "num_statements": 76, "percent_covered": 98.6842105263158, "percent_covered_display": "99", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [71], "excluded_lines": [], "functions": {"_make_entry_manager": {"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": []}, "_add_entry_for_type": {"executed_lines": [22, 23, 31, 32, 41, 42, 43, 44, 45, 48, 49, 57, 58, 59, 60, 67, 68], "summary": {"covered_lines": 17, "num_statements": 18, "percent_covered": 94.44444444444444, "percent_covered_display": "94", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [71], "excluded_lines": []}, "test_all_entry_type_values_are_enum_backed": {"executed_lines": [75], "summary": {"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_each_entry_type_roundtrip_retrieve_and_filter": {"executed_lines": [80, 81, 83, 84, 85, 86, 87, 88, 90, 93, 94, 95, 96, 97, 99, 100, 101, 102, 103, 105, 106, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126], "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, 3, 5, 7, 8, 9, 10, 11, 14, 21, 74, 78, 79], "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, 3, 5, 7, 8, 9, 10, 11, 14, 15, 16, 17, 18, 21, 22, 23, 31, 32, 41, 42, 43, 44, 45, 48, 49, 57, 58, 59, 60, 67, 68, 74, 75, 78, 79, 80, 81, 83, 84, 85, 86, 87, 88, 90, 93, 94, 95, 96, 97, 99, 100, 101, 102, 103, 105, 106, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126], "summary": {"covered_lines": 75, "num_statements": 76, "percent_covered": 98.6842105263158, "percent_covered_display": "99", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [71], "excluded_lines": []}}}, "src/tests/test_export_plaintext_policy.py": {"executed_lines": [1, 2, 4, 5, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 20, 21, 22, 26, 27, 31, 32, 38, 39, 40], "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": {"_make_pm": {"executed_lines": [9, 10, 11, 12, 13, 14, 15, 16, 17], "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_plaintext_export_requires_second_confirmation": {"executed_lines": [21, 22, 26, 27, 31, 32, 38, 39, 40], "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, 4, 5, 8, 20], "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, 4, 5, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 20, 21, 22, 26, 27, 31, 32, 38, 39, 40], "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_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, 5, 7, 8, 10, 12, 13, 16, 17, 18, 21, 22, 23, 24, 27, 28, 29, 30, 31, 34, 35, 36, 37, 38, 39, 40, 41, 42, 45, 46, 47], "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_generate_fingerprint_deterministic": {"executed_lines": [17, 18, 21, 22, 23, 24], "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_fingerprint_does_not_log_seed_phrase": {"executed_lines": [28, 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_encryption_round_trip": {"executed_lines": [35, 36, 37, 38, 39, 40, 41, 42, 45, 46, 47], "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, 8, 10, 12, 13, 16, 27, 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": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 5, 7, 8, 10, 12, 13, 16, 17, 18, 21, 22, 23, 24, 27, 28, 29, 30, 31, 34, 35, 36, 37, 38, 39, 40, 41, 42, 45, 46, 47], "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_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_imghdr_stub.py": {"executed_lines": [1, 2, 3, 6, 9, 10, 11, 14, 17, 18, 19, 22, 24, 25, 26, 29, 31, 32, 33, 36, 38, 39, 40, 43, 45, 46, 47, 50, 52, 53, 54, 57, 60, 61, 62, 64, 65, 66, 69, 72, 73, 74, 76, 77, 78, 81, 84, 85, 86, 88, 89, 90, 93, 95, 96, 97, 100, 102, 103, 104, 107, 109, 110, 111, 114, 117, 118, 119, 122, 124, 125, 126, 129, 131, 132, 135, 137, 138, 139, 142, 144, 145, 146, 149, 151, 152, 155, 157, 158, 159, 160, 162, 164, 165, 168, 171, 172, 173, 176, 178, 179, 180, 183, 185, 186, 189, 191, 192], "summary": {"covered_lines": 108, "num_statements": 108, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"test_what_with_bytes_io_jpeg": {"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": 0}, "missing_lines": [], "excluded_lines": []}, "test_what_with_bytes_io_png": {"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_what_with_bytes_io_gif87a": {"executed_lines": [24, 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": []}, "test_what_with_bytes_io_gif89a": {"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": []}, "test_what_with_bytes_io_tiff_intel": {"executed_lines": [38, 39, 40], "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_what_with_bytes_io_tiff_motorola": {"executed_lines": [45, 46, 47], "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_what_with_bytes_io_rgb": {"executed_lines": [52, 53, 54], "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_what_with_bytes_io_pbm": {"executed_lines": [60, 61, 62, 64, 65, 66], "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_what_with_bytes_io_pgm": {"executed_lines": [72, 73, 74, 76, 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_what_with_bytes_io_ppm": {"executed_lines": [84, 85, 86, 88, 89, 90], "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_what_with_bytes_io_rast": {"executed_lines": [95, 96, 97], "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_what_with_bytes_io_xbm": {"executed_lines": [102, 103, 104], "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_what_with_bytes_io_bmp": {"executed_lines": [109, 110, 111], "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_what_with_bytes_io_webp": {"executed_lines": [117, 118, 119], "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_what_with_bytes_io_exr": {"executed_lines": [124, 125, 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": []}, "test_what_returns_none_for_unknown": {"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": []}, "test_what_with_file_path_str": {"executed_lines": [137, 138, 139], "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_what_with_path_object": {"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_what_with_explicit_header": {"executed_lines": [151, 152], "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_what_preserves_file_position": {"executed_lines": [157, 158, 159, 160, 162, 164, 165], "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_what_with_bytes_io_jpeg_exif": {"executed_lines": [171, 172, 173], "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_what_with_empty_file": {"executed_lines": [178, 179, 180], "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_what_with_empty_bytes_io": {"executed_lines": [185, 186], "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_what_with_short_file_bmp": {"executed_lines": [191, 192], "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, 6, 14, 22, 29, 36, 43, 50, 57, 69, 81, 93, 100, 107, 114, 122, 129, 135, 142, 149, 155, 168, 176, 183, 189], "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, 6, 9, 10, 11, 14, 17, 18, 19, 22, 24, 25, 26, 29, 31, 32, 33, 36, 38, 39, 40, 43, 45, 46, 47, 50, 52, 53, 54, 57, 60, 61, 62, 64, 65, 66, 69, 72, 73, 74, 76, 77, 78, 81, 84, 85, 86, 88, 89, 90, 93, 95, 96, 97, 100, 102, 103, 104, 107, 109, 110, 111, 114, 117, 118, 119, 122, 124, 125, 126, 129, 131, 132, 135, 137, 138, 139, 142, 144, 145, 146, 149, 151, 152, 155, 157, 158, 159, 160, 162, 164, 165, 168, 171, 172, 173, 176, 178, 179, 180, 183, 185, 186, 189, 191, 192], "summary": {"covered_lines": 108, "num_statements": 108, "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_input_utils.py": {"executed_lines": [1, 3, 5, 8, 9, 10, 13, 14, 15, 18, 21, 22, 23, 26, 29, 30, 31, 34, 35, 36, 37, 39, 40, 42, 43, 44, 47, 50, 51, 52, 53, 55, 56, 57, 60, 61, 64, 65, 66, 67, 70, 71, 72, 73, 75, 76, 78, 79, 81, 82, 83, 85, 88, 89, 90, 91, 93, 96, 97, 98, 99, 101, 102], "summary": {"covered_lines": 63, "num_statements": 64, "percent_covered": 98.4375, "percent_covered_display": "98", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [94], "excluded_lines": [], "functions": {"test_timed_input_no_timeout_reads_stdin": {"executed_lines": [9, 10], "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_timed_input_dispatches_windows": {"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": []}, "test_timed_input_dispatches_posix": {"executed_lines": [22, 23, 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": []}, "test_timed_input_posix_fileno_fallback": {"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_timed_input_posix_returns_line_when_ready": {"executed_lines": [35, 36, 39, 42, 43, 44, 47], "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_timed_input_posix_returns_line_when_ready.DummyStdin.fileno": {"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_timed_input_posix_returns_line_when_ready.DummyStdin.readline": {"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": []}, "test_timed_input_posix_raises_timeout": {"executed_lines": [51, 52, 55, 56, 57, 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": []}, "test_timed_input_posix_raises_timeout.DummyStdin.fileno": {"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_timed_input_windows_fallback_when_msvcrt_missing": {"executed_lines": [65, 66, 67], "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_timed_input_windows_handles_backspace_and_enter": {"executed_lines": [71, 72, 75, 78, 81, 82, 83, 85], "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_timed_input_windows_handles_backspace_and_enter.DummyMSVCRT.__init__": {"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_timed_input_windows_handles_backspace_and_enter.DummyMSVCRT.kbhit": {"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": []}, "test_timed_input_windows_handles_backspace_and_enter.DummyMSVCRT.getwche": {"executed_lines": [79], "summary": {"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_timed_input_windows_raises_timeout": {"executed_lines": [89, 90, 93, 96, 97, 98, 99, 101, 102], "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_timed_input_windows_raises_timeout.DummyMSVCRT.kbhit": {"executed_lines": [91], "summary": {"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_timed_input_windows_raises_timeout.DummyMSVCRT.getwche": {"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": []}, "": {"executed_lines": [1, 3, 5, 8, 13, 21, 29, 34, 50, 64, 70, 88], "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": {"test_timed_input_posix_returns_line_when_ready.DummyStdin": {"executed_lines": [37, 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": []}, "test_timed_input_posix_raises_timeout.DummyStdin": {"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_timed_input_windows_handles_backspace_and_enter.DummyMSVCRT": {"executed_lines": [73, 76, 79], "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_timed_input_windows_raises_timeout.DummyMSVCRT": {"executed_lines": [91], "summary": {"covered_lines": 1, "num_statements": 2, "percent_covered": 50.0, "percent_covered_display": "50", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [94], "excluded_lines": []}, "": {"executed_lines": [1, 3, 5, 8, 9, 10, 13, 14, 15, 18, 21, 22, 23, 26, 29, 30, 31, 34, 35, 36, 39, 42, 43, 44, 47, 50, 51, 52, 55, 56, 57, 60, 61, 64, 65, 66, 67, 70, 71, 72, 75, 78, 81, 82, 83, 85, 88, 89, 90, 93, 96, 97, 98, 99, 101, 102], "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_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, 7, 8, 10, 16, 17, 18, 19, 20, 21, 23, 24, 27, 28, 29, 30, 31, 37, 38, 40, 41, 48, 50, 51, 52, 53, 54, 55, 58, 59, 60, 61, 64, 65, 66, 67, 68, 69, 70, 71, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 87, 88, 94, 95, 98, 99, 102, 103, 107, 108, 109, 110, 111, 114, 115, 116, 117, 118, 119, 120, 121, 122, 125, 126, 127, 133, 135, 136, 137, 138, 140, 143, 145, 146, 147, 148, 149, 150, 151, 154, 155, 156, 162, 164, 165, 166, 167, 168, 170, 171, 173, 174, 177, 178, 179, 185, 187, 188, 189, 190, 191, 193, 194, 196, 197, 200, 201, 202, 207, 208, 209, 211, 212, 213, 214, 216, 217, 218, 221, 222, 223, 224, 225, 235, 236, 238, 239, 240, 241, 242, 243, 246, 247, 248, 250, 251, 255, 256, 258], "summary": {"covered_lines": 154, "num_statements": 154, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"_setup_profile": {"executed_lines": [28, 29, 30, 31, 37, 38, 40, 41, 48, 50, 51, 52, 53, 54, 55, 58, 59, 60, 61], "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": [65, 66, 67, 68, 69, 70, 71], "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": [75, 76, 77, 78, 79, 80, 81, 82, 83, 87, 88, 94, 95, 98, 99], "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": [103, 107, 108, 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_vault_kdf_migration": {"executed_lines": [115, 116, 117, 118, 119, 120, 121, 122], "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_derive_seed_key_argon2_uses_configured_time_cost": {"executed_lines": [126, 127, 133, 135, 140, 143, 145, 146, 147, 148, 149, 150, 151], "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_derive_seed_key_argon2_uses_configured_time_cost.fake_argon2": {"executed_lines": [136, 137, 138], "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_derive_seed_key_pbkdf2_respects_iteration_override": {"executed_lines": [155, 156, 162, 164, 170, 171, 173, 174], "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_derive_seed_key_pbkdf2_respects_iteration_override.fake_pbkdf2": {"executed_lines": [165, 166, 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": []}, "test_derive_seed_key_pbkdf2_enforces_policy_floor": {"executed_lines": [178, 179, 185, 187, 193, 194, 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_derive_seed_key_pbkdf2_enforces_policy_floor.fake_pbkdf2": {"executed_lines": [188, 189, 190, 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": []}, "test_tampered_kdf_wrapper_payload_is_rejected": {"executed_lines": [201, 202, 207, 208, 209, 211, 212, 213, 214, 216, 217, 218], "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_setup_encryption_manager_rejects_wrong_argon2_params": {"executed_lines": [222, 223, 224, 225, 235, 236, 238, 239, 240, 241, 242, 243, 246, 247, 248, 250, 251, 255, 256, 258], "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, 6, 7, 8, 10, 16, 17, 18, 19, 20, 21, 23, 24, 27, 64, 74, 102, 114, 125, 154, 177, 200, 221], "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, 7, 8, 10, 16, 17, 18, 19, 20, 21, 23, 24, 27, 28, 29, 30, 31, 37, 38, 40, 41, 48, 50, 51, 52, 53, 54, 55, 58, 59, 60, 61, 64, 65, 66, 67, 68, 69, 70, 71, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 87, 88, 94, 95, 98, 99, 102, 103, 107, 108, 109, 110, 111, 114, 115, 116, 117, 118, 119, 120, 121, 122, 125, 126, 127, 133, 135, 136, 137, 138, 140, 143, 145, 146, 147, 148, 149, 150, 151, 154, 155, 156, 162, 164, 165, 166, 167, 168, 170, 171, 173, 174, 177, 178, 179, 185, 187, 188, 189, 190, 191, 193, 194, 196, 197, 200, 201, 202, 207, 208, 209, 211, 212, 213, 214, 216, 217, 218, 221, 222, 223, 224, 225, 235, 236, 238, 239, 240, 241, 242, 243, 246, 247, 248, 250, 251, 255, 256, 258], "summary": {"covered_lines": 154, "num_statements": 154, "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_validation_utils.py": {"executed_lines": [1, 2, 3, 4, 7, 9, 18, 20, 23, 26, 28, 32, 35, 37, 41, 44, 47, 51, 54, 57, 58, 59, 62], "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_validate_totp_secret_exception": {"executed_lines": [20, 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_validate_ssh_key_pair_exception": {"executed_lines": [28, 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": []}, "test_validate_pgp_private_key_exception": {"executed_lines": [37, 41], "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_nostr_keys_exception": {"executed_lines": [47, 51], "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_phrase_exception": {"executed_lines": [57, 58, 59, 62], "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, 7, 9, 18, 26, 35, 44, 54], "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, 7, 9, 18, 20, 23, 26, 28, 32, 35, 37, 41, 44, 47, 51, 54, 57, 58, 59, 62], "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_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, 32, 33, 34, 36, 37, 38, 40, 41, 42], "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": [], "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": []}, "test_access_after_wipe_raises_error": {"executed_lines": [33, 34, 36, 37, 38, 40, 41, 42], "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, 4, 6, 8, 11, 18, 23, 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, 8, 11, 12, 13, 14, 15, 18, 19, 20, 23, 24, 25, 26, 27, 28, 29, 32, 33, 34, 36, 37, 38, 40, 41, 42], "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": []}}}, "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_entry_validation.py": {"executed_lines": [1, 2, 3, 4, 7, 9, 10, 11, 12, 13, 16, 17, 19, 20, 21, 22, 23, 26, 79, 84, 89, 90, 91, 92, 94, 97, 98, 100, 101, 104, 105, 107], "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": {"entry_manager": {"executed_lines": [19, 20, 21, 22, 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": []}, "test_modify_entry_invalid_fields": {"executed_lines": [84, 89, 90, 91, 92, 94, 97, 98, 100, 101, 104, 105, 107], "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, 7, 9, 10, 11, 12, 13, 16, 17, 26, 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": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 7, 9, 10, 11, 12, 13, 16, 17, 19, 20, 21, 22, 23, 26, 79, 84, 89, 90, 91, 92, 94, 97, 98, 100, 101, 104, 105, 107], "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_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, 15, 17, 18, 19, 20, 21, 22, 25, 31, 32, 33, 37], "summary": {"covered_lines": 23, "num_statements": 91, "percent_covered": 25.274725274725274, "percent_covered_display": "25", "missing_lines": 68, "excluded_lines": 0}, "missing_lines": [26, 27, 28, 39, 43, 44, 45, 46, 47, 48, 49, 55, 56, 57, 58, 59, 62, 63, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 82, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 97, 98, 99, 100, 101, 102, 105, 106, 107, 108, 109, 111, 112, 114, 115, 116, 118, 120, 121, 122, 123, 124, 125, 126, 128, 129], "excluded_lines": [], "functions": {"_relays_from_env": {"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": [26, 27, 28], "excluded_lines": []}, "test_nostr_index_size_limits": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 65, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 65, "excluded_lines": 0}, "missing_lines": [39, 43, 44, 45, 46, 47, 48, 49, 55, 56, 57, 58, 59, 62, 63, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 82, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 97, 98, 99, 100, 101, 102, 105, 106, 107, 108, 109, 111, 112, 114, 115, 116, 118, 120, 121, 122, 123, 124, 125, 126, 128, 129], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 13, 15, 17, 18, 19, 20, 21, 22, 25, 31, 32, 33, 37], "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, 9, 11, 13, 15, 17, 18, 19, 20, 21, 22, 25, 31, 32, 33, 37], "summary": {"covered_lines": 23, "num_statements": 91, "percent_covered": 25.274725274725274, "percent_covered_display": "25", "missing_lines": 68, "excluded_lines": 0}, "missing_lines": [26, 27, 28, 39, 43, 44, 45, 46, 47, 48, 49, 55, 56, 57, 58, 59, 62, 63, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 82, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 97, 98, 99, 100, 101, 102, 105, 106, 107, 108, 109, 111, 112, 114, 115, 116, 118, 120, 121, 122, 123, 124, 125, 126, 128, 129], "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, 18, 19, 20, 21, 22, 23, 26, 27, 28, 52, 58, 83, 84, 85, 162, 163, 164], "summary": {"covered_lines": 31, "num_statements": 156, "percent_covered": 19.871794871794872, "percent_covered_display": "20", "missing_lines": 125, "excluded_lines": 0}, "missing_lines": [29, 33, 34, 37, 38, 43, 44, 45, 46, 47, 48, 49, 53, 54, 55, 59, 60, 61, 62, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 89, 90, 91, 93, 94, 95, 96, 97, 98, 100, 101, 108, 109, 112, 119, 121, 122, 124, 125, 126, 127, 129, 130, 137, 139, 140, 141, 142, 143, 144, 145, 147, 148, 149, 151, 152, 153, 154, 155, 156, 158, 159, 166, 167, 168, 170, 171, 172, 173, 174, 175, 176, 177, 179, 180, 187, 189, 192, 199, 201, 202, 204, 205, 212, 214, 215, 222, 223, 229, 231, 234, 236, 237, 239, 240, 247, 249, 250, 251, 252, 253, 254, 255, 257, 258, 261, 263, 264, 265], "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": [29, 33, 34, 37, 38, 43, 44, 45, 46, 47, 48, 49], "excluded_lines": []}, "_relays_from_env": {"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": [53, 54, 55], "excluded_lines": []}, "_init_pm_for_real_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": [59, 60, 61, 62, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80], "excluded_lines": []}, "test_account_roundtrip_sync_delete_restore_real_relays": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 42, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 42, "excluded_lines": 0}, "missing_lines": [89, 90, 91, 93, 94, 95, 96, 97, 98, 100, 101, 108, 109, 112, 119, 121, 122, 124, 125, 126, 127, 129, 130, 137, 139, 140, 141, 142, 143, 144, 145, 147, 148, 149, 151, 152, 153, 154, 155, 156, 158, 159], "excluded_lines": []}, "test_real_relays_with_portable_export_import_roundtrip": {"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": [166, 167, 168, 170, 171, 172, 173, 174, 175, 176, 177, 179, 180, 187, 189, 192, 199, 201, 202, 204, 205, 212, 214, 215, 222, 223, 229, 231, 234, 236, 237, 239, 240, 247, 249, 250, 251, 252, 253, 254, 255, 257, 258, 261, 263, 264, 265], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 14, 16, 17, 18, 19, 20, 21, 22, 23, 26, 27, 28, 52, 58, 83, 84, 85, 162, 163, 164], "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": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 14, 16, 17, 18, 19, 20, 21, 22, 23, 26, 27, 28, 52, 58, 83, 84, 85, 162, 163, 164], "summary": {"covered_lines": 31, "num_statements": 156, "percent_covered": 19.871794871794872, "percent_covered_display": "20", "missing_lines": 125, "excluded_lines": 0}, "missing_lines": [29, 33, 34, 37, 38, 43, 44, 45, 46, 47, 48, 49, 53, 54, 55, 59, 60, 61, 62, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 89, 90, 91, 93, 94, 95, 96, 97, 98, 100, 101, 108, 109, 112, 119, 121, 122, 124, 125, 126, 127, 129, 130, 137, 139, 140, 141, 142, 143, 144, 145, 147, 148, 149, 151, 152, 153, 154, 155, 156, 158, 159, 166, 167, 168, 170, 171, 172, 173, 174, 175, 176, 177, 179, 180, 187, 189, 192, 199, 201, 202, 204, 205, 212, 214, 215, 222, 223, 229, 231, 234, 236, 237, 239, 240, 247, 249, 250, 251, 252, 253, 254, 255, 257, 258, 261, 263, 264, 265], "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, 10, 12, 14, 15, 18, 19, 20, 21, 22, 23, 24, 25, 26, 29, 30, 31, 33, 34, 37, 38, 39, 40, 42, 43, 45, 48, 49, 51, 54, 57, 58, 59, 61, 62, 63, 65, 66, 68, 71, 72, 73, 74, 75, 76, 84, 88, 89, 90, 93, 98, 99, 100, 101, 102, 104, 105, 106], "summary": {"covered_lines": 66, "num_statements": 69, "percent_covered": 95.65217391304348, "percent_covered_display": "96", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [46, 52, 55], "excluded_lines": [], "functions": {"test_prepare_snapshot_roundtrip": {"executed_lines": [19, 20, 21, 22, 23, 24, 25, 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": []}, "DummyEvent.__init__": {"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": []}, "DummyEvent.content": {"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": []}, "DummyClient.__init__": {"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": []}, "DummyClient.add_relays": {"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": []}, "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": [46], "excluded_lines": []}, "DummyClient.connect": {"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": []}, "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": [52], "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": [55], "excluded_lines": []}, "DummyClient.fetch_events": {"executed_lines": [58, 59, 61, 62, 65, 68], "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": [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": []}, "DummyClient.fetch_events.E.to_vec": {"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": []}, "test_fetch_latest_snapshot": {"executed_lines": [72, 73, 74, 75, 76, 84, 88, 89, 90, 93, 98, 99, 100, 101, 102, 104, 105, 106], "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, 10, 12, 14, 15, 18, 29, 30, 33, 37, 38, 42, 45, 48, 51, 54, 57, 71], "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": {"DummyEvent": {"executed_lines": [31, 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": []}, "DummyClient": {"executed_lines": [39, 40, 43, 49, 58, 59, 61, 62, 65, 68], "summary": {"covered_lines": 10, "num_statements": 13, "percent_covered": 76.92307692307692, "percent_covered_display": "77", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [46, 52, 55], "excluded_lines": []}, "DummyClient.fetch_events.E": {"executed_lines": [63, 66], "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, 12, 14, 15, 18, 19, 20, 21, 22, 23, 24, 25, 26, 29, 30, 33, 37, 38, 42, 45, 48, 51, 54, 57, 71, 72, 73, 74, 75, 76, 84, 88, 89, 90, 93, 98, 99, 100, 101, 102, 104, 105, 106], "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_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_profile_recovery_flow.py": {"executed_lines": [1, 2, 4, 5, 6, 9, 10, 11, 12, 16, 17, 19, 24, 26, 28, 29, 30, 31, 33, 37, 39, 40, 43, 44, 45, 46, 47, 49, 54, 60, 63, 66, 67, 68, 69, 72, 73, 75, 81, 83, 84, 85, 86, 88], "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_add_new_fingerprint_switch_existing_selects_profile": {"executed_lines": [10, 11, 12, 16, 17, 19, 24, 26, 28, 33, 37, 39, 40], "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_add_new_fingerprint_switch_existing_selects_profile.fake_select": {"executed_lines": [29, 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_select_fingerprint_returns_false_on_unlock_failure": {"executed_lines": [44, 45, 46, 47, 49, 54, 60], "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_recover_profile_with_blank_index_rejects_mismatched_seed": {"executed_lines": [66, 67, 68, 69, 72, 73, 75, 81, 83, 84, 85, 86, 88], "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, 5, 6, 9, 43, 63], "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, 6, 9, 10, 11, 12, 16, 17, 19, 24, 26, 28, 29, 30, 31, 33, 37, 39, 40, 43, 44, 45, 46, 47, 49, 54, 60, 63, 66, 67, 68, 69, 72, 73, 75, 81, 83, 84, 85, 86, 88], "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_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_release_integrity_utils.py": {"executed_lines": [1, 3, 10, 11, 12, 14, 16, 17, 18, 21, 22, 23, 24, 25, 26, 31, 32, 33, 34, 35, 36, 38, 40, 41, 44, 45, 46, 47, 48, 49, 50, 52, 54, 55, 56], "summary": {"covered_lines": 35, "num_statements": 36, "percent_covered": 97.22222222222223, "percent_covered_display": "97", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [28], "excluded_lines": [], "functions": {"test_generate_checksums_sorts_entries": {"executed_lines": [11, 12, 14, 16, 17, 18], "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_checksum_line_rejects_invalid_digest": {"executed_lines": [22, 23, 24, 25, 26], "summary": {"covered_lines": 5, "num_statements": 6, "percent_covered": 83.33333333333333, "percent_covered_display": "83", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [28], "excluded_lines": []}, "test_verify_checksums_success": {"executed_lines": [32, 33, 34, 35, 36, 38, 40, 41], "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_verify_checksums_detects_mismatch": {"executed_lines": [45, 46, 47, 48, 49, 50, 52, 54, 55, 56], "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, 10, 21, 31, 44], "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, 10, 11, 12, 14, 16, 17, 18, 21, 22, 23, 24, 25, 26, 31, 32, 33, 34, 35, 36, 38, 40, 41, 44, 45, 46, 47, 48, 49, 50, 52, 54, 55, 56], "summary": {"covered_lines": 35, "num_statements": 36, "percent_covered": 97.22222222222223, "percent_covered_display": "97", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [28], "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, 22, 23, 26, 27, 28, 30, 31, 33, 34, 35, 36, 37, 39, 47, 52, 55, 56, 57, 58, 61, 64, 69, 72, 73, 74, 77, 78, 81, 82, 83, 86, 87, 88, 89, 92, 93, 94, 95, 98, 99, 100, 101, 103, 104, 105, 106, 107, 110, 111, 112, 113, 114, 115, 117, 118, 119, 120, 122, 123, 125, 128, 129, 130, 131, 133, 134, 136, 137, 138, 139, 140, 142, 143, 145, 146, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 166, 167, 168, 170, 171, 173, 174, 177, 178, 179, 180, 182, 185, 186, 187, 188, 190, 191, 194, 195, 196, 197, 198, 200, 201, 203, 204, 205, 207, 208, 209, 210, 212, 213, 216, 217, 218, 219, 220, 221, 225, 226, 227, 228, 230, 231, 234, 235, 236, 237, 238, 242, 243, 244, 245, 247, 248, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 265], "summary": {"covered_lines": 176, "num_statements": 177, "percent_covered": 99.43502824858757, "percent_covered_display": "99", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [183], "excluded_lines": [], "functions": {"setup_pm": {"executed_lines": [27, 28, 30, 31, 33, 34, 35, 36, 37, 39, 47, 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": []}, "test_relay_and_profile_actions": {"executed_lines": [56, 57, 58, 61, 64, 69, 72, 73, 74, 77, 78, 81, 82, 83, 86, 87, 88, 89, 92, 93, 94, 95], "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": [99, 100, 101, 103, 104, 105, 106, 107], "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": [111, 112, 113, 114, 115, 117, 118, 119, 120, 122, 123, 125], "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": [129, 130, 131, 133, 136, 137, 138, 139, 140, 142, 143, 145, 146], "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": [134], "summary": {"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": [150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 166, 167, 168, 170, 171, 173, 174], "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_missing_handler_is_graceful": {"executed_lines": [178, 179, 180, 182, 185, 186, 187, 188, 190, 191], "summary": {"covered_lines": 10, "num_statements": 11, "percent_covered": 90.9090909090909, "percent_covered_display": "91", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [183], "excluded_lines": []}, "test_settings_lock_unlock_cancelled_is_graceful": {"executed_lines": [195, 196, 197, 198, 200, 203, 204, 205, 207, 208, 209, 210, 212, 213], "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_settings_lock_unlock_cancelled_is_graceful.unlock_fail": {"executed_lines": [201], "summary": {"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_profiles_submenu_action_error_is_graceful": {"executed_lines": [217, 218, 219, 220, 221, 225, 226, 227, 228, 230, 231], "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_settings_export_failure_message": {"executed_lines": [235, 236, 237, 238, 242, 243, 244, 245, 247, 248], "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_settings_import_missing_path_message": {"executed_lines": [252, 253, 254, 255, 259, 260, 261, 262, 264, 265], "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, 6, 7, 8, 10, 12, 14, 16, 17, 18, 19, 20, 21, 22, 23, 26, 55, 98, 110, 128, 149, 177, 194, 216, 234, 251], "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": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 14, 16, 17, 18, 19, 20, 21, 22, 23, 26, 27, 28, 30, 31, 33, 34, 35, 36, 37, 39, 47, 52, 55, 56, 57, 58, 61, 64, 69, 72, 73, 74, 77, 78, 81, 82, 83, 86, 87, 88, 89, 92, 93, 94, 95, 98, 99, 100, 101, 103, 104, 105, 106, 107, 110, 111, 112, 113, 114, 115, 117, 118, 119, 120, 122, 123, 125, 128, 129, 130, 131, 133, 134, 136, 137, 138, 139, 140, 142, 143, 145, 146, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 166, 167, 168, 170, 171, 173, 174, 177, 178, 179, 180, 182, 185, 186, 187, 188, 190, 191, 194, 195, 196, 197, 198, 200, 201, 203, 204, 205, 207, 208, 209, 210, 212, 213, 216, 217, 218, 219, 220, 221, 225, 226, 227, 228, 230, 231, 234, 235, 236, 237, 238, 242, 243, 244, 245, 247, 248, 251, 252, 253, 254, 255, 259, 260, 261, 262, 264, 265], "summary": {"covered_lines": 176, "num_statements": 177, "percent_covered": 99.43502824858757, "percent_covered_display": "99", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [183], "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_display.py": {"executed_lines": [1, 2, 4, 7, 8, 9, 12, 13, 14, 17, 18, 19, 22, 23, 24, 25, 27, 34, 35, 36, 39, 40, 41, 42, 44, 48, 49, 50, 53, 56, 62, 63, 64, 68, 70, 71, 72, 75, 76, 80, 81, 83, 85, 86, 89, 90, 95, 96, 101, 102, 105, 106, 111, 115], "summary": {"covered_lines": 54, "num_statements": 54, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"_NamedFingerprintManager.get_name": {"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_format_profile_returns_custom_name": {"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_format_profile_returns_raw_when_name_missing": {"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_clear_and_print_fingerprint_parent_child_breadcrumb": {"executed_lines": [23, 24, 25, 27, 34, 35, 36], "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_clear_and_print_profile_chain_with_breadcrumb": {"executed_lines": [40, 41, 42, 44, 48, 49, 50], "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_clear_header_with_notification_invalid_level_falls_back_to_info": {"executed_lines": [56, 62, 63, 64, 68, 70, 71, 72], "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_clear_header_with_notification_handles_queue_empty": {"executed_lines": [76, 80, 81, 83, 85, 86], "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_pause_returns_early_when_not_tty": {"executed_lines": [90, 95, 96, 101, 102], "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_pause_swallows_eoferror": {"executed_lines": [106, 111, 115], "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, 7, 8, 12, 17, 22, 39, 53, 75, 89, 105], "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": {"_NamedFingerprintManager": {"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": []}, "": {"executed_lines": [1, 2, 4, 7, 8, 12, 13, 14, 17, 18, 19, 22, 23, 24, 25, 27, 34, 35, 36, 39, 40, 41, 42, 44, 48, 49, 50, 53, 56, 62, 63, 64, 68, 70, 71, 72, 75, 76, 80, 81, 83, 85, 86, 89, 90, 95, 96, 101, 102, 105, 106, 111, 115], "summary": {"covered_lines": 53, "num_statements": 53, "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, 14, 15, 17, 21, 24, 27, 28, 38, 39, 40, 41, 44, 45, 55, 56, 57, 58, 59], "summary": {"covered_lines": 24, "num_statements": 25, "percent_covered": 96.0, "percent_covered_display": "96", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [22], "excluded_lines": [], "functions": {"_get_portalocker_lock": {"executed_lines": [14, 15, 17, 21, 24], "summary": {"covered_lines": 5, "num_statements": 6, "percent_covered": 83.33333333333333, "percent_covered_display": "83", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [22], "excluded_lines": []}, "exclusive_lock": {"executed_lines": [38, 39, 40, 41], "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": []}, "shared_lock": {"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, 3, 4, 5, 6, 7, 10, 27, 28, 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": []}}, "classes": {"": {"executed_lines": [1, 3, 4, 5, 6, 7, 10, 14, 15, 17, 21, 24, 27, 28, 38, 39, 40, 41, 44, 45, 55, 56, 57, 58, 59], "summary": {"covered_lines": 24, "num_statements": 25, "percent_covered": 96.0, "percent_covered_display": "96", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [22], "excluded_lines": []}}}, "src/utils/fingerprint.py": {"executed_lines": [3, 11, 12, 13, 16, 19, 30, 32, 35, 38, 39, 41], "summary": {"covered_lines": 11, "num_statements": 14, "percent_covered": 78.57142857142857, "percent_covered_display": "79", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [42, 43, 44], "excluded_lines": [], "functions": {"generate_fingerprint": {"executed_lines": [30, 32, 35, 38, 39, 41], "summary": {"covered_lines": 6, "num_statements": 9, "percent_covered": 66.66666666666667, "percent_covered_display": "67", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [42, 43, 44], "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, 35, 38, 39, 41], "summary": {"covered_lines": 11, "num_statements": 14, "percent_covered": 78.57142857142857, "percent_covered_display": "79", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [42, 43, 44], "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": [1, 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, 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], "summary": {"covered_lines": 76, "num_statements": 77, "percent_covered": 98.7012987012987, "percent_covered_display": "99", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [59], "excluded_lines": [], "functions": {"what": {"executed_lines": [27, 28, 29, 30, 31, 32, 34, 35, 36, 37, 38, 39, 40, 42, 43, 44], "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_jpeg": {"executed_lines": [56, 57, 58], "summary": {"covered_lines": 3, "num_statements": 4, "percent_covered": 75.0, "percent_covered_display": "75", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [59], "excluded_lines": []}, "test_png": {"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": []}, "test_gif": {"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_tiff": {"executed_lines": [85, 86], "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_rgb": {"executed_lines": [94, 95], "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_pbm": {"executed_lines": [103, 104], "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_pgm": {"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_ppm": {"executed_lines": [121, 122], "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_rast": {"executed_lines": [130, 131], "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_xbm": {"executed_lines": [139, 140], "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_bmp": {"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": []}, "test_webp": {"executed_lines": [157, 158], "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_exr": {"executed_lines": [166, 167], "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, 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], "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": {"": {"executed_lines": [1, 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, 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], "summary": {"covered_lines": 76, "num_statements": 77, "percent_covered": 98.7012987012987, "percent_covered_display": "99", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [59], "excluded_lines": []}}}, "src/utils/input_utils.py": {"executed_lines": [1, 2, 3, 4, 5, 7, 8, 9, 10, 13, 15, 16, 17, 18, 19, 20, 21, 22, 25, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 42, 43, 44, 45, 48, 50, 51, 52, 54, 55, 58], "summary": {"covered_lines": 40, "num_statements": 40, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 4}, "missing_lines": [], "excluded_lines": [9, 10, 27, 28], "functions": {"_timed_input_posix": {"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": []}, "_timed_input_windows": {"executed_lines": [27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 42, 43, 44, 45], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2}, "missing_lines": [], "excluded_lines": [27, 28]}, "timed_input": {"executed_lines": [50, 51, 52, 54, 55, 58], "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, 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, 15, 16, 17, 18, 19, 20, 21, 22, 25, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 42, 43, 44, 45, 48, 50, 51, 52, 54, 55, 58], "summary": {"covered_lines": 40, "num_statements": 40, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 4}, "missing_lines": [], "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, 36, 37, 38, 41, 43, 44, 45, 46, 47, 48, 51, 53, 54, 55, 56, 57, 58, 59, 60, 63, 65, 66, 67, 68, 69], "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": {"validate_totp_secret": {"executed_lines": [15, 16, 17, 18, 19, 20], "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": []}, "validate_ssh_key_pair": {"executed_lines": [25, 26, 27, 35, 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": []}, "validate_pgp_private_key": {"executed_lines": [43, 44, 45, 46, 47, 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": []}, "validate_nostr_keys": {"executed_lines": [53, 54, 55, 56, 57, 58, 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": []}, "validate_seed_phrase": {"executed_lines": [65, 66, 67, 68, 69], "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, 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, 36, 37, 38, 41, 43, 44, 45, 46, 47, 48, 51, 53, 54, 55, 56, 57, 58, 59, 60, 63, 65, 66, 67, 68, 69], "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/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, 28, 29, 31, 33, 34, 35, 36, 38, 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": {"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, 28, 29], "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": []}, "InMemorySecret.wipe": {"executed_lines": [33, 34, 35, 36], "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": [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": []}, "": {"executed_lines": [1, 3, 4, 10, 11, 17, 25, 31, 38], "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, 28, 29, 33, 34, 35, 36, 40], "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, 10, 11, 17, 25, 31, 38], "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, 115, 116, 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, 115, 116, 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, 115, 116, 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, 19, 20, 21, 22, 25, 26, 29, 31, 34, 42, 43, 44, 45, 50, 51, 52, 53, 54, 57, 61, 62, 64, 65, 66, 67, 68, 69, 70, 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, 110, 111, 113, 116, 118, 119, 120, 121, 122, 123], "summary": {"covered_lines": 67, "num_statements": 75, "percent_covered": 89.33333333333333, "percent_covered_display": "89", "missing_lines": 8, "excluded_lines": 6}, "missing_lines": [15, 46, 47, 48, 49, 63, 85, 89], "excluded_lines": [21, 22, 25, 102, 103, 104], "functions": {"format_profile": {"executed_lines": [14, 16, 17, 18, 19, 20, 21, 22, 25, 26], "summary": {"covered_lines": 7, "num_statements": 8, "percent_covered": 87.5, "percent_covered_display": "88", "missing_lines": 1, "excluded_lines": 3}, "missing_lines": [15], "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": [42, 43, 44, 45, 50, 51, 52, 53, 54], "summary": {"covered_lines": 9, "num_statements": 13, "percent_covered": 69.23076923076923, "percent_covered_display": "69", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [46, 47, 48, 49], "excluded_lines": []}, "clear_and_print_profile_chain": {"executed_lines": [61, 62, 64, 65, 66, 67, 68, 69, 70], "summary": {"covered_lines": 9, "num_statements": 10, "percent_covered": 90.0, "percent_covered_display": "90", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [63], "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, 110, 111, 113], "summary": {"covered_lines": 24, "num_statements": 26, "percent_covered": 92.3076923076923, "percent_covered_display": "92", "missing_lines": 2, "excluded_lines": 3}, "missing_lines": [85, 89], "excluded_lines": [102, 103, 104]}, "pause": {"executed_lines": [118, 119, 120, 121, 122, 123], "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, 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, 19, 20, 21, 22, 25, 26, 29, 31, 34, 42, 43, 44, 45, 50, 51, 52, 53, 54, 57, 61, 62, 64, 65, 66, 67, 68, 69, 70, 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, 110, 111, 113, 116, 118, 119, 120, 121, 122, 123], "summary": {"covered_lines": 67, "num_statements": 75, "percent_covered": 89.33333333333333, "percent_covered_display": "89", "missing_lines": 8, "excluded_lines": 6}, "missing_lines": [15, 46, 47, 48, 49, 63, 85, 89], "excluded_lines": [21, 22, 25, 102, 103, 104]}}}}, "totals": {"covered_lines": 18851, "num_statements": 21869, "percent_covered": 86.19964333074215, "percent_covered_display": "86", "missing_lines": 3018, "excluded_lines": 236}}