[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