[PATCH 2 of 5] run-tests: factor out json write code into another method
Yuya Nishihara
yuya at tcha.org
Wed Jun 7 09:04:37 EDT 2017
On Tue, 6 Jun 2017 14:39:25 -0700, Siddharth Agarwal wrote:
> # HG changeset patch
> # User Siddharth Agarwal <sid0 at fb.com>
> # Date 1496779855 25200
> # Tue Jun 06 13:10:55 2017 -0700
> # Node ID 737bb0771ca0bff0673f861c068018c8f606cf7d
> # Parent 2d78617dd0b04d927beff7bc8bb2a1329b92ed8e
> run-tests: factor out json write code into another method
> @@ -2060,6 +2031,40 @@ class TextTestRunner(unittest.TextTestRu
> s.appendChild(t)
> outf.write(doc.toprettyxml(indent=' ', encoding='utf-8'))
>
> + @staticmethod
> + def _writejson(result, outf):
> + timesd = {}
> + for tdata in result.times:
> + test = tdata[0]
> + timesd[test] = tdata[1:]
> +
> + outcome = {}
> + groups = [('success', ((tc, None)
> + for tc in result.successes)),
> + ('failure', result.failures),
> + ('skip', result.skipped)]
> + for res, testcases in groups:
> + for tc, __ in testcases:
> + if tc.name in timesd:
> + diff = result.faildata.get(tc.name, b'')
> + tres = {'result': res,
> + 'time': ('%0.3f' % timesd[tc.name][2]),
> + 'cuser': ('%0.3f' % timesd[tc.name][0]),
> + 'csys': ('%0.3f' % timesd[tc.name][1]),
> + 'start': ('%0.3f' % timesd[tc.name][3]),
> + 'end': ('%0.3f' % timesd[tc.name][4]),
> + 'diff': diff.decode('unicode_escape'),
> + }
> + else:
> + # blacklisted test
> + tres = {'result': res}
> +
> + outcome[tc.name] = tres
> + jsonout = json.dumps(outcome, sort_keys=True, indent=4,
> + separators=(',', ': '))
> + outf.writelines(("testreport =", jsonout))
> +
> +
Drooped double empty lines to silence test-check-commit.t.
More information about the Mercurial-devel
mailing list