diff --git a/src/shipit_uplift/shipit_uplift/coverage.py b/src/shipit_uplift/shipit_uplift/coverage.py index b2eab08832..6657040cb5 100644 --- a/src/shipit_uplift/shipit_uplift/coverage.py +++ b/src/shipit_uplift/shipit_uplift/coverage.py @@ -260,14 +260,14 @@ def get_pushes_changesets(push_id, push_id_end): def get_changeset_data(changeset): - if changeset not in changeset_cache: + if changeset[:12] not in changeset_cache: r = requests.get('https://hg.mozilla.org/mozilla-central/json-rev/%s' % changeset) rev = r.json() push_id = int(rev['pushid']) get_pushes(push_id) - return changeset_cache[changeset] + return changeset_cache[changeset[:12]] def get_coverage_build(changeset): diff --git a/src/shipit_uplift/tests/conftest.py b/src/shipit_uplift/tests/conftest.py index 2e538c3d59..ba3925d9b6 100644 --- a/src/shipit_uplift/tests/conftest.py +++ b/src/shipit_uplift/tests/conftest.py @@ -118,3 +118,27 @@ def header_bot(app): ''' from shipit_uplift.config import SCOPES_BOT return hawk_header(SCOPES_BOT) + + +@pytest.fixture(scope='session') +def coverage_changeset_by_file(): + with open(os.path.join(FIXTURES_DIR, 'coverage_changeset_by_file.json')) as f: + changeset_by_file_info = json.load(f) + + for entry in changeset_by_file_info: + entry['data'] = {int(key): value for key, value in entry['data'].items()} + + return changeset_by_file_info + + +@pytest.fixture(scope='session') +def coverage_builds(): + paths = glob.glob(os.path.join(FIXTURES_DIR, 'coverage_build_*.json')) + builds = {'info': {}, 'summary': {}} + for path in sorted(paths): + with open(path) as f: + build_data = json.load(f) + builds['info'].update(build_data['info']) + builds['summary'].update(build_data['summary']) + + return builds diff --git a/src/shipit_uplift/tests/fixtures/coverage_build_33333.json b/src/shipit_uplift/tests/fixtures/coverage_build_33333.json new file mode 100644 index 0000000000..61652f0aa6 --- /dev/null +++ b/src/shipit_uplift/tests/fixtures/coverage_build_33333.json @@ -0,0 +1,34 @@ +{ + "info": { + "8a389e3576db8de5050999777d82aead0a8c62a9": { + "build_changeset": "474d58c9137360c0fa1c85cdd11e3313b33b7cad", + "diffs": [], + "git_build_changeset": "0d9139ed76e220465d06de7c4f6c2658115387a4", + "overall_cur": "59.62965", + "overall_prev": "59.62246" + }, + "6d6882f5e95d7a46da4f48d903766114a4a9cc06": { + "build_changeset": "474d58c9137360c0fa1c85cdd11e3313b33b7cad", + "diffs": [], + "git_build_changeset": "0d9139ed76e220465d06de7c4f6c2658115387a4", + "overall_cur": "59.62965", + "overall_prev": "59.62246" + } + }, + "summary": { + "8a389e3576db8de5050999777d82aead0a8c62a9": { + "build_changeset": "474d58c9137360c0fa1c85cdd11e3313b33b7cad", + "commit_added": 0, + "commit_covered": 0, + "overall_cur": "59.62965", + "overall_prev": "59.62246" + }, + "6d6882f5e95d7a46da4f48d903766114a4a9cc06": { + "build_changeset": "474d58c9137360c0fa1c85cdd11e3313b33b7cad", + "commit_added": 0, + "commit_covered": 0, + "overall_cur": "59.62965", + "overall_prev": "59.62246" + } + } +} diff --git a/src/shipit_uplift/tests/fixtures/coverage_build_33334.json b/src/shipit_uplift/tests/fixtures/coverage_build_33334.json new file mode 100644 index 0000000000..dcdeae05fb --- /dev/null +++ b/src/shipit_uplift/tests/fixtures/coverage_build_33334.json @@ -0,0 +1,62 @@ +{ + "info": { + "53d64a077a8ef3a34697c7aa3b0776d3e8d11539": { + "build_changeset": "474d58c9137360c0fa1c85cdd11e3313b33b7cad", + "diffs": [ + { + "changes": [ + {"coverage": "?", "line": 975}, + {"coverage": "?", "line": 976}, + {"coverage": "Y", "line": 978}, + {"coverage": "?", "line": 979}, + {"coverage": "?", "line": 980}, + {"coverage": "?", "line": 981}, + {"coverage": "Y", "line": 982}, + {"coverage": "Y", "line": 983} + ], + "name": "layout/base/ServoRestyleManager.cpp" + } + ], + "git_build_changeset": "0d9139ed76e220465d06de7c4f6c2658115387a4", + "overall_cur": "59.62965", + "overall_prev": "59.62246" + }, + "30d915de546242961f2f3ce4e1cfbee5ec9e54bb": { + "build_changeset": "474d58c9137360c0fa1c85cdd11e3313b33b7cad", + "diffs": [], + "git_build_changeset": "0d9139ed76e220465d06de7c4f6c2658115387a4", + "overall_cur": "59.62965", + "overall_prev": "59.62246" + }, + "3800f2c5af262050c8bddfd999efffb46afcb081": { + "build_changeset": "474d58c9137360c0fa1c85cdd11e3313b33b7cad", + "diffs": [], + "git_build_changeset": "0d9139ed76e220465d06de7c4f6c2658115387a4", + "overall_cur": "59.62965", + "overall_prev": "59.62246" + } + }, + "summary": { + "53d64a077a8ef3a34697c7aa3b0776d3e8d11539": { + "build_changeset": "474d58c9137360c0fa1c85cdd11e3313b33b7cad", + "commit_added": 3, + "commit_covered": 3, + "overall_cur": "59.62965", + "overall_prev": "59.62246" + }, + "30d915de546242961f2f3ce4e1cfbee5ec9e54bb": { + "build_changeset": "474d58c9137360c0fa1c85cdd11e3313b33b7cad", + "commit_added": 0, + "commit_covered": 0, + "overall_cur": "59.62965", + "overall_prev": "59.62246" + }, + "3800f2c5af262050c8bddfd999efffb46afcb081": { + "build_changeset": "474d58c9137360c0fa1c85cdd11e3313b33b7cad", + "commit_added": 0, + "commit_covered": 0, + "overall_cur": "59.62965", + "overall_prev": "59.62246" + } + } +} diff --git a/src/shipit_uplift/tests/fixtures/coverage_changeset_by_file.json b/src/shipit_uplift/tests/fixtures/coverage_changeset_by_file.json new file mode 100644 index 0000000000..b881521bdd --- /dev/null +++ b/src/shipit_uplift/tests/fixtures/coverage_changeset_by_file.json @@ -0,0 +1,3002 @@ +[ + { + "changeset": "53d64a077a8ef3a34697c7aa3b0776d3e8d11539", + "path": "layout/base/ServoRestyleManager.cpp", + "data": { + "36": 16889313, + "38": 37290455, + "42": 8670704, + "44": 19260498, + "45": 0, + "48": 13965601, + "49": 5294897, + "52": 8486770, + "54": 18761546, + "55": 13624158, + "56": 20418, + "57": 20418, + "58": 7916, + "60": 13839860, + "61": 467083, + "62": 0, + "63": 0, + "64": 898475, + "68": 13157075, + "69": 30902, + "72": 13126173, + "79": 89, + "82": 13125991, + "85": 88, + "86": 58, + "87": 28, + "88": 88, + "91": 13125903, + "94": 2, + "95": 1, + "97": 13125903, + "102": 28676884, + "103": 519500, + "104": 338065, + "105": 1756, + "106": 1756, + "108": 2814, + "109": 529, + "112": 336309, + "113": 156101, + "114": 338065, + "117": 4906023, + "118": 5137388, + "121": 5887214, + "123": 13373612, + "124": 15517627, + "130": 9630413, + "131": 6767194, + "132": 6767194, + "133": 2, + "136": 7, + "137": 4, + "139": 1, + "142": 2, + "143": 1, + "144": 2549208, + "146": 9630413, + "149": 5948794, + "151": 13530972, + "152": 2882921, + "153": 1202910, + "156": 6856962, + "158": 6856962, + "159": 3791089, + "163": 2765, + "165": 6615, + "168": 9380, + "171": 9380, + "174": 9380, + "178": 3850, + "179": 3850, + "180": 3850, + "182": 116, + "188": 6155, + "189": 930, + "190": 469, + "194": 6155, + "195": 3562, + "196": 969, + "197": 2054, + "200": 6489371, + "202": 13977939, + "203": 20474696, + "204": 2628, + "207": 10233655, + "208": 10233655, + "211": 2592, + "216": 7120, + "218": 6152, + "219": 3560, + "234": 3560, + "235": 3560, + "236": 77, + "237": 77, + "238": 31, + "239": 3560, + "240": 0, + "241": 0, + "242": 4562, + "249": 6152, + "250": 968, + "251": 2592, + "252": 3560, + "253": 17, + "254": 6, + "255": 5, + "256": 1941, + "257": 2592, + "261": 3560, + "262": 3560, + "263": 968, + "264": 968, + "266": 2592, + "269": 6152, + "270": 1558, + "271": 1947, + "272": 462, + "276": 470, + "278": 924, + "279": 932, + "281": 470, + "282": 472, + "284": 5184, + "285": 968, + "288": 3308, + "296": 6422, + "297": 2, + "298": 2, + "301": 4865, + "303": 8173, + "304": 392, + "305": 4674, + "307": 8, + "308": 8, + "309": 4, + "310": 4865, + "313": 304459, + "315": 608918, + "316": 381370, + "317": 495144, + "320": 495102, + "324": 728186, + "326": 1951474, + "327": 990204, + "333": 728186, + "335": 728186, + "342": 728186, + "343": 584202, + "344": 171159, + "349": 728186, + "350": 139667, + "351": 90652, + "354": 1083621, + "355": 166023, + "356": 63229, + "358": 1083621, + "359": 509, + "361": 281, + "362": 509, + "363": 2707, + "364": 985, + "365": 985, + "367": 228, + "369": 637534, + "370": 637534, + "371": 191447, + "372": 233084, + "375": 176183, + "377": 487655, + "378": 331919, + "379": 331919, + "382": 326803, + "387": 228824, + "388": 326803, + "390": 441215, + "394": 0, + "397": 441215, + "398": 980409, + "399": 441215, + "400": 228824, + "403": 32144, + "408": 56344, + "409": 44244, + "412": 41476, + "419": 69974, + "421": 97201, + "422": 253055, + "423": 125059, + "424": 125059, + "429": 55725, + "432": 6997439, + "434": 15162827, + "435": 905442, + "436": 905442, + "437": 597379, + "440": 16574751, + "441": 34603045, + "442": 24870182, + "443": 8337841, + "444": 2988188, + "447": 10174691, + "448": 7927450, + "449": 2870739, + "450": 7857325, + "453": 1260704, + "455": 3118502, + "456": 63524, + "457": 241179, + "458": 196429, + "459": 100439, + "460": 45435, + "462": 17398, + "464": 928899, + "465": 2189603, + "466": 2189603, + "467": 2189603, + "477": 8635680, + "484": 3972574, + "490": 11917722, + "491": 2331553, + "493": 1414878, + "495": 411465, + "497": 1601748, + "498": 840277, + "499": 579966, + "500": 260311, + "501": 1212339, + "502": 800874, + "505": 411465, + "509": 1190283, + "510": 800874, + "512": 800874, + "516": 693, + "517": 693, + "524": 351, + "525": 177, + "526": 9, + "527": 177, + "528": 168, + "531": 177, + "532": 168, + "533": 9, + "535": 351, + "536": 20, + "537": 16, + "538": 4, + "539": 389418, + "542": 289983, + "543": 810605, + "544": 0, + "545": 0, + "546": 0, + "547": 0, + "548": 550294, + "562": 1937000, + "566": 5994076, + "567": 2997038, + "568": 2996995, + "573": 44, + "575": 19, + "576": 25, + "577": 44, + "578": 1, + "581": 42, + "582": 18, + "583": 24, + "584": 42, + "585": 66, + "588": 18, + "589": 72, + "592": 48, + "597": 60, + "599": 66, + "600": 66, + "601": 90, + "602": 1060056, + "605": 910615, + "607": 2083597, + "609": 1497106, + "616": 8, + "617": 11, + "618": 0, + "621": 8, + "622": 5, + "623": 586494, + "626": 30077, + "631": 114182, + "632": 57091, + "633": 57091, + "636": 27014, + "637": 90231, + "638": 30077, + "641": 60154, + "643": 27014, + "644": 57091, + "647": 60154, + "648": 87168, + "649": 20825, + "650": 11857, + "651": 8968, + "653": 57091, + "654": 3657, + "655": 2329, + "656": 1328, + "658": 87168, + "659": 57091, + "662": 1937000, + "665": 4057076, + "666": 10928114, + "671": 5201219, + "672": 57091, + "673": 60154, + "674": 57091, + "675": 2997038, + "678": 1937000, + "681": 4057076, + "682": 1499932, + "683": 473547, + "684": 1497106, + "685": 586491, + "687": 2997038, + "688": 1937000, + "689": 2997038, + "703": 36330252, + "708": 1937308, + "715": 7054778, + "720": 2997362, + "721": 2997362, + "724": 1058383, + "726": 3487, + "728": 0, + "731": 1816, + "732": 5303, + "733": 3487, + "734": 42, + "736": 13, + "742": 8, + "745": 5240, + "746": 3445, + "747": 1650, + "749": 3461, + "750": 874, + "751": 874, + "752": 25, + "753": 13, + "756": 25, + "760": 849, + "761": 849, + "765": 1253, + "766": 1060054, + "769": 10850508, + "775": 22884602, + "776": 16867555, + "780": 15804192, + "781": 17383094, + "782": 23915680, + "785": 6017047, + "786": 6017047, + "787": 10850508, + "791": 27170239, + "792": 184, + "794": 79, + "798": 16867555, + "799": 1973371, + "800": 1973371, + "803": 16867555, + "804": 10302500, + "807": 10302500, + "808": 968381, + "809": 166570, + "810": 5730670, + "811": 9334119, + "813": 3603449, + "817": 24622288, + "818": 7358028, + "819": 813, + "820": 465, + "821": 348, + "822": 3770019, + "828": 27202629, + "829": 4555579, + "830": 1712015, + "837": 27718063, + "838": 2089164, + "839": 2089164, + "848": 14011450, + "849": 25778987, + "851": 9644808, + "854": 14778391, + "855": 4544736, + "856": 3155437, + "857": 4544736, + "858": 1228, + "859": 42, + "862": 24423199, + "863": 14778391, + "864": 3744284, + "865": 6489371, + "866": 6489371, + "868": 10233655, + "869": 3744284, + "873": 15400749, + "874": 9644808, + "876": 23044934, + "878": 14131174, + "879": 36336049, + "881": 5133583, + "882": 9644808, + "883": 9644808, + "885": 18276875, + "886": 2997362, + "887": 2997362, + "889": 2997362, + "901": 8121170, + "902": 3003716, + "903": 3001752, + "906": 2997362, + "907": 324, + "908": 324, + "909": 616, + "910": 16, + "912": 2997362, + "913": 2997038, + "914": 1060038, + "916": 2997362, + "918": 55384, + "919": 195411, + "920": 120521, + "922": 120521, + "923": 55384, + "924": 55384, + "935": 2997362, + "936": 1937308, + "938": 1060054, + "940": 3874616, + "941": 1060054, + "943": 5133583, + "944": 9644808, + "945": 14145448, + "946": 9644808, + "947": 14778391, + "948": 18532593, + "949": 10276701, + "950": 2331553, + "952": 3972574, + "953": 15890296, + "954": 37080748, + "955": 39488665, + "956": 22604676, + "960": 14460687, + "961": 4457184, + "964": 2010322, + "966": 2331553, + "972": 14778391, + "973": 10233655, + "977": 2997038, + "978": 1060038, + "982": 10233655, + "983": 10233655, + "984": 2997038, + "985": 11101991, + "986": 1729154, + "998": 391283, + "999": 566038, + "1000": 957321, + "1001": 436, + "1002": 134, + "1004": 17, + "1005": 391283, + "1008": 14778391, + "1009": 5133583, + "1010": 11150630, + "1013": 2446862, + "1020": 6467506, + "1021": 1039011, + "1022": 663144, + "1023": 1039011, + "1027": 3418173, + "1028": 3418173, + "1029": 1245046, + "1034": 2156249, + "1035": 694127, + "1036": 2107, + "1037": 1839, + "1038": 268, + "1040": 800874, + "1041": 800874, + "1054": 3139644, + "1055": 1279902, + "1059": 2010322, + "1062": 5480237, + "1064": 39336099, + "1065": 4548024, + "1066": 4548024, + "1068": 8930072, + "1071": 2961311, + "1073": 4733155, + "1085": 7694466, + "1086": 4733155, + "1088": 4733155, + "1089": 4733155, + "1092": 4733155, + "1093": 4733155, + "1097": 4717672, + "1099": 7675274, + "1101": 7675274, + "1102": 7675274, + "1104": 7675274, + "1105": 7675274, + "1108": 12392946, + "1114": 215299, + "1120": 12069490, + "1122": 7459975, + "1123": 7459975, + "1127": 7459975, + "1133": 7459975, + "1134": 7459975, + "1135": 804149, + "1136": 327648, + "1138": 7459975, + "1139": 71847, + "1140": 71847, + "1142": 13231415, + "1143": 1460490, + "1145": 2325892, + "1146": 865402, + "1151": 2325892, + "1152": 2325892, + "1153": 7174938, + "1154": 5113387, + "1155": 5113387, + "1156": 1900834, + "1157": 3212553, + "1158": 3212553, + "1159": 595088, + "1161": 1460490, + "1169": 595088, + "1170": 1730804, + "1171": 2325892, + "1172": 1460490, + "1173": 4709978, + "1174": 1327200, + "1175": 1327200, + "1176": 4155526, + "1177": 224664, + "1178": 45487, + "1183": 7, + "1185": 139646, + "1186": 49008, + "1187": 41630, + "1188": 1327200, + "1190": 1460490, + "1191": 595088, + "1193": 1460490, + "1202": 1433074, + "1203": 583877, + "1204": 595088, + "1206": 7459975, + "1208": 12069490, + "1210": 7459975, + "1211": 7459975, + "1212": 7459975, + "1213": 7459975, + "1214": 7459975, + "1218": 7459975, + "1222": 7459975, + "1223": 7459975, + "1224": 5808062, + "1228": 535030309, + "1230": 1396118362, + "1232": 1711608685, + "1233": 1065366559, + "1234": 160092191, + "1235": 1220764691, + "1236": 690428441, + "1238": 698059181, + "1242": 4717336, + "1245": 10632340, + "1246": 7630740, + "1247": 2936681, + "1250": 7674838, + "1251": 7674838, + "1254": 892305, + "1256": 3455036, + "1259": 76125, + "1262": 23652, + "1263": 32242, + "1264": 9750, + "1266": 9607, + "1267": 839500, + "1270": 113414, + "1272": 297498, + "1276": 449737, + "1278": 1091260, + "1279": 545630, + "1280": 95793, + "1283": 436, + "1284": 95993, + "1287": 359956, + "1290": 609783, + "1292": 969739, + "1293": 176456, + "1296": 609783, + "1297": 609783, + "1298": 47158, + "1301": 202669, + "1302": 506535, + "1309": 1315533, + "1310": 302463, + "1311": 116994, + "1314": 269175, + "1315": 452675, + "1316": 269175, + "1318": 269175, + "1319": 72511, + "1320": 27952, + "1324": 269175, + "1325": 538171, + "1328": 12863275, + "1333": 27851613, + "1334": 0, + "1337": 20357444, + "1338": 2, + "1341": 7494169, + "1342": 7494169, + "1345": 12863275, + "1351": 27851613, + "1352": 12863275, + "1356": 20357444, + "1357": 0, + "1366": 48208529, + "1367": 25725990, + "1368": 35971, + "1374": 20275250, + "1375": 24, + "1380": 20275188, + "1381": 7494169, + "1384": 0, + "1389": 29029817, + "1390": 7881792, + "1393": 43, + "1395": 113, + "1396": 43, + "1397": 78, + "1400": 13266276, + "1404": 29029930, + "1406": 21148103, + "1407": 10488465, + "1410": 7494169, + "1411": 20357444, + "1416": 5808000, + "1423": 4463980, + "1427": 4463980, + "1429": 4463980, + "1430": 4463980, + "1432": 4463980, + "1433": 2, + "1434": 0, + "1435": 17062165, + "1445": 12801123, + "1447": 27723057, + "1448": 6, + "1450": 40524168, + "1451": 12801119, + "1452": 0, + "1453": 0, + "1456": 20262084, + "1457": 7460967, + "1460": 13172181, + "1464": 28775313, + "1466": 20973747, + "1467": 20973747, + "1469": 34145928, + "1471": 20973747, + "1472": 340599, + "1473": 20602689, + "1474": 34, + "1475": 20262025, + "1476": 56961, + "1477": 56961, + "1479": 20973747, + "1481": 11809708, + "1482": 11809708, + "1483": 11363504, + "1484": 22727008, + "1485": 6028234, + "1486": 9790173, + "1487": 9790173, + "1488": 12030028, + "1489": 9790173, + "1490": 915408, + "1491": 915408, + "1492": 3775159, + "1493": 5335270, + "1495": 11809708, + "1496": 5536061, + "1498": 20973747, + "1499": 3036695, + "1500": 1429437, + "1502": 20973747, + "1505": 828117, + "1509": 828117, + "1510": 397594, + "1511": 20973747, + "1514": 7393, + "1526": 21099, + "1527": 33523, + "1528": 2166, + "1530": 14246, + "1534": 14246, + "1536": 14246, + "1540": 16807, + "1543": 48053, + "1546": 490, + "1549": 32430, + "1571": 345, + "1572": 437, + "1573": 782, + "1574": 2875, + "1575": 874, + "1577": 345, + "1579": 15623, + "1580": 15623, + "1581": 16807, + "1584": 63330, + "1585": 16807, + "1586": 32430, + "1587": 22, + "1590": 44, + "1591": 22, + "1592": 44, + "1596": 32430, + "1601": 1325, + "1603": 835, + "1604": 835, + "1607": 47912, + "1618": 31595, + "1619": 38250, + "1620": 20142, + "1621": 20142, + "1622": 3825, + "1623": 16317, + "1624": 31595, + "1627": 47912, + "1628": 7885, + "1635": 4349, + "1636": 1768, + "1637": 5162, + "1638": 4349, + "1639": 1768, + "1641": 13510, + "1643": 31595, + "1648": 9, + "1649": 2, + "1650": 1, + "1651": 6, + "1653": 0, + "1655": 47912, + "1657": 15278, + "1658": 32634, + "1662": 32634, + "1663": 31595, + "1667": 31595, + "1672": 24954, + "1673": 8603, + "1674": 0, + "1675": 0, + "1679": 0, + "1680": 0, + "1681": 0, + "1682": 0, + "1683": 8318, + "1696": 31595, + "1700": 46524, + "1703": 16807, + "1707": 64860, + "1708": 75789, + "1709": 75916, + "1711": 34813, + "1713": 17288, + "1714": 8379, + "1717": 32430 + } + }, + { + "changeset": "f2c185a98cd6df885d1d1328149b9fe23b1ee51d", + "path": "browser/components/sessionstore/SessionStore.jsm", + "data": { + "4096": 0, + "4097": 0, + "4100": 268, + "7": 2988, + "4104": 268, + "10": 2988, + "4107": 268, + "12": 2988, + "4109": 268, + "4110": 2, + "4112": 268, + "18": 2988, + "4115": 24, + "20": 2988, + "21": 2988, + "22": 2988, + "23": 2988, + "24": 2988, + "4122": 22, + "27": 2988, + "4125": 0, + "31": 2988, + "4128": 2, + "4132": 268, + "4133": 268, + "4134": 0, + "39": 2988, + "4139": 268, + "4140": 60, + "4142": 268, + "4144": 268, + "49": 2988, + "53": 2988, + "58": 2988, + "4157": 187597, + "4158": 184609, + "4159": 178054, + "4162": 184609, + "13": 2988, + "4176": 2988, + "4177": 101, + "4178": 101, + "4179": 101, + "4180": 101, + "14": 2988, + "697": 16, + "88": 5976, + "4186": 2988, + "4187": 76204, + "4188": 43324, + "93": 2988, + "4190": 32880, + "4191": 65760, + "4192": 32880, + "4193": 32880, + "101": 5976, + "103": 2988, + "106": 2988, + "4203": 2988, + "4205": 16, + "4206": 16, + "112": 5976, + "114": 2988, + "19": 2988, + "117": 2988, + "120": 2988, + "4217": 18870, + "4219": 38738, + "4220": 19519, + "4221": 19519, + "4222": 19506, + "129": 2988, + "3435": 234, + "4231": 2988, + "4232": 18839, + "4119": 268, + "142": 2988, + "4240": 2988, + "4241": 15739, + "4338": 9807, + "4243": 15739, + "148": 2988, + "4245": 14532, + "4246": 14532, + "151": 2988, + "152": 2988, + "4804": 100209, + "154": 2988, + "4251": 15739, + "156": 2988, + "157": 2988, + "159": 5976, + "160": 2988, + "161": 2988, + "162": 2988, + "4259": 2988, + "4260": 120, + "4261": 60, + "4262": 60, + "167": 2988, + "168": 2988, + "169": 2988, + "170": 2988, + "4267": 60, + "172": 2988, + "173": 2988, + "4270": 176, + "175": 2988, + "176": 2988, + "4273": 60, + "4274": 0, + "179": 2988, + "180": 2988, + "181": 2988, + "182": 2988, + "4279": 60, + "184": 2988, + "185": 2988, + "4282": 60, + "4283": 60, + "4284": 60, + "4286": 60, + "4287": 60, + "192": 2988, + "194": 0, + "195": 0, + "196": 0, + "4293": 2988, + "4294": 6, + "4295": 0, + "5052": 4, + "206": 2988, + "717": 2982, + "4304": 2988, + "209": 2988, + "210": 5896, + "4307": 44, + "4309": 22, + "4310": 22, + "4311": 44, + "4312": 22, + "4313": 22, + "4314": 22, + "4315": 22, + "4316": 16, + "221": 2988, + "222": 0, + "4319": 22, + "4320": 22, + "225": 2988, + "226": 8, + "229": 2988, + "230": 2982, + "233": 2988, + "234": 158, + "4135": 0, + "4333": 2988, + "4334": 110515, + "4335": 22128, + "4336": 22128, + "241": 2988, + "242": 16, + "4339": 12321, + "4340": 12, + "245": 2988, + "246": 88, + "249": 2988, + "250": 325, + "4347": 88387, + "253": 2988, + "254": 142, + "4352": 22079, + "257": 3068, + "258": 80, + "4355": 44205, + "261": 2988, + "262": 221, + "4359": 88387, + "4360": 49121, + "265": 3238, + "266": 250, + "269": 2988, + "270": 47, + "273": 2988, + "4370": 2988, + "4371": 0, + "277": 2988, + "278": 141, + "4825": 2988, + "4376": 0, + "281": 3102, + "282": 114, + "4379": 0, + "4380": 0, + "285": 2988, + "286": 40, + "4385": 0, + "4386": 0, + "293": 2988, + "4390": 0, + "4391": 0, + "297": 2988, + "4394": 0, + "4395": 0, + "4396": 0, + "301": 2988, + "302": 24, + "733": 2982, + "305": 2988, + "306": 246, + "4403": 2988, + "4404": 0, + "309": 2988, + "4406": 0, + "4407": 0, + "4408": 0, + "4409": 0, + "4410": 0, + "4831": 14, + "4412": 0, + "317": 2988, + "318": 372, + "321": 2988, + "322": 10, + "325": 2988, + "326": 4, + "4423": 2988, + "329": 2988, + "330": 2, + "4427": 90283, + "4428": 52362, + "333": 2988, + "334": 156, + "4431": 44274, + "4432": 44253, + "4433": 4483, + "338": 0, + "4803": 2988, + "341": 2988, + "342": 2278, + "345": 2988, + "346": 15431, + "349": 2988, + "4446": 2988, + "353": 2988, + "4450": 26413, + "4451": 25812, + "4452": 25812, + "4453": 25805, + "4454": 16067, + "4455": 16067, + "361": 2988, + "362": 18, + "365": 2988, + "366": 20, + "369": 2988, + "370": 10, + "4474": 2988, + "380": 2988, + "4477": 38, + "382": 0, + "4479": 38, + "384": 94, + "4481": 38, + "386": 0, + "388": 94, + "4485": 114, + "4486": 38, + "4487": 38, + "392": 92, + "393": 92, + "394": 0, + "4491": 38, + "396": 92, + "397": 94, + "4494": 0, + "4495": 0, + "4496": 0, + "4500": 0, + "4501": 0, + "406": 2988, + "407": 31434, + "408": 16003, + "4505": 38, + "410": 26413, + "411": 26413, + "412": 9738, + "413": 9738, + "4510": 38, + "4512": 0, + "4513": 0, + "418": 16003, + "4515": 0, + "420": 2502, + "421": 2494, + "4924": 22, + "3151": 13035, + "429": 2988, + "4527": 0, + "4528": 0, + "433": 2988, + "434": 2988, + "4531": 0, + "4533": 0, + "4534": 0, + "4535": 0, + "4536": 0, + "4537": 0, + "4539": 0, + "445": 2988, + "448": 2988, + "4546": 38, + "453": 2988, + "4550": 38, + "4552": 2988, + "457": 2988, + "4554": 318, + "4555": 16, + "4556": 16, + "462": 2988, + "4560": 302, + "4561": 132, + "467": 2988, + "4564": 170, + "4565": 22, + "4566": 22, + "2458": 248, + "4571": 148, + "4574": 170, + "4575": 170, + "481": 2988, + "4244": 30548, + "4859": 18, + "486": 2988, + "4583": 2988, + "489": 2988, + "4586": 3794, + "493": 2988, + "4590": 3794, + "4591": 60, + "4592": 60, + "499": 2988, + "766": 5727, + "502": 2988, + "4600": 2988, + "4601": 2653, + "4602": 2653, + "4603": 0, + "508": 2988, + "4605": 2653, + "4607": 2653, + "4608": 1897, + "4609": 1897, + "514": 2988, + "519": 2988, + "4617": 2988, + "522": 2988, + "4619": 2653, + "525": 2988, + "526": 2992, + "4623": 1897, + "528": 2992, + "529": 2992, + "530": 2992, + "533": 2992, + "534": 2992, + "4632": 2988, + "4633": 3794, + "4634": 3794, + "4635": 3794, + "540": 2988, + "541": 2992, + "543": 2992, + "544": 2992, + "545": 2992, + "4643": 2988, + "548": 2992, + "549": 2992, + "4646": 316, + "551": 2988, + "552": 5713, + "557": 2988, + "560": 2988, + "4657": 2988, + "4658": 1595, + "4659": 3190, + "4660": 1595, + "565": 2988, + "566": 5896, + "569": 2988, + "570": 5672, + "2143": 12, + "573": 2988, + "4671": 2988, + "4672": 60530, + "96": 2988, + "3429": 690, + "4680": 2988, + "4681": 1660, + "586": 8, + "4683": 1111, + "4684": 1111, + "4685": 1111, + "590": 8, + "4687": 34862, + "4688": 34105, + "4689": 33605, + "4690": 1111, + "595": 8, + "596": 8, + "4693": 1111, + "4694": 455, + "4695": 455, + "600": 8, + "4697": 549, + "1111": 5727, + "604": 4, + "605": 4, + "610": 2988, + "611": 2982, + "4708": 2988, + "4709": 406352, + "4710": 139157, + "615": 2982, + "616": 5964, + "617": 26838, + "618": 2982, + "620": 2982, + "4717": 2988, + "4718": 150, + "623": 5964, + "624": 2982, + "630": 2988, + "631": 2941, + "632": 2941, + "4729": 2988, + "4730": 3287, + "635": 2941, + "636": 2925, + "4733": 3287, + "4735": 3287, + "640": 2941, + "4737": 2, + "644": 54, + "645": 38, + "4743": 3285, + "648": 38, + "4745": 3285, + "4746": 2001, + "4747": 1978, + "652": 0, + "653": 0, + "655": 38, + "4752": 154, + "4888": 2988, + "4754": 2, + "659": 38, + "4756": 2988, + "4757": 578, + "4759": 578, + "4760": 0, + "4761": 0, + "666": 16, + "667": 0, + "4764": 578, + "4765": 578, + "4766": 0, + "672": 0, + "673": 0, + "674": 0, + "675": 0, + "676": 0, + "677": 0, + "4774": 2988, + "4775": 3449, + "4776": 3449, + "4777": 3449, + "4778": 3449, + "686": 16, + "4783": 2988, + "4784": 0, + "689": 16, + "691": 16, + "693": 16, + "694": 0, + "4792": 2988, + "4793": 103658, + "698": 16, + "4895": 674, + "701": 0, + "4860": 18, + "2837": 0, + "4896": 674, + "706": 2941, + "707": 2941, + "708": 16, + "710": 2941, + "711": 2941, + "712": 2941, + "714": 2988, + "715": 2982, + "4812": 2988, + "4813": 49128, + "719": 2982, + "720": 584, + "4216": 2988, + "803": 2939, + "724": 2982, + "726": 2982, + "727": 2982, + "729": 2982, + "4826": 2982, + "4827": 2982, + "732": 2982, + "4829": 2982, + "4830": 5964, + "805": 2939, + "4832": 0, + "4834": 14, + "4835": 2982, + "740": 2988, + "741": 2982, + "4838": 5964, + "4839": 2982, + "4840": 2982, + "124": 2988, + "746": 2982, + "749": 2982, + "750": 2941, + "4904": 2988, + "754": 2982, + "4852": 2988, + "757": 2982, + "4856": 3449, + "4857": 46, + "4858": 18, + "763": 2988, + "764": 27700, + "4861": 16, + "4862": 16, + "4863": 16, + "4864": 16, + "769": 11788, + "4866": 0, + "4867": 0, + "772": 11788, + "773": 218, + "4872": 3449, + "777": 2982, + "778": 2982, + "781": 10, + "784": 2982, + "26": 2988, + "787": 118, + "788": 118, + "791": 38, + "792": 38, + "4890": 2988, + "4891": 100, + "4892": 674, + "4893": 674, + "4894": 674, + "799": 114, + "800": 114, + "4898": 100, + "4899": 100, + "4900": 100, + "4901": 100, + "806": 0, + "807": 2939, + "808": 2939, + "4905": 100, + "4906": 104, + "135": 2988, + "4908": 104, + "4909": 104, + "4910": 104, + "4912": 100, + "817": 2988, + "4914": 100, + "4915": 100, + "820": 100275, + "821": 100275, + "4918": 2988, + "4919": 18, + "4920": 22, + "4921": 22, + "4922": 22, + "827": 100275, + "828": 0, + "829": 0, + "4926": 18, + "4927": 18, + "832": 100275, + "833": 100275, + "836": 100275, + "837": 0, + "4934": 3132, + "841": 100275, + "842": 376, + "4939": 542, + "4941": 542, + "4942": 24, + "4943": 518, + "4944": 42, + "4946": 476, + "851": 49385, + "2756": 0, + "4514": 0, + "855": 1116, + "4952": 2171, + "858": 93213, + "4956": 2171, + "4957": 2171, + "4959": 2171, + "864": 49304, + "4961": 2169, + "4923": 22, + "4964": 2171, + "4965": 158, + "438": 2988, + "873": 93213, + "4970": 2988, + "4971": 2357, + "4972": 2357, + "4974": 2357, + "879": 93158, + "4976": 2357, + "4977": 18, + "4978": 2339, + "4979": 884, + "4980": 338, + "885": 93158, + "4982": 8, + "575": 0, + "4986": 2357, + "4987": 2357, + "893": 44924, + "4990": 2988, + "4991": 12, + "4992": 12, + "897": 42585, + "4994": 12, + "4995": 12, + "4996": 12, + "901": 42585, + "4929": 18, + "5001": 2988, + "5002": 2, + "4247": 1102, + "908": 20484, + "909": 22101, + "5006": 2, + "5007": 2, + "913": 0, + "153": 2988, + "920": 2045, + "5019": 2988, + "924": 2045, + "4250": 15739, + "5022": 542, + "4933": 2988, + "5024": 542, + "5026": 542, + "5027": 18, + "5029": 542, + "934": 2045, + "5031": 360, + "936": 528, + "5033": 374, + "5034": 8, + "940": 2045, + "5037": 542, + "942": 2045, + "943": 2045, + "944": 2045, + "945": 2045, + "948": 1864, + "5045": 2988, + "951": 0, + "5048": 10, + "5051": 2988, + "850": 94329, + "4938": 2988, + "5055": 2988, + "5056": 5726, + "961": 752, + "962": 752, + "963": 0, + "5060": 0, + "968": 1504, + "969": 752, + "5066": 2988, + "5067": 2988, + "5069": 2988, + "5070": 13018, + "845": 99899, + "976": 1595, + "5073": 2988, + "5074": 180391, + "980": 1595, + "981": 1595, + "5078": 21738, + "983": 1595, + "985": 1595, + "5082": 15620, + "990": 62, + "165": 5976, + "993": 4, + "5090": 2988, + "5091": 2988, + "996": 0, + "166": 2988, + "998": 1547, + "5097": 2988, + "5098": 65, + "5101": 2988, + "1006": 268194, + "1007": 268194, + "1008": 268194, + "5105": 6062, + "5106": 3074, + "5107": 38, + "5108": 38, + "1013": 44932, + "4265": 60, + "1018": 42762, + "1019": 42666, + "1020": 42761, + "1021": 42761, + "1024": 76644, + "1027": 40, + "854": 94329, + "1030": 171, + "1035": 580, + "1038": 122, + "4269": 300, + "1041": 58064, + "1042": 58064, + "1043": 50715, + "1044": 50715, + "1045": 49128, + "1046": 49128, + "1050": 0, + "1051": 0, + "1054": 0, + "1055": 0, + "1056": 0, + "1057": 0, + "1058": 0, + "1062": 0, + "177": 2988, + "1064": 268192, + "178": 2988, + "1072": 2988, + "1073": 5727, + "1082": 2988, + "863": 43909, + "1084": 5727, + "1085": 0, + "36": 2988, + "1088": 5727, + "1089": 0, + "1093": 5727, + "880": 93158, + "1095": 5727, + "1096": 5727, + "1097": 34362, + "1098": 34362, + "183": 2988, + "1102": 5727, + "1105": 5727, + "1107": 5727, + "1108": 437, + "1109": 5727, + "1110": 60, + "4281": 60, + "1112": 1139, + "868": 9050, + "1114": 5727, + "1117": 11455, + "1118": 5728, + "1121": 11454, + "1122": 45816, + "1123": 5727, + "1126": 5727, + "1127": 5727, + "1128": 5727, + "1129": 0, + "171": 2988, + "174": 2988, + "4266": 60, + "1144": 5727, + "1147": 5727, + "1148": 2941, + "874": 55, + "1151": 2941, + "1154": 16, + "1156": 16, + "1160": 0, + "1163": 0, + "1164": 0, + "1165": 0, + "1167": 16, + "1168": 16, + "1172": 16, + "1175": 16, + "1177": 16, + "1178": 16, + "1179": 16, + "1183": 2925, + "1184": 2925, + "1185": 2925, + "1188": 2786, + "1189": 60, + "585": 2988, + "1191": 60, + "1195": 2726, + "1196": 0, + "1200": 0, + "1202": 0, + "1203": 0, + "1204": 0, + "1205": 0, + "1206": 2726, + "1207": 8, + "1211": 6, + "1212": 6, + "1213": 8, + "1215": 8, + "1216": 6, + "1217": 6, + "886": 44924, + "1222": 6, + "1223": 6, + "1224": 6, + "1230": 0, + "1231": 0, + "1234": 0, + "1235": 0, + "1236": 0, + "723": 2982, + "1240": 0, + "1241": 0, + "1244": 0, + "1245": 0, + "208": 2988, + "1250": 6, + "1251": 6, + "1252": 6, + "90": 2988, + "4305": 22, + "1257": 6, + "1258": 6, + "1259": 6, + "1260": 6, + "4306": 22, + "1264": 6, + "1266": 5727, + "1270": 10, + "895": 42585, + "1279": 2988, + "1281": 5727, + "1284": 5727, + "214": 5713, + "1286": 2786, + "1292": 2941, + "1294": 2941, + "1295": 5882, + "1296": 2941, + "1297": 2941, + "1298": 2941, + "1300": 2941, + "217": 2988, + "1305": 2941, + "1306": 2941, + "218": 5672, + "1315": 5882, + "1316": 2941, + "1317": 0, + "1320": 2941, + "1321": 0, + "1323": 2941, + "1324": 2941, + "1326": 2941, + "1327": 16, + "1329": 2941, + "1330": 2941, + "1331": 2941, + "1334": 2941, + "1336": 2941, + "4928": 18, + "3045": 36, + "5003": 2, + "1348": 2988, + "1349": 12890, + "1351": 12890, + "1352": 12890, + "1353": 0, + "1354": 0, + "1357": 0, + "1358": 0, + "5005": 2, + "1363": 12890, + "1364": 7163, + "1370": 5727, + "1371": 5727, + "1372": 5727, + "1374": 5727, + "1375": 60, + "1378": 5727, + "1380": 5727, + "1382": 11454, + "1383": 45816, + "1384": 5727, + "1386": 5727, + "1387": 5727, + "1388": 5727, + "1390": 5727, + "1393": 5727, + "1396": 2764, + "1398": 8863, + "1399": 3284, + "1400": 3284, + "1403": 2764, + "1404": 2764, + "1407": 2764, + "1410": 2764, + "1416": 2764, + "1419": 2764, + "237": 2988, + "1428": 2764, + "238": 150, + "1432": 2764, + "4405": 0, + "1436": 2764, + "4337": 22115, + "730": 2982, + "5020": 542, + "1450": 2764, + "1452": 2339, + "1453": 2339, + "925": 2045, + "1456": 2764, + "1461": 9024, + "1462": 3283, + "1463": 3283, + "1464": 3283, + "1465": 3283, + "5023": 542, + "637": 54, + "1471": 2763, + "1474": 2338, + "1475": 2338, + "4342": 12309, + "1480": 2763, + "1483": 2763, + "1486": 2963, + "1489": 13572, + "1490": 7845, + "1493": 5727, + "1494": 12890, + "796": 1002, + "4278": 120, + "4960": 2169, + "1508": 2988, + "5030": 374, + "1511": 19522, + "1512": 7844, + "935": 696, + "1516": 5726, + "1518": 5726, + "1519": 40082, + "1521": 5726, + "1522": 5726, + "1542": 2988, + "1545": 4677, + "1547": 4673, + "1551": 4673, + "1552": 4673, + "1553": 4673, + "1555": 4673, + "1556": 1710, + "5038": 542, + "3673": 316, + "1562": 1710, + "1563": 286, + "1567": 1710, + "1570": 1710, + "1571": 1710, + "1572": 1710, + "1573": 2963, + "1574": 2, + "1582": 5970, + "1584": 2982, + "1585": 2963, + "5044": 2988, + "1594": 2982, + "4362": 39266, + "1598": 2982, + "1600": 2982, + "1609": 5964, + "1610": 2982, + "5047": 2988, + "1615": 2982, + "1617": 2982, + "1618": 5964, + "1619": 11928, + "1620": 5964, + "1621": 5964, + "1622": 5964, + "1623": 5964, + "1628": 2982, + "1629": 2982, + "1630": 2982, + "1632": 11928, + "1634": 2982, + "4828": 2982, + "1638": 11928, + "1640": 2982, + "1641": 0, + "1642": 2982, + "274": 92, + "1666": 5970, + "1667": 2982, + "4374": 0, + "601": 4, + "1671": 2982, + "1672": 2963, + "5102": 54, + "2647": 2, + "4375": 0, + "1677": 11852, + "1678": 2963, + "1679": 2963, + "1681": 2963, + "1682": 2963, + "5059": 2988, + "1685": 2982, + "1686": 2982, + "964": 0, + "1690": 8927, + "1691": 2963, + "1692": 2963, + "1693": 2963, + "1698": 2982, + "1699": 2982, + "1700": 2898, + "1701": 2982, + "1707": 2988, + "1557": 1443, + "4381": 0, + "1712": 10, + "1720": 2988, + "1721": 2982, + "1722": 26, + "1723": 26, + "4785": 0, + "1732": 26, + "1735": 2982, + "1737": 2956, + "1740": 2982, + "290": 53, + "1746": 2988, + "1747": 118, + "1751": 118, + "1752": 0, + "1753": 118, + "1755": 118, + "1757": 282, + "4389": 0, + "1760": 409, + "1761": 164, + "1762": 164, + "1763": 26, + "1764": 26, + "294": 60, + "1767": 0, + "1771": 118, + "1772": 18, + "1773": 18, + "1776": 118, + "1777": 118, + "1778": 236, + "1779": 0, + "1780": 0, + "4393": 0, + "1784": 118, + "1785": 0, + "298": 40, + "5077": 2988, + "1792": 3026, + "1795": 440, + "1796": 50, + "4015": 2, + "1798": 390, + "1801": 121, + "1802": 44, + "1803": 224, + "1804": 180, + "1805": 42, + "1806": 42, + "742": 0, + "1812": 46, + "1813": 8, + "1814": 8, + "5081": 2988, + "1816": 12, + "1817": 4, + "1818": 2, + "1819": 26, + "1820": 18, + "1821": 6, + "1822": 6, + "1823": 6, + "1826": 8, + "1827": 0, + "1828": 8, + "1830": 4, + "1832": 4, + "1833": 4, + "1834": 0, + "1835": 4, + "1839": 38, + "1840": 38, + "1843": 38, + "1851": 2988, + "1852": 1002, + "4645": 316, + "1856": 28, + "1857": 100, + "1858": 40, + "1859": 4, + "1860": 4, + "310": 120, + "1865": 20, + "1866": 20, + "2359": 142, + "1869": 246, + "1872": 584, + "4882": 2988, + "313": 2988, + "1882": 2988, + "5109": 0, + "314": 90, + "5093": 2988, + "5094": 21261, + "1894": 50660, + "1895": 50660, + "1896": 50660, + "1898": 50660, + "1899": 50660, + "1903": 50660, + "1904": 114, + "1905": 114, + "1909": 50660, + "1921": 2988, + "1922": 50606, + "1924": 50606, + "1925": 42761, + "4120": 24, + "1005": 2988, + "1936": 2988, + "1939": 42666, + "1940": 42666, + "1941": 42666, + "1944": 42666, + "1945": 0, + "1949": 42666, + "1952": 42666, + "1953": 42666, + "1954": 4, + "4975": 2357, + "1958": 42662, + "1959": 42662, + "1429": 52, + "1962": 42662, + "1963": 42662, + "1964": 42662, + "1010": 44879, + "1966": 42662, + "1967": 42662, + "1968": 42662, + "1969": 42662, + "804": 2939, + "1978": 42662, + "1983": 12566, + "1988": 42662, + "1989": 4, + "4116": 24, + "1997": 2988, + "1998": 10, + "4429": 48705, + "2000": 10, + "2001": 0, + "2004": 10, + "4430": 44770, + "2006": 10, + "2008": 10, + "2009": 10, + "2010": 10, + "2012": 10, + "2013": 10, + "2014": 10, + "2015": 10, + "2016": 10, + "2018": 0, + "4059": 268, + "337": 2988, + "2025": 2988, + "2026": 50616, + "2028": 50616, + "2029": 50616, + "2034": 50616, + "2035": 50616, + "2036": 576, + "2037": 576, + "2038": 438, + "2053": 2988, + "2056": 33050, + "2057": 31530, + "2062": 33050, + "2063": 2371, + "2067": 33050, + "2070": 33050, + "2071": 33050, + "2074": 33050, + "2075": 20755, + "4951": 2988, + "2089": 2988, + "2091": 141, + "2092": 141, + "2098": 141, + "2099": 8, + "2100": 8, + "2101": 8, + "2104": 141, + "2105": 141, + "2112": 2988, + "2113": 76644, + "2114": 76644, + "2116": 76644, + "2117": 76644, + "2119": 76644, + "2120": 76, + "354": 2, + "2130": 68, + "2131": 6, + "2133": 62, + "4981": 546, + "2139": 2988, + "2141": 40, + "2142": 12, + "357": 2988, + "2147": 12, + "358": 1132, + "2153": 40, + "2156": 2988, + "890": 44924, + "2158": 171, + "2159": 2, + "2160": 2, + "3774": 2337, + "2166": 171, + "2177": 2988, + "2178": 122, + "2181": 121, + "2192": 2988, + "2193": 128, + "2195": 127, + "2201": 127, + "2202": 6, + "2203": 6, + "2210": 2988, + "2212": 114, + "2215": 215, + "2218": 210, + "2220": 114, + "2224": 2988, + "2225": 342, + "2226": 342, + "2228": 1021, + "2229": 1140, + "2230": 829, + "2234": 829, + "2235": 829, + "2236": 6, + "2237": 6, + "592": 16, + "2245": 2988, + "2246": 158, + "2249": 158, + "2252": 158, + "2254": 158, + "2255": 158, + "2257": 2988, + "2258": 150, + "2260": 150, + "2261": 150, + "2262": 0, + "2263": 150, + "2264": 0, + "2266": 150, + "2267": 0, + "2270": 150, + "621": 2982, + "2273": 150, + "2275": 150, + "2276": 150, + "2277": 0, + "2278": 0, + "2279": 0, + "2283": 150, + "2284": 150, + "2285": 0, + "2286": 0, + "381": 94, + "2291": 150, + "2292": 89, + "2293": 89, + "2297": 150, + "2301": 150, + "2304": 150, + "213": 2988, + "2307": 150, + "2310": 150, + "2313": 2988, + "2314": 16, + "2315": 13, + "2318": 3, + "2319": 1, + "2320": 1, + "2323": 2, + "2324": 1, + "2326": 2988, + "2327": 88, + "2328": 2, + "2331": 86, + "2334": 86, + "2337": 2988, + "2338": 325, + "2339": 0, + "390": 2, + "2342": 325, + "2344": 325, + "2345": 325, + "2347": 2988, + "4913": 100, + "2352": 142, + "2353": 142, + "2354": 0, + "2356": 142, + "2357": 0, + "4489": 38, + "2360": 0, + "2363": 142, + "2364": 142, + "2365": 0, + "2368": 142, + "2369": 2, + "2372": 142, + "2375": 142, + "2378": 3068, + "2379": 80, + "2380": 0, + "2382": 80, + "2383": 2, + "2387": 78, + "2388": 78, + "2389": 32, + "2390": 46, + "2394": 78, + "2397": 78, + "2400": 78, + "2401": 78, + "2403": 78, + "2404": 4, + "2407": 74, + "2410": 74, + "2411": 0, + "2417": 74, + "2418": 74, + "2420": 74, + "2421": 74, + "2422": 74, + "2425": 148, + "2426": 74, + "2428": 4, + "2430": 78, + "2431": 78, + "2433": 2988, + "2434": 221, + "2435": 220, + "2438": 1, + "2439": 0, + "2442": 1, + "2445": 3238, + "2446": 250, + "2447": 247, + "2448": 131, + "2449": 116, + "2452": 3, + "2453": 2, + "409": 42416, + "2456": 1, + "2457": 1, + "900": 42585, + "4719": 150, + "2460": 2988, + "2461": 59, + "2462": 2, + "2465": 57, + "289": 2988, + "2468": 57, + "2469": 57, + "2470": 2, + "2474": 55, + "2477": 55, + "2478": 55, + "2481": 55, + "2484": 55, + "414": 9632, + "2487": 55, + "2490": 55, + "2492": 55, + "2493": 55, + "2495": 2988, + "2496": 92, + "2497": 2, + "2500": 90, + "2503": 90, + "2504": 90, + "2505": 4, + "1783": 118, + "2509": 86, + "2512": 86, + "419": 2502, + "2516": 141, + "2519": 3102, + "2520": 114, + "2523": 2988, + "2524": 44, + "2525": 0, + "2529": 44, + "2530": 44, + "2532": 44, + "2533": 44, + "2536": 44, + "2538": 44, + "2539": 44, + "2541": 2988, + "2543": 53, + "2544": 53, + "2545": 4, + "903": 42585, + "2549": 49, + "2550": 49, + "2551": 49, + "2554": 49, + "2557": 2988, + "2558": 60, + "2559": 57, + "2560": 57, + "2563": 3, + "2564": 1, + "2565": 1, + "2568": 2, + "2569": 58, + "2571": 2988, + "2572": 40, + "2573": 0, + "2576": 40, + "2577": 3, + "2579": 37, + "2580": 21, + "2582": 37, + "2583": 37, + "2586": 2988, + "2587": 24, + "2588": 24, + "2589": 18, + "2590": 24, + "2593": 2988, + "2594": 246, + "2597": 2988, + "2598": 120, + "2599": 0, + "2604": 120, + "2605": 70, + "2608": 120, + "2609": 120, + "435": 2988, + "2612": 2988, + "2613": 90, + "2614": 60, + "2615": 60, + "2628": 2988, + "2629": 376, + "2632": 2988, + "2633": 10, + "2636": 2988, + "2637": 4, + "2638": 0, + "2641": 4, + "2642": 4, + "2645": 2988, + "2646": 2, + "441": 2988, + "2650": 2988, + "2651": 156, + "2652": 10, + "2666": 2988, + "2668": 68, + "2669": 52, + "2670": 4, + "4541": 0, + "2675": 16, + "2676": 20, + "2677": 16, + "2678": 16, + "2679": 16, + "2680": 56, + "2681": 52, + "2682": 12, + "2689": 4, + "2690": 20, + "952": 1864, + "1815": 8, + "2702": 7370, + "2703": 4382, + "2704": 4, + "2707": 4378, + "2708": 4378, + "2710": 4378, + "2711": 0, + "2712": 0, + "2713": 0, + "2717": 4378, + "4549": 38, + "2720": 4378, + "2721": 2947, + "2722": 1890, + "2723": 1055, + "2724": 1892, + "2725": 1290, + "2730": 4378, + "2732": 3768, + "2733": 3768, + "2734": 3768, + "2736": 4, + "2739": 2988, + "2740": 2939, + "2741": 5827, + "2742": 2888, + "2743": 2888, + "2744": 2888, + "2748": 2888, + "2749": 2888, + "2750": 30, + "2751": 0, + "2755": 5783, + "2515": 2988, + "2762": 2939, + "1143": 8715, + "2772": 2988, + "2774": 0, + "2775": 0, + "2778": 0, + "2781": 0, + "2782": 0, + "2783": 0, + "2784": 0, + "2787": 0, + "2790": 0, + "2791": 0, + "2796": 0, + "2797": 0, + "2803": 0, + "2804": 0, + "2805": 0, + "2809": 0, + "2812": 0, + "2815": 0, + "2816": 0, + "2817": 0, + "2819": 0, + "155": 2988, + "2824": 0, + "2825": 0, + "2826": 0, + "2827": 0, + "2830": 0, + "2833": 0, + "2836": 0, + "537": 2988, + "2838": 0, + "2839": 0, + "2846": 0, + "2847": 0, + "2849": 0, + "2854": 0, + "2855": 0, + "2856": 0, + "2857": 0, + "2860": 0, + "2863": 0, + "2864": 0, + "2867": 0, + "2869": 0, + "2872": 0, + "822": 100275, + "2883": 2988, + "2884": 78, + "2885": 0, + "2888": 78, + "2889": 78, + "2890": 4, + "2895": 74, + "2896": 0, + "2904": 74, + "2905": 74, + "2907": 74, + "2908": 148, + "2909": 74, + "2911": 4, + "2916": 2988, + "2917": 2, + "2918": 6, + "2919": 4, + "2920": 16, + "2921": 8, + "2938": 2988, + "2939": 1132, + "2941": 1132, + "2942": 0, + "2943": 0, + "2946": 1132, + "2951": 1132, + "2955": 1132, + "2957": 1132, + "2960": 2, + "2965": 1130, + "2968": 1130, + "2972": 1130, + "2973": 1130, + "2974": 1130, + "2977": 1130, + "2978": 2, + "2981": 1128, + "2984": 1128, + "2985": 6, + "2988": 1122, + "2989": 1122, + "2990": 1122, + "2994": 1122, + "2995": 1122, + "2998": 1122, + "3001": 1122, + "3002": 46, + "3003": 46, + "3005": 1076, + "3009": 1122, + "3010": 1108, + "3014": 1122, + "3015": 8, + "3017": 1130, + "3020": 1130, + "3021": 2, + "505": 2988, + "3034": 2988, + "3035": 36, + "3036": 18, + "3037": 18, + "3038": 18, + "3039": 18, + "1190": 60, + "3046": 36, + "3047": 36, + "3049": 0, + "3050": 36, + "3063": 2988, + "3064": 0, + "3065": 0, + "511": 2988, + "3069": 0, + "3075": 0, + "3076": 0, + "3077": 0, + "3078": 0, + "3079": 0, + "3080": 0, + "3082": 0, + "3083": 0, + "3084": 0, + "3085": 0, + "3089": 0, + "3090": 0, + "3093": 0, + "3094": 0, + "3098": 0, + "3099": 0, + "1883": 44879, + "3108": 2988, + "3109": 21969, + "3111": 43938, + "3112": 109845, + "3113": 21969, + "3115": 21969, + "3116": 131814, + "3118": 21969, + "3119": 1423, + "3120": 20546, + "3121": 0, + "3123": 21969, + "3124": 21969, + "3125": 21969, + "3126": 52, + "3127": 21917, + "3128": 14, + "4618": 2653, + "3137": 2988, + "3138": 15589, + "3139": 15589, + "3142": 15589, + "3144": 15589, + "3145": 15589, + "3147": 12638, + "3148": 13266, + "3149": 0, + "3150": 13266, + "4621": 2653, + "3153": 231, + "3156": 12638, + "4622": 1897, + "3158": 15589, + "3161": 15589, + "3163": 15589, + "3165": 15589, + "1893": 2988, + "3169": 47907, + "3170": 16259, + "3172": 16259, + "3173": 16259, + "3174": 16259, + "3175": 15985, + "3179": 31192, + "3180": 6, + "3181": 2, + "3182": 2, + "3183": 2, + "3188": 15589, + "3190": 15589, + "3196": 15589, + "3197": 78, + "3200": 40, + "3201": 44, + "3202": 44, + "3206": 15589, + "3207": 12591, + "3209": 15589, + "3212": 15589, + "3213": 2, + "3215": 15589, + "3216": 15589, + "3217": 15589, + "3218": 15589, + "3221": 15589, + "3222": 15589, + "3223": 15589, + "3224": 15589, + "3225": 15589, + "3226": 15589, + "3227": 15589, + "3231": 15589, + "3233": 15589, + "3236": 15589, + "3237": 65, + "3243": 15589, + "3244": 0, + "3247": 15589, + "3248": 15589, + "3256": 2988, + "3257": 13, + "3258": 0, + "3260": 13, + "3261": 13, + "3264": 13, + "3276": 2988, + "3277": 21738, + "3279": 21738, + "3280": 0, + "3282": 21738, + "3283": 21738, + "3284": 21738, + "3285": 21738, + "3288": 79208, + "4644": 316, + "3290": 34538, + "3291": 34538, + "3293": 21738, + "3295": 21738, + "3299": 21738, + "3300": 0, + "3301": 0, + "3303": 21738, + "3304": 21738, + "3305": 21738, + "431": 2988, + "4884": 2988, + "3322": 3304, + "3323": 316, + "3324": 316, + "3325": 316, + "3327": 316, + "3328": 60, + "3332": 316, + "3333": 0, + "3335": 316, + "3339": 316, + "3341": 316, + "3342": 0, + "3345": 316, + "3346": 0, + "3347": 0, + "3289": 34538, + "3352": 316, + "3353": 316, + "3354": 300, + "3355": 300, + "3356": 300, + "3359": 316, + "3360": 316, + "3361": 316, + "3364": 316, + "3365": 316, + "3366": 316, + "3370": 316, + "977": 627, + "3372": 0, + "3376": 316, + "3377": 814, + "3378": 514, + "3379": 214, + "658": 38, + "3384": 316, + "3386": 1072, + "3387": 756, + "3389": 756, + "3390": 756, + "3391": 756, + "3395": 756, + "3396": 300, + "4662": 1595, + "3398": 66, + "3399": 66, + "795": 1002, + "3401": 66, + "3402": 66, + "3403": 0, + "3408": 756, + "3409": 690, + "3411": 690, + "3412": 690, + "3415": 156, + "3417": 156, + "3418": 156, + "3419": 156, + "3425": 1380, + "3426": 690, + "3427": 690, + "3428": 690, + "350": 70, + "3430": 690, + "3432": 690, + "3433": 234, + "3434": 234, + "1255": 6, + "3439": 756, + "3441": 756, + "3442": 30, + "3445": 756, + "3446": 24, + "3451": 316, + "3452": 0, + "3453": 0, + "3454": 0, + "3455": 0, + "432": 5976, + "576": 0, + "3462": 316, + "3463": 316, + "3464": 0, + "3466": 316, + "3467": 300, + "3468": 300, + "3472": 316, + "3474": 316, + "3475": 42, + "3476": 40, + "3478": 100, + "3479": 10, + "3483": 316, + "3485": 316, + "3488": 300, + "3489": 16, + "3494": 16, + "3498": 16, + "3499": 16, + "3503": 316, + "3504": 316, + "3508": 316, + "3510": 316, + "3511": 316, + "3512": 0, + "3513": 0, + "3516": 316, + "4682": 549, + "3518": 316, + "3520": 316, + "3522": 316, + "3532": 2988, + "3533": 364, + "3534": 270, + "3535": 270, + "3536": 270, + "3537": 270, + "3539": 94, + "3540": 270, + "591": 8, + "3550": 2988, + "3551": 2278, + "3552": 4, + "3553": 4, + "3555": 4, + "3556": 4, + "3557": 4, + "593": 8, + "3561": 4, + "594": 8, + "1960": 42662, + "4691": 656, + "3579": 3240, + "3580": 252, + "3582": 252, + "3583": 0, + "3587": 252, + "3588": 0, + "3590": 252, + "3591": 252, + "3592": 252, + "3593": 0, + "3594": 0, + "3595": 0, + "3596": 0, + "1965": 42662, + "3600": 252, + "3601": 96, + "3602": 96, + "3606": 252, + "3607": 2, + "3608": 2, + "3611": 250, + "3612": 160, + "1285": 2786, + "3617": 250, + "3618": 266, + "3619": 16, + "3620": 16, + "3621": 16, + "3622": 16, + "3623": 0, + "3628": 250, + "3630": 250, + "3631": 2, + "4349": 22103, + "1972": 42662, + "3646": 2988, + "3647": 316, + "3649": 316, + "3651": 60, + "3652": 60, + "3653": 60, + "3656": 316, + "3657": 316, + "3658": 316, + "3662": 316, + "3664": 300, + "4907": 104, + "3667": 16, + "3671": 316, + "612": 0, + "3675": 300, + "3679": 316, + "3680": 316, + "3681": 300, + "668": 0, + "3685": 1072, + "3686": 756, + "3687": 456, + "3693": 5325, + "3694": 2337, + "3696": 2337, + "3697": 0, + "3698": 0, + "3701": 2337, + "3702": 2337, + "3703": 2337, + "3704": 2337, + "3706": 2337, + "3707": 1141, + "3709": 2337, + "3712": 2337, + "3716": 2337, + "3721": 8012, + "3722": 3242, + "3723": 3242, + "3727": 2337, + "3732": 2337, + "3733": 35, + "3735": 2302, + "3738": 2337, + "3739": 50, + "3741": 2287, + "3744": 2337, + "3745": 168, + "3748": 2337, + "3749": 656, + "3752": 2337, + "3753": 1723, + "3756": 2337, + "3758": 1729, + "3761": 2337, + "3762": 2, + "3764": 2337, + "3765": 252, + "3767": 2085, + "3771": 2337, + "4490": 114, + "3775": 2337, + "3776": 2337, + "3779": 2337, + "3781": 2337, + "3785": 2337, + "3788": 4674, + "3791": 2337, + "3792": 2337, + "3793": 2337, + "3794": 2337, + "3795": 2337, + "3796": 2337, + "633": 2941, + "3801": 2337, + "3802": 2337, + "3803": 2337, + "3804": 2337, + "3808": 2337, + "3809": 1725, + "3812": 2337, + "3816": 2175, + "3821": 2175, + "3823": 2175, + "3827": 2175, + "3828": 1591, + "3829": 584, + "3830": 542, + "3834": 542, + "3835": 370, + "3836": 360, + "3837": 360, + "3838": 360, + "3839": 360, + "3840": 360, + "4736": 2, + "3371": 316, + "3844": 542, + "641": 54, + "3851": 162, + "3852": 162, + "3854": 162, + "3855": 160, + "3856": 160, + "3858": 162, + "3859": 162, + "3860": 162, + "3861": 162, + "3862": 162, + "4493": 0, + "3866": 2337, + "3867": 2, + "4741": 3285, + "3872": 2337, + "3875": 2337, + "3876": 0, + "3886": 5005, + "3887": 2017, + "3888": 2017, + "3889": 0, + "496": 2988, + "3892": 2017, + "3893": 2017, + "3894": 2017, + "3895": 2017, + "3896": 2017, + "3897": 2017, + "3898": 2017, + "3899": 2017, + "3900": 1076, + "3901": 1076, + "3902": 0, + "3906": 2017, + "651": 0, + "3908": 2017, + "3910": 2017, + "3911": 2017, + "4748": 1284, + "3914": 1820, + "3915": 910, + "3916": 910, + "3919": 2214, + "3920": 1107, + "3924": 2017, + "3930": 1274, + "3932": 2548, + "3933": 1274, + "3934": 1274, + "3935": 1274, + "3936": 1274, + "3942": 2017, + "3943": 0, + "3946": 4034, + "3947": 2017, + "3948": 2017, + "3949": 895, + "3950": 2017, + "3951": 0, + "599": 8, + "3959": 2988, + "3960": 2017, + "3961": 2017, + "3962": 0, + "3966": 2017, + "3969": 2017, + "3972": 2017, + "3973": 2017, + "3984": 2988, + "664": 16, + "3986": 2587, + "3987": 0, + "3990": 2587, + "3991": 230, + "3993": 2357, + "3994": 2357, + "3995": 364, + "3997": 230, + "3397": 66, + "4006": 2988, + "4007": 300, + "4008": 300, + "4009": 1800, + "4012": 300, + "4013": 2, + "4014": 2, + "770": 11787, + "4018": 298, + "4019": 298, + "4020": 298, + "670": 0, + "4024": 600, + "4025": 536, + "4026": 268, + "4027": 268, + "4028": 268, + "4029": 268, + "4030": 268, + "4031": 300, + "4049": 2988, + "4050": 268, + "4051": 268, + "4052": 670, + "4054": 536, + "4055": 268, + "4057": 268, + "4058": 268, + "1359": 0, + "4060": 268, + "4062": 268, + "4063": 268, + "4065": 268, + "4066": 268, + "4067": 268, + "4068": 268, + "681": 0, + "4074": 268, + "4075": 0, + "4078": 268, + "4079": 268, + "4080": 0, + "680": 0, + "4082": 0, + "4083": 0, + "4087": 268, + "4090": 268, + "4091": 0, + "4093": 268, + "4094": 268, + "4095": 0 + } + } +] diff --git a/src/shipit_uplift/tests/test_coverage.py b/src/shipit_uplift/tests/test_coverage.py new file mode 100644 index 0000000000..fd90f7f956 --- /dev/null +++ b/src/shipit_uplift/tests/test_coverage.py @@ -0,0 +1,62 @@ +# -*- coding: utf-8 -*- +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +from __future__ import absolute_import + +import json +import responses +from shipit_uplift import ( + coverage_by_changeset_impl, coverage_summary_by_changeset_impl, + coverage_for_file_impl +) + + +def test_coverage_supported_extensions_api(client): + ''' + List supported extensions for coverage analysis through api + ''' + resp = client.get('/coverage/supported_extensions') + assert resp.status_code == 200 + data = json.loads(resp.data.decode('utf-8')) + assert set(data) == set([ + 'c', 'h', 'cpp', 'cc', 'cxx', 'hh', 'hpp', + 'hxx', 'js', 'jsm', 'xul', 'xml', 'html', 'xhtml', + ]) + + +@responses.activate +def test_coverage_by_changeset_impl(client, coverage_builds): + ''' + Get changeset coverage information from the internet + ''' + responses.add_passthru('https://hg.mozilla.org/mozilla-central/') + responses.add_passthru('https://api.pub.build.mozilla.org/mapper/gecko-dev/rev') + responses.add_passthru('https://codecov.io/api/gh/marco-c/gecko-dev') + for changeset in coverage_builds['info']: + data = coverage_by_changeset_impl.generate(changeset) + assert data == coverage_builds['info'][changeset] + + +def test_coverage_summary_by_changeset_impl(client, coverage_builds): + ''' + Get changeset coverage summary from coverage information + ''' + for changeset in coverage_builds['summary']: + coverage_data = coverage_builds['info'][changeset] + summary = coverage_summary_by_changeset_impl.generate(coverage_data) + assert summary == coverage_builds['summary'][changeset] + + +@responses.activate +def test_coverage_for_file_impl(client, coverage_changeset_by_file): + ''' + Get code coverage information for a given file at a given changeset, from the internet + ''' + responses.add_passthru('https://hg.mozilla.org/mozilla-central/') + responses.add_passthru('https://api.pub.build.mozilla.org/mapper/gecko-dev/rev') + responses.add_passthru('https://codecov.io/api/gh/marco-c/gecko-dev') + for file_coverage in coverage_changeset_by_file: + data = coverage_for_file_impl.generate(file_coverage['changeset'], file_coverage['path']) + assert data == file_coverage['data']