diff --git a/python/publish/__init__.py b/python/publish/__init__.py index 56c01aa9..a596b867 100644 --- a/python/publish/__init__.py +++ b/python/publish/__init__.py @@ -18,7 +18,7 @@ digest_mime_type = 'application/gzip' digest_encoding = 'base64' digest_header = f'{digest_prefix}{digest_mime_type};{digest_encoding},' -digit_space = '  ' +digit_space = ' ' punctuation_space = ' ' comment_mode_off = 'off' @@ -637,7 +637,7 @@ def get_long_summary_with_runs_md(stats: UnitTestRunResultsOrDeltaResults, runs_error=as_stat_number(stats.runs_error, error_digits, error_delta_digits, test_errors_label_md) ) if get_magnitude(stats.runs_error) else '' runs_line = '{runs} {runs_succ} {runs_skip} {runs_fail}{runs_error_part}\n'.format( - runs=as_stat_number(stats.runs, files_digits, files_delta_digits, 'runs '), + runs=as_stat_number(stats.runs, files_digits, files_delta_digits, 'runs '), runs_succ=as_stat_number(stats.runs_succ, success_digits, success_delta_digits, passed_tests_label_md), runs_skip=as_stat_number(stats.runs_skip, skip_digits, skip_delta_digits, skipped_tests_label_md), runs_fail=as_stat_number(stats.runs_fail, fail_digits, fail_delta_digits, failed_tests_label_md), diff --git a/python/test/files/dart/json/tests.annotations b/python/test/files/dart/json/tests.annotations index d610995b..bcb21cb3 100644 --- a/python/test/files/dart/json/tests.annotations +++ b/python/test/files/dart/json/tests.annotations @@ -8,9 +8,9 @@ 'title': '2 errors, 1 fail, 1 skipped, 16 pass in 0s', 'summary': '20 tests\u2002\u2003\u200316 :white_check_mark:\u2003\u20030s ' - ':stopwatch:\n\u205f\u20044 suites\u2003\u2003\u205f\u20041 :zzz:\n\u205f\u2004' - '1 files\u2004\u2002\u2003\u2003\u205f\u20041 :x:\u2003\u20032 :fire:\n' - '\nResults for commit commit s.\n\n' + ':stopwatch:\n\u20074 suites\u2003\u2003\u20071 :zzz:\n\u20071 files\u2004\u2002' + '\u2003\u2003\u20071 :x:\u2003\u20032 :fire:\n\nResults for commit ' + 'commit s.\n\n' '[test-results]:data:application/gzip;base64,H4sIAAAAAAAC/1WMTQqAIBBGr' 'yKuW1REiy4TYkVDpTHqKrp74w+au3nvY97DNzhXwyfWNYwbBzbAQLA4FBa0ImwJabB+6j' 'PMxknpP8diDrhTK4pNwFmJFVGjz5BBp3LR31UwitIL/MsF/tekvi6wBOliZhf8/QAMgVR' diff --git a/python/test/files/junit-xml/junit.multiresult.annotations b/python/test/files/junit-xml/junit.multiresult.annotations index 68fbc497..900001bf 100644 --- a/python/test/files/junit-xml/junit.multiresult.annotations +++ b/python/test/files/junit-xml/junit.multiresult.annotations @@ -8,7 +8,7 @@ 'title': '1 errors, 1 fail, 1 skipped, 1 pass in 1s', 'summary': '1 files\u2004\u20031 suites\u2004\u2003\u20021s :stopwatch:\n4 tests\u2003' - '1 :white_check_mark:\u20031 :zzz:\u20031 :x:\u20031 :fire:\n4 runs\u2006\u2003' + '1 :white_check_mark:\u20031 :zzz:\u20031 :x:\u20031 :fire:\n4 runs\u200a\u2003' '-2 :white_check_mark:\u20033 :zzz:\u20032 :x:\u20031 :fire:\n\n' 'Results for commit commit s.\n\n' '[test-results]:data:application/gzip;base64,H4sIAAAAAAAC/1WMOw6AIBAFr' diff --git a/python/test/files/junit-xml/mocha/latex-utensils.annotations b/python/test/files/junit-xml/mocha/latex-utensils.annotations index e60359a9..fe8ae8dc 100644 --- a/python/test/files/junit-xml/mocha/latex-utensils.annotations +++ b/python/test/files/junit-xml/mocha/latex-utensils.annotations @@ -7,11 +7,10 @@ 'output': { 'title': 'All 101 tests pass in 0s', 'summary': - '\u205f\u2004\u205f\u20041 files\u2004\u2003\u205f\u2004\u205f\u20041 ' - 'suites\u2004\u2003\u20020s :stopwatch:\n101 tests\u2003101 ' - ':white_check_mark:\u20030 :zzz:\u20030 :x:\n109 runs\u2006\u2003109 ' - ':white_check_mark:\u20030 :zzz:\u20030 :x:\n\nResults for commit ' - 'commit s.\n\n' + '\u2007\u20071 files\u2004\u2003\u2007\u20071 suites\u2004\u2003\u2002' + '0s :stopwatch:\n101 tests\u2003101 :white_check_mark:\u20030 :zzz:\u2003' + '0 :x:\n109 runs\u200a\u2003109 :white_check_mark:\u20030 :zzz:\u2003' + '0 :x:\n\nResults for commit commit s.\n\n' '[test-results]:data:application/gzip;base64,H4sIAAAAAAAC/12MMQ6AIBAEv' '0KoLaDUzxCCEC8imAMq498liIJ2N7O5OagBqwOdCB8IDQniC3NCGcG7jCxjHmKZGH9IhK' 'TUX62w9x/CSLAfoRE9VoPJ3c2xQks204qFu2Dhvqf8tkHMUC8SFknPC30yEpLlAAAA\n', diff --git a/python/test/files/junit-xml/pytest/junit.gloo.elastic.annotations b/python/test/files/junit-xml/pytest/junit.gloo.elastic.annotations index 5c66e6a1..d8c15b5c 100644 --- a/python/test/files/junit-xml/pytest/junit.gloo.elastic.annotations +++ b/python/test/files/junit-xml/pytest/junit.gloo.elastic.annotations @@ -8,9 +8,8 @@ 'title': 'All 10 tests pass, 4 skipped in 1m 12s', 'summary': '14 tests\u2002\u2003\u200310 :white_check_mark:\u2003\u20031m 12s ' - ':stopwatch:\n\u205f\u20041 suites\u2003\u2003\u205f\u20044 :zzz:\n\u205f\u2004' - '1 files\u2004\u2002\u2003\u2003\u205f\u20040 :x:\n\nResults for ' - 'commit commit s.\n\n' + ':stopwatch:\n\u20071 suites\u2003\u2003\u20074 :zzz:\n\u20071 files\u2004\u2002' + '\u2003\u2003\u20070 :x:\n\nResults for commit commit s.\n\n' '[test-results]:data:application/gzip;base64,H4sIAAAAAAAC/1WMQQqAIBBFr' 'yKuW1QEQZcJMaMhzRh1Fd290SxrN+/94R18Bq0cH1hTMe4C+BemgMKD3Qj7lpgWn7bugd' 'EFKaOpi1lhJ1NeZgGaRPlQiBazwbC9xXj/grcovcSfXOJvTVpjwBPki7lF8PMCyjZFT+I' diff --git a/python/test/files/junit-xml/pytest/junit.gloo.elastic.spark.tf.annotations b/python/test/files/junit-xml/pytest/junit.gloo.elastic.spark.tf.annotations index 0838e81e..19251c83 100644 --- a/python/test/files/junit-xml/pytest/junit.gloo.elastic.spark.tf.annotations +++ b/python/test/files/junit-xml/pytest/junit.gloo.elastic.spark.tf.annotations @@ -8,9 +8,8 @@ 'title': 'All 20 tests pass, 2 skipped in 10m 27s', 'summary': '22 tests\u2002\u2003\u200320 :white_check_mark:\u2003\u200310m 27s ' - ':stopwatch:\n\u205f\u20041 suites\u2003\u2003\u205f\u20042 :zzz:\n\u205f\u2004' - '1 files\u2004\u2002\u2003\u2003\u205f\u20040 :x:\n\nResults for ' - 'commit commit s.\n\n' + ':stopwatch:\n\u20071 suites\u2003\u2003\u20072 :zzz:\n\u20071 files\u2004\u2002' + '\u2003\u2003\u20070 :x:\n\nResults for commit commit s.\n\n' '[test-results]:data:application/gzip;base64,H4sIAAAAAAAC/1WMMQ6AIAxFr' '0KYHZRBEy9jCGpsFDAFJuPdLaigW9/7zTv4DNvkeM+ainEXwGcYA0oP1hC2oiNBk4+jEC' '8MLigVTV3MCns0WcwSNhLlY0K0+BgMJhfj/QveovQSf3KJvzVltQZP8FzMLZKfF82Ojyn' diff --git a/python/test/files/junit-xml/pytest/junit.gloo.elastic.spark.torch.annotations b/python/test/files/junit-xml/pytest/junit.gloo.elastic.spark.torch.annotations index 5a5879aa..ed382cfd 100644 --- a/python/test/files/junit-xml/pytest/junit.gloo.elastic.spark.torch.annotations +++ b/python/test/files/junit-xml/pytest/junit.gloo.elastic.spark.torch.annotations @@ -8,9 +8,8 @@ 'title': 'All 22 tests pass in 11m 10s', 'summary': '22 tests\u2002\u2003\u200322 :white_check_mark:\u2003\u200311m 10s ' - ':stopwatch:\n\u205f\u20041 suites\u2003\u2003\u205f\u20040 :zzz:\n\u205f\u2004' - '1 files\u2004\u2002\u2003\u2003\u205f\u20040 :x:\n\nResults for ' - 'commit commit s.\n\n' + ':stopwatch:\n\u20071 suites\u2003\u2003\u20070 :zzz:\n\u20071 files\u2004\u2002' + '\u2003\u2003\u20070 :x:\n\nResults for commit commit s.\n\n' '[test-results]:data:application/gzip;base64,H4sIAAAAAAAC/12MOw6AIBAFr' '0KoLdRCEy9jCErc+MEsUBnv7oKIYrczbzMHV7CMhnesKhg3DmyCwaGwoDfCpi1J0GT9WN' 'cP9MZJ+TMz7GTSf68ELJkYETVGg25LRX9nwVu8vcCfXOBvTep1BUsQL2Ymwc8LUe9HxOM' diff --git a/python/test/files/junit-xml/pytest/junit.gloo.standalone.annotations b/python/test/files/junit-xml/pytest/junit.gloo.standalone.annotations index 9cdeb5be..d122405b 100644 --- a/python/test/files/junit-xml/pytest/junit.gloo.standalone.annotations +++ b/python/test/files/junit-xml/pytest/junit.gloo.standalone.annotations @@ -8,9 +8,8 @@ 'title': 'All 80 tests pass, 17 skipped in 3m 25s', 'summary': '97 tests\u2002\u2003\u200380 :white_check_mark:\u2003\u20033m 25s ' - ':stopwatch:\n\u205f\u20041 suites\u2003\u200317 :zzz:\n\u205f\u20041 ' - 'files\u2004\u2002\u2003\u2003\u205f\u20040 :x:\n\nResults for commit ' - 'commit s.\n\n' + ':stopwatch:\n\u20071 suites\u2003\u200317 :zzz:\n\u20071 files\u2004\u2002\u2003\u2003\u2007' + '0 :x:\n\nResults for commit commit s.\n\n' '[test-results]:data:application/gzip;base64,H4sIAAAAAAAC/1WMTQqAIBBGr' 'yKuW1QQ/VwmxIqGSmPUVXT3xrK03bz3De/gE6yj4R0rMsaNA/vB4FBY0IqwzCsSNFk/tv' 'ULvXFSkmnyaBbYfSD+TAJWMvFlRNQYDDr1Jf39Kz4iCd4i6d2c5qTeNrAE4WJmFvy8ADN' diff --git a/python/test/files/junit-xml/pytest/junit.gloo.static.annotations b/python/test/files/junit-xml/pytest/junit.gloo.static.annotations index e28a95ae..951ee896 100644 --- a/python/test/files/junit-xml/pytest/junit.gloo.static.annotations +++ b/python/test/files/junit-xml/pytest/junit.gloo.static.annotations @@ -8,9 +8,8 @@ 'title': 'All 12 tests pass, 12 skipped in 1m 9s', 'summary': '24 tests\u2002\u2003\u200312 :white_check_mark:\u2003\u20031m 9s ' - ':stopwatch:\n\u205f\u20041 suites\u2003\u200312 :zzz:\n\u205f\u20041 ' - 'files\u2004\u2002\u2003\u2003\u205f\u20040 :x:\n\nResults for commit ' - 'commit s.\n\n' + ':stopwatch:\n\u20071 suites\u2003\u200312 :zzz:\n\u20071 files\u2004\u2002\u2003\u2003\u2007' + '0 :x:\n\nResults for commit commit s.\n\n' '[test-results]:data:application/gzip;base64,H4sIAAAAAAAC/1WMTQqAIBBGr' 'yKuW1REUJcJsaQhzRh1Fd29sR+z3bz3DW/nCvTkeM+qgnEXwCcYAwoPdiVsO2JafNzq5o' 'XBBSnjd/2ZBba/UQI0mTKJCdHiYzCsKRnvX/EWWfASWe/iPCetMeAJnou5WfDjBP7Rpw/' diff --git a/python/test/files/junit-xml/pytest/junit.mpi.standalone.annotations b/python/test/files/junit-xml/pytest/junit.mpi.standalone.annotations index 41c2604d..e217dc05 100644 --- a/python/test/files/junit-xml/pytest/junit.mpi.standalone.annotations +++ b/python/test/files/junit-xml/pytest/junit.mpi.standalone.annotations @@ -8,9 +8,8 @@ 'title': 'All 96 tests pass, 1 skipped in 3m 39s', 'summary': '97 tests\u2002\u2003\u200396 :white_check_mark:\u2003\u20033m 39s ' - ':stopwatch:\n\u205f\u20041 suites\u2003\u2003\u205f\u20041 :zzz:\n\u205f\u2004' - '1 files\u2004\u2002\u2003\u2003\u205f\u20040 :x:\n\nResults for ' - 'commit commit s.\n\n' + ':stopwatch:\n\u20071 suites\u2003\u2003\u20071 :zzz:\n\u20071 files\u2004\u2002' + '\u2003\u2003\u20070 :x:\n\nResults for commit commit s.\n\n' '[test-results]:data:application/gzip;base64,H4sIAAAAAAAC/1WMOw6AIBAFr' '0KoLdRCo5cxBCFu/GAWqIx3d1FE7N7MS+bgGhZlec+qgnHrwSUYPQoHZiOsq44EXS6cXf' 'vCYL2UwTSfmWGPgUdoAQuJMgmFaDAa9Fsqhv0LPuLr3Zzlbs5r0qwrOIK4mJ0EPy/3HdY' diff --git a/python/test/files/junit-xml/pytest/junit.mpi.static.annotations b/python/test/files/junit-xml/pytest/junit.mpi.static.annotations index b8467071..88026b3c 100644 --- a/python/test/files/junit-xml/pytest/junit.mpi.static.annotations +++ b/python/test/files/junit-xml/pytest/junit.mpi.static.annotations @@ -8,9 +8,8 @@ 'title': 'All 24 tests pass in 2m 4s', 'summary': '24 tests\u2002\u2003\u200324 :white_check_mark:\u2003\u20032m 4s ' - ':stopwatch:\n\u205f\u20041 suites\u2003\u2003\u205f\u20040 :zzz:\n\u205f\u2004' - '1 files\u2004\u2002\u2003\u2003\u205f\u20040 :x:\n\nResults for ' - 'commit commit s.\n\n' + ':stopwatch:\n\u20071 suites\u2003\u2003\u20070 :zzz:\n\u20071 files\u2004\u2002' + '\u2003\u2003\u20070 :x:\n\nResults for commit commit s.\n\n' '[test-results]:data:application/gzip;base64,H4sIAAAAAAAC/12MOwqAMBAFr' 'xK2tlCx8jISYsTFT2STVOLd3ajkY/dmHswJE67aQi+aSoD16CKMnqRDswdsOxZ8uXAmGK' 'xX6mcWPNjUUUwS10JoIkOfIb/HYthF8BWp93CWezivKbNt6Bi+Jews4boBWo1x8eMAAAA' diff --git a/python/test/files/junit-xml/pytest/junit.spark.integration.1.annotations b/python/test/files/junit-xml/pytest/junit.spark.integration.1.annotations index 42c83b65..309d9557 100644 --- a/python/test/files/junit-xml/pytest/junit.spark.integration.1.annotations +++ b/python/test/files/junit-xml/pytest/junit.spark.integration.1.annotations @@ -8,9 +8,8 @@ 'title': 'All 33 tests pass, 2 skipped in 2m 45s', 'summary': '35 tests\u2002\u2003\u200333 :white_check_mark:\u2003\u20032m 45s ' - ':stopwatch:\n\u205f\u20041 suites\u2003\u2003\u205f\u20042 :zzz:\n\u205f\u2004' - '1 files\u2004\u2002\u2003\u2003\u205f\u20040 :x:\n\nResults for ' - 'commit commit s.\n\n' + ':stopwatch:\n\u20071 suites\u2003\u2003\u20072 :zzz:\n\u20071 files\u2004\u2002' + '\u2003\u2003\u20070 :x:\n\nResults for commit commit s.\n\n' '[test-results]:data:application/gzip;base64,H4sIAAAAAAAC/1WMOw6AIBAFr' '0KoLfxECy9jCErcKGAWqIx3d1GzavdmXjK7NLBOQfaiKoQMCSLDmFBF8C5j15KgK+azYR' 'hC0jqb5jULbGRqFkbBSqJkMSF6fAwmx8W8f8FbvL2LP7mLvzXtrYVI8CwRZiWPEwEjqVj' diff --git a/python/test/files/junit-xml/pytest/junit.spark.integration.2.annotations b/python/test/files/junit-xml/pytest/junit.spark.integration.2.annotations index b1103ad4..8f977394 100644 --- a/python/test/files/junit-xml/pytest/junit.spark.integration.2.annotations +++ b/python/test/files/junit-xml/pytest/junit.spark.integration.2.annotations @@ -8,9 +8,8 @@ 'title': 'All 33 tests pass, 2 skipped in 2m 52s', 'summary': '35 tests\u2002\u2003\u200333 :white_check_mark:\u2003\u20032m 52s ' - ':stopwatch:\n\u205f\u20041 suites\u2003\u2003\u205f\u20042 :zzz:\n\u205f\u2004' - '1 files\u2004\u2002\u2003\u2003\u205f\u20040 :x:\n\nResults for ' - 'commit commit s.\n\n' + ':stopwatch:\n\u20071 suites\u2003\u2003\u20072 :zzz:\n\u20071 files\u2004\u2002' + '\u2003\u2003\u20070 :x:\n\nResults for commit commit s.\n\n' '[test-results]:data:application/gzip;base64,H4sIAAAAAAAC/1WMSwqAMAwFr' '1K6duEHEbxMKVUx+Kmk7Uq8u6mfVHeZeWF2OcDcO9mKIhPSBfAMXUDtwa4Rm5IETT6OVf' '2CcsGYaKpkJtjI8L8aNMwkchY9osXHYFi5GO9f8Bapd/End/G3ZuyygCd4LuFGLY8TfGY' diff --git a/python/test/files/junit-xml/tst/disabled.annotations b/python/test/files/junit-xml/tst/disabled.annotations index a7c3e27f..6bc432e1 100644 --- a/python/test/files/junit-xml/tst/disabled.annotations +++ b/python/test/files/junit-xml/tst/disabled.annotations @@ -7,11 +7,10 @@ 'output': { 'title': '1 errors, 19 fail, 5 skipped, 6 pass in 0s', 'summary': - '\u205f\u20041 files\u2004\u2003\u205f\u20042 suites\u2004\u2003\u2002' - '0s :stopwatch:\n31 tests\u2003\u205f\u20046 :white_check_mark:\u2003' - '5 :zzz:\u200319 :x:\u20031 :fire:\n31 runs\u2006\u200311 ' - ':white_check_mark:\u20030 :zzz:\u200319 :x:\u20031 :fire:\n\nResults ' - 'for commit commit s.\n\n' + '\u20071 files\u2004\u2003\u20072 suites\u2004\u2003\u20020s ' + ':stopwatch:\n31 tests\u2003\u20076 :white_check_mark:\u20035 :zzz:\u2003' + '19 :x:\u20031 :fire:\n31 runs\u200a\u200311 :white_check_mark:\u2003' + '0 :zzz:\u200319 :x:\u20031 :fire:\n\nResults for commit commit s.\n\n' '[test-results]:data:application/gzip;base64,H4sIAAAAAAAC/02NQQqAIBBFr' 'yKuW2RRUJcJsaIhyxh1Fd29sdLczXsf3px8Bj1Z3jNRMG49uAcqgtGjdGB2wpKQBhemWk' 'QYrFeKTPuLFQ4STRKzBB3aXTITosHvHfo9FcMdg+IXb7CMnPcekeeU2TZwBN/F7CL5dQP' diff --git a/python/test/files/nunit/mstest/clicketyclackety.annotations b/python/test/files/nunit/mstest/clicketyclackety.annotations index 821bcd8d..cf20a207 100644 --- a/python/test/files/nunit/mstest/clicketyclackety.annotations +++ b/python/test/files/nunit/mstest/clicketyclackety.annotations @@ -7,9 +7,9 @@ 'output': { 'title': '10 fail, 12 pass in 0s', 'summary': - '\u205f\u20041 files\u2004\u2003\u205f\u20048 suites\u2004\u2003\u2002' - '0s :stopwatch:\n22 tests\u200312 :white_check_mark:\u20030 :zzz:\u2003' - '10 :x:\n23 runs\u2006\u200313 :white_check_mark:\u20030 :zzz:\u2003' + '\u20071 files\u2004\u2003\u20078 suites\u2004\u2003\u20020s ' + ':stopwatch:\n22 tests\u200312 :white_check_mark:\u20030 :zzz:\u2003' + '10 :x:\n23 runs\u200a\u200313 :white_check_mark:\u20030 :zzz:\u2003' '10 :x:\n\nResults for commit commit s.\n\n' '[test-results]:data:application/gzip;base64,H4sIAAAAAAAC/02MSw6AIAxEr' '0JYu/CzMV7GENTYCGJKWRnvbiEo7Ppmpu+WG5jVy0l0jZA+ACUYGZaAisCdjC0jFxSrvv' diff --git a/python/test/files/nunit/nunit3/jenkins/NUnit-correct.annotations b/python/test/files/nunit/nunit3/jenkins/NUnit-correct.annotations index 99094b22..8b60e0ad 100644 --- a/python/test/files/nunit/nunit3/jenkins/NUnit-correct.annotations +++ b/python/test/files/nunit/nunit3/jenkins/NUnit-correct.annotations @@ -8,9 +8,8 @@ 'title': '1 errors, 1 fail, 8 skipped, 18 pass in 0s', 'summary': '28 tests\u2002\u2003\u200318 :white_check_mark:\u2003\u20030s ' - ':stopwatch:\n11 suites\u2003\u2003\u205f\u20048 :zzz:\n\u205f\u20041 ' - 'files\u2004\u2002\u2003\u2003\u205f\u20041 :x:\u2003\u20031 :fire:\n\n' - 'Results for commit commit s.\n\n' + ':stopwatch:\n11 suites\u2003\u2003\u20078 :zzz:\n\u20071 files\u2004\u2002\u2003\u2003\u2007' + '1 :x:\u2003\u20031 :fire:\n\nResults for commit commit s.\n\n' '[test-results]:data:application/gzip;base64,H4sIAAAAAAAC/1WMMQ6AIAxFr' '0KYHdTJeBlDUGKjiGlhMt7dIqi49b3fvEMaWCeSvWgqISmATxBpDKg8uI25ZuTFx63tHh' 'goaB2/C7PAzuYTRsGa60lMiA6zwbC9xXj/gkl8vZuL3M1lTTtrwTPkS9Cs5HkBSPFg+uI' diff --git a/python/test/files/nunit/nunit3/jenkins/NUnit-correct2.annotations b/python/test/files/nunit/nunit3/jenkins/NUnit-correct2.annotations index bdf09458..f8b19140 100644 --- a/python/test/files/nunit/nunit3/jenkins/NUnit-correct2.annotations +++ b/python/test/files/nunit/nunit3/jenkins/NUnit-correct2.annotations @@ -7,9 +7,9 @@ 'output': { 'title': 'All 183 tests pass in 0s', 'summary': - '\u205f\u2004\u205f\u20041 files\u2004\u2003102 suites\u2004\u2003\u2002' - '0s :stopwatch:\n183 tests\u2003183 :white_check_mark:\u20030 :zzz:\u2003' - '0 :x:\n218 runs\u2006\u2003218 :white_check_mark:\u20030 :zzz:\u2003' + '\u2007\u20071 files\u2004\u2003102 suites\u2004\u2003\u20020s ' + ':stopwatch:\n183 tests\u2003183 :white_check_mark:\u20030 :zzz:\u2003' + '0 :x:\n218 runs\u200a\u2003218 :white_check_mark:\u20030 :zzz:\u2003' '0 :x:\n\nResults for commit commit s.\n\n' '[test-results]:data:application/gzip;base64,H4sIAAAAAAAC/12MSw6AIAwFr' '0JYu/CzMV7GEITY+MGUsjLe3YoY0V1nXjq7tDAbLztRFUL6AHRDWTMOARWBW1mUjDxRHN' diff --git a/python/test/files/nunit/nunit3/jenkins/NUnit-correct3.annotations b/python/test/files/nunit/nunit3/jenkins/NUnit-correct3.annotations index f29fd970..f678db2a 100644 --- a/python/test/files/nunit/nunit3/jenkins/NUnit-correct3.annotations +++ b/python/test/files/nunit/nunit3/jenkins/NUnit-correct3.annotations @@ -8,9 +8,8 @@ 'title': 'All 22 tests pass in 4m 24s', 'summary': '22 tests\u2002\u2003\u200322 :white_check_mark:\u2003\u20034m 24s ' - ':stopwatch:\n13 suites\u2003\u2003\u205f\u20040 :zzz:\n\u205f\u20041 ' - 'files\u2004\u2002\u2003\u2003\u205f\u20040 :x:\n\nResults for commit ' - 'commit s.\n\n' + ':stopwatch:\n13 suites\u2003\u2003\u20070 :zzz:\n\u20071 files\u2004\u2002\u2003\u2003\u2007' + '0 :x:\n\nResults for commit commit s.\n\n' '[test-results]:data:application/gzip;base64,H4sIAAAAAAAC/12MOw6AIBAFr' '0KoLRSNhZcxBDVuFDELVMa7uwh+uzfzktn4AHNvecOKjHHrwUUoiTqP0oFZiEVdkaDPhV' 'eIC1rrlfqZCVYy+S0GCfNH9IgGk0G/3MWwP8Eont7Jr9zJ75oyWoMjSIvZUfL9APCIHb/' diff --git a/python/test/files/nunit/nunit3/jenkins/NUnit-healthReport.annotations b/python/test/files/nunit/nunit3/jenkins/NUnit-healthReport.annotations index 5ba02e5b..0a746420 100644 --- a/python/test/files/nunit/nunit3/jenkins/NUnit-healthReport.annotations +++ b/python/test/files/nunit/nunit3/jenkins/NUnit-healthReport.annotations @@ -8,8 +8,8 @@ 'title': '1 fail, 9 pass in 1s', 'summary': '10 tests\u2002\u2003\u20039 :white_check_mark:\u2003\u20031s ' - ':stopwatch:\n\u205f\u20041 suites\u2003\u20030 :zzz:\n\u205f\u20041 ' - 'files\u2004\u2002\u2003\u20031 :x:\n\nResults for commit commit s.\n\n' + ':stopwatch:\n\u20071 suites\u2003\u20030 :zzz:\n\u20071 files\u2004\u2002\u2003\u2003' + '1 :x:\n\nResults for commit commit s.\n\n' '[test-results]:data:application/gzip;base64,H4sIAAAAAAAC/02MQQ6AIAwEv' '0I4e9CjfoYQhNgoYAqcjH8XEaG3zu52Lm7g0IEvbBoYDwligzWhjOBdxVzEUo0/iJCUys' 'ncgx3OHPSFkXDQf6ERPdYJJteE7019H3ddYWIrTGXKWwsxQ71Y2CS/HxbYkAffAAAA\n', diff --git a/python/test/files/nunit/nunit3/jenkins/NUnit-issue33493.annotations b/python/test/files/nunit/nunit3/jenkins/NUnit-issue33493.annotations index 7c4ad87a..4093bcc2 100644 --- a/python/test/files/nunit/nunit3/jenkins/NUnit-issue33493.annotations +++ b/python/test/files/nunit/nunit3/jenkins/NUnit-issue33493.annotations @@ -8,7 +8,7 @@ 'title': 'All 1 tests pass, 1 skipped in 6s', 'summary': '1 files\u2004\u20032 suites\u2004\u2003\u20026s :stopwatch:\n2 tests\u2003' - '1 :white_check_mark:\u20031 :zzz:\u20030 :x:\n2 runs\u2006\u20032 ' + '1 :white_check_mark:\u20031 :zzz:\u20030 :x:\n2 runs\u200a\u20032 ' ':white_check_mark:\u20030 :zzz:\u20030 :x:\n\nResults for commit ' 'commit s.\n\n' '[test-results]:data:application/gzip;base64,H4sIAAAAAAAC/1WMMQ6AIBAEv' diff --git a/python/test/files/nunit/nunit3/jenkins/NUnit-issue44527.annotations b/python/test/files/nunit/nunit3/jenkins/NUnit-issue44527.annotations index 712b453f..bacfefec 100644 --- a/python/test/files/nunit/nunit3/jenkins/NUnit-issue44527.annotations +++ b/python/test/files/nunit/nunit3/jenkins/NUnit-issue44527.annotations @@ -7,10 +7,10 @@ 'output': { 'title': '140 fail, 6 pass in 14m 11s', 'summary': - '\u205f\u2004\u205f\u20041 files\u2004\u2003155 suites\u2004\u2003\u2002' - '14m 11s :stopwatch:\n146 tests\u2003\u205f\u2004\u205f\u20046 ' - ':white_check_mark:\u20030 :zzz:\u2003140 :x:\n150 runs\u2006\u2003\u205f\u2004\u205f\u2004' - '6 :white_check_mark:\u20030 :zzz:\u2003144 :x:\n\nResults for commit ' + '\u2007\u20071 files\u2004\u2003155 suites\u2004\u2003\u200214m 11s ' + ':stopwatch:\n146 tests\u2003\u2007\u20076 :white_check_mark:\u20030 ' + ':zzz:\u2003140 :x:\n150 runs\u200a\u2003\u2007\u20076 ' + ':white_check_mark:\u20030 :zzz:\u2003144 :x:\n\nResults for commit ' 'commit s.\n\n' '[test-results]:data:application/gzip;base64,H4sIAAAAAAAC/02NSw6AIAwFr' '0JYu9BEjPEyhqDExg+mwMp4dysfZdeZ175eXMM2Wz6wpmLcenARhCCcPEoH5iDRizen0I' @@ -1916,10 +1916,10 @@ 'output': { 'title': '140 fail, 6 pass in 14m 11s', 'summary': - '\u205f\u2004\u205f\u20041 files\u2004\u2003155 suites\u2004\u2003\u2002' - '14m 11s :stopwatch:\n146 tests\u2003\u205f\u2004\u205f\u20046 ' - ':white_check_mark:\u20030 :zzz:\u2003140 :x:\n150 runs\u2006\u2003\u205f\u2004\u205f\u2004' - '6 :white_check_mark:\u20030 :zzz:\u2003144 :x:\n\nResults for commit ' + '\u2007\u20071 files\u2004\u2003155 suites\u2004\u2003\u200214m 11s ' + ':stopwatch:\n146 tests\u2003\u2007\u20076 :white_check_mark:\u20030 ' + ':zzz:\u2003140 :x:\n150 runs\u200a\u2003\u2007\u20076 ' + ':white_check_mark:\u20030 :zzz:\u2003144 :x:\n\nResults for commit ' 'commit s.\n\n' '[test-results]:data:application/gzip;base64,H4sIAAAAAAAC/02NSw6AIAwFr' '0JYu9BEjPEyhqDExg+mwMp4dysfZdeZ175eXMM2Wz6wpmLcenARhCCcPEoH5iDRizen0I' @@ -3639,10 +3639,10 @@ 'output': { 'title': '140 fail, 6 pass in 14m 11s', 'summary': - '\u205f\u2004\u205f\u20041 files\u2004\u2003155 suites\u2004\u2003\u2002' - '14m 11s :stopwatch:\n146 tests\u2003\u205f\u2004\u205f\u20046 ' - ':white_check_mark:\u20030 :zzz:\u2003140 :x:\n150 runs\u2006\u2003\u205f\u2004\u205f\u2004' - '6 :white_check_mark:\u20030 :zzz:\u2003144 :x:\n\nResults for commit ' + '\u2007\u20071 files\u2004\u2003155 suites\u2004\u2003\u200214m 11s ' + ':stopwatch:\n146 tests\u2003\u2007\u20076 :white_check_mark:\u20030 ' + ':zzz:\u2003140 :x:\n150 runs\u200a\u2003\u2007\u20076 ' + ':white_check_mark:\u20030 :zzz:\u2003144 :x:\n\nResults for commit ' 'commit s.\n\n' '[test-results]:data:application/gzip;base64,H4sIAAAAAAAC/02NSw6AIAwFr' '0JYu9BEjPEyhqDExg+mwMp4dysfZdeZ175eXMM2Wz6wpmLcenARhCCcPEoH5iDRizen0I' diff --git a/python/test/files/trx/nunit/FluentValidation.Tests.annotations b/python/test/files/trx/nunit/FluentValidation.Tests.annotations index d7659c8a..025b4e12 100644 --- a/python/test/files/trx/nunit/FluentValidation.Tests.annotations +++ b/python/test/files/trx/nunit/FluentValidation.Tests.annotations @@ -8,9 +8,9 @@ 'title': 'All 803 tests pass, 1 skipped in 3s', 'summary': '804 tests\u2002\u2003\u2003803 :white_check_mark:\u2003\u20033s ' - ':stopwatch:\n\u205f\u2004\u205f\u20041 suites\u2003\u2003\u205f\u2004\u205f\u2004' - '1 :zzz:\n\u205f\u2004\u205f\u20041 files\u2004\u2002\u2003\u2003\u205f\u2004\u205f\u2004' - '0 :x:\n\nResults for commit commit s.\n\n' + ':stopwatch:\n\u2007\u20071 suites\u2003\u2003\u2007\u20071 :zzz:\n\u2007\u2007' + '1 files\u2004\u2002\u2003\u2003\u2007\u20070 :x:\n\nResults for ' + 'commit commit s.\n\n' '[test-results]:data:application/gzip;base64,H4sIAAAAAAAC/1WMwQqAIBAFf' '0U8dzDsEP1MiBUtacaqp+jf28yybm/mwex8AjN63rG6YtxHCC8MEVUAtxJKQjrCdbWiea' 'j3UeukZFELbDlwi0mBISFeMSI6zAbjWpoX/JO3KcXEn2Dib087ayEQ5MX8rPhxArdpBif' diff --git a/python/test/files/trx/nunit/SilentNotes.annotations b/python/test/files/trx/nunit/SilentNotes.annotations index 62ab0179..46cef341 100644 --- a/python/test/files/trx/nunit/SilentNotes.annotations +++ b/python/test/files/trx/nunit/SilentNotes.annotations @@ -8,9 +8,8 @@ 'title': 'All 67 tests pass, 12 skipped in 0s', 'summary': '79 tests\u2002\u2003\u200367 :white_check_mark:\u2003\u20030s ' - ':stopwatch:\n\u205f\u20041 suites\u2003\u200312 :zzz:\n\u205f\u20041 ' - 'files\u2004\u2002\u2003\u2003\u205f\u20040 :x:\n\nResults for commit ' - 'commit s.\n\n' + ':stopwatch:\n\u20071 suites\u2003\u200312 :zzz:\n\u20071 files\u2004\u2002\u2003\u2003\u2007' + '0 :x:\n\nResults for commit commit s.\n\n' '[test-results]:data:application/gzip;base64,H4sIAAAAAAAC/1WMOw6AIBAFr' '0KoLdRCopcxBCVuRDELVMa7u/hB7HbmZWfnGszoeMeqgnEXwCcYAkoPdiUsCWnwcRLtC7' '0LSpFpxGdm2OJ7nYyWYPJCPyJafAyGNSXj/SveIgteIutdnOeUXRbwBM/F3CT5cQKN/0L' diff --git a/python/test/files/trx/xunit/dotnet-trx.annotations b/python/test/files/trx/xunit/dotnet-trx.annotations index 62593920..72d086c9 100644 --- a/python/test/files/trx/xunit/dotnet-trx.annotations +++ b/python/test/files/trx/xunit/dotnet-trx.annotations @@ -8,8 +8,8 @@ 'title': '5 fail, 1 skipped, 5 pass in 0s', 'summary': '11 tests\u2002\u2003\u20035 :white_check_mark:\u2003\u20030s ' - ':stopwatch:\n\u205f\u20041 suites\u2003\u20031 :zzz:\n\u205f\u20041 ' - 'files\u2004\u2002\u2003\u20035 :x:\n\nResults for commit commit s.\n\n' + ':stopwatch:\n\u20071 suites\u2003\u20031 :zzz:\n\u20071 files\u2004\u2002\u2003\u2003' + '5 :x:\n\nResults for commit commit s.\n\n' '[test-results]:data:application/gzip;base64,H4sIAAAAAAAC/1WMOw6AIBBEr' '0KoLaSw8TKGIMaNfMwClfHuroCK3byZ3XfwBYwOfGSiYzwkiC/MCWUE7wh7QhpinsQDU0' 'hKUTN8xQZ7/S7FIsH8LjSix2rE5F7hnVtf4U+XubFlbmXKWwuRoCYWVsnPC2b3Tg/fAAA' diff --git a/python/test/files/trx/yami_YAMILEX 2015-10-24 04_18_59.annotations b/python/test/files/trx/yami_YAMILEX 2015-10-24 04_18_59.annotations index c569ed47..46f8d041 100644 --- a/python/test/files/trx/yami_YAMILEX 2015-10-24 04_18_59.annotations +++ b/python/test/files/trx/yami_YAMILEX 2015-10-24 04_18_59.annotations @@ -7,10 +7,9 @@ 'output': { 'title': '2 fail, 21 skipped, 2 pass in 26s', 'summary': - '25 tests\u2002\u2003\u2003\u205f\u20042 :white_check_mark:\u2003\u2003' - '26s :stopwatch:\n\u205f\u20041 suites\u2003\u200321 :zzz:\n\u205f\u2004' - '1 files\u2004\u2002\u2003\u2003\u205f\u20042 :x:\n\nResults for ' - 'commit commit s.\n\n' + '25 tests\u2002\u2003\u2003\u20072 :white_check_mark:\u2003\u200326s ' + ':stopwatch:\n\u20071 suites\u2003\u200321 :zzz:\n\u20071 files\u2004\u2002\u2003\u2003\u2007' + '2 :x:\n\nResults for commit commit s.\n\n' '[test-results]:data:application/gzip;base64,H4sIAAAAAAAC/1WMOw6AIBAFr' '0KoLcRECy9jCErciGAWqIx3d/GD2O3M28zONZjJ856JinEfIWQYI8oAzhI2HTEtIW1N+8' 'Lgo1LJfGKBLQmRjZZgfi8TokMyNRmMNhfTXQZvLnqXKHIXlzXl1hUCwXMxP0t+nB5bCu/' diff --git a/python/test/files/xunit/mstest/fixie.annotations b/python/test/files/xunit/mstest/fixie.annotations index 94689ab3..eb6a0589 100644 --- a/python/test/files/xunit/mstest/fixie.annotations +++ b/python/test/files/xunit/mstest/fixie.annotations @@ -8,7 +8,7 @@ 'title': '3 fail, 1 skipped, 1 pass in 8s', 'summary': '1 files\u2004\u20032 suites\u2004\u2003\u20028s :stopwatch:\n5 tests\u2003' - '1 :white_check_mark:\u20031 :zzz:\u20033 :x:\n7 runs\u2006\u20033 ' + '1 :white_check_mark:\u20031 :zzz:\u20033 :x:\n7 runs\u200a\u20033 ' ':white_check_mark:\u20031 :zzz:\u20033 :x:\n\nResults for commit ' 'commit s.\n\n' '[test-results]:data:application/gzip;base64,H4sIAAAAAAAC/1WMQQqAIBBFr' diff --git a/python/test/files/xunit/mstest/jenkinsci/testcase2.annotations b/python/test/files/xunit/mstest/jenkinsci/testcase2.annotations index 78b6bbe5..449c69a4 100644 --- a/python/test/files/xunit/mstest/jenkinsci/testcase2.annotations +++ b/python/test/files/xunit/mstest/jenkinsci/testcase2.annotations @@ -8,7 +8,7 @@ 'title': 'All 1 tests pass in 0s', 'summary': '1 files\u2004\u20031 suites\u2004\u2003\u20020s :stopwatch:\n1 tests\u2003' - '1 :white_check_mark:\u20030 :zzz:\u20030 :x:\n3 runs\u2006\u20031 ' + '1 :white_check_mark:\u20030 :zzz:\u20030 :x:\n3 runs\u200a\u20031 ' ':white_check_mark:\u20031 :zzz:\u20031 :x:\n\nResults for commit ' 'commit s.\n\n' '[test-results]:data:application/gzip;base64,H4sIAAAAAAAC/1WMOw6AIBBEr' diff --git a/python/test/files/xunit/mstest/pickles.annotations b/python/test/files/xunit/mstest/pickles.annotations index 5d3448b9..caf7ff2a 100644 --- a/python/test/files/xunit/mstest/pickles.annotations +++ b/python/test/files/xunit/mstest/pickles.annotations @@ -8,7 +8,7 @@ 'title': '1 fail, 2 pass in 0s', 'summary': '1 files\u2004\u20031 suites\u2004\u2003\u20020s :stopwatch:\n3 tests\u2003' - '2 :white_check_mark:\u20030 :zzz:\u20031 :x:\n4 runs\u2006\u20033 ' + '2 :white_check_mark:\u20030 :zzz:\u20031 :x:\n4 runs\u200a\u20033 ' ':white_check_mark:\u20030 :zzz:\u20031 :x:\n\nResults for commit ' 'commit s.\n\n' '[test-results]:data:application/gzip;base64,H4sIAAAAAAAC/02MOw6AIBBEr' diff --git a/python/test/test_publish.py b/python/test/test_publish.py index fb4d1467..294d90f7 100644 --- a/python/test/test_publish.py +++ b/python/test/test_publish.py @@ -7,7 +7,7 @@ from publish import Annotation, UnitTestSuite, UnitTestRunResults, UnitTestRunDeltaResults, CaseMessages, \ get_json_path, get_error_annotation, get_digest_from_stats, \ all_tests_label_md, skipped_tests_label_md, failed_tests_label_md, passed_tests_label_md, test_errors_label_md, \ - duration_label_md, SomeTestChanges, abbreviate, abbreviate_bytes, get_test_name, get_formatted_digits, \ + duration_label_md, SomeTestChanges, abbreviate, abbreviate_bytes, get_test_name, get_formatted_digits, digit_space, \ get_magnitude, get_delta, as_short_commit, as_delta, as_stat_number, as_stat_duration, get_stats_from_digest, \ digest_string, ungest_string, get_details_line_md, get_commit_line_md, restrict_unicode, \ get_short_summary, get_short_summary_md, get_long_summary_md, get_long_summary_with_runs_md, \ @@ -420,42 +420,42 @@ def test_as_delta(self): self.assertEqual(as_delta(+1, 1), '+1') self.assertEqual(as_delta(-2, 1), ' - 2') - self.assertEqual(as_delta(0, 2), '±  0') - self.assertEqual(as_delta(+1, 2), '+  1') - self.assertEqual(as_delta(-2, 2), ' -   2') + self.assertEqual(as_delta(0, 2), f'±{digit_space}0') + self.assertEqual(as_delta(+1, 2), f'+{digit_space}1') + self.assertEqual(as_delta(-2, 2), f' - {digit_space}2') - self.assertEqual(as_delta(1, 5), '+       1') - self.assertEqual(as_delta(12, 5), '+     12') - self.assertEqual(as_delta(123, 5), '+   123') + self.assertEqual(as_delta(1, 5), f'+{digit_space} {digit_space}{digit_space}1') + self.assertEqual(as_delta(12, 5), f'+{digit_space} {digit_space}12') + self.assertEqual(as_delta(123, 5), f'+{digit_space} 123') self.assertEqual(as_delta(1234, 5), '+1 234') - self.assertEqual(as_delta(1234, 6), '+  1 234') - self.assertEqual(as_delta(123, 6), '+     123') + self.assertEqual(as_delta(1234, 6), f'+{digit_space}1 234') + self.assertEqual(as_delta(123, 6), f'+{digit_space}{digit_space} 123') with temp_locale('en_US'): self.assertEqual(as_delta(1234, 5), '+1 234') - self.assertEqual(as_delta(1234, 6), '+  1 234') - self.assertEqual(as_delta(123, 6), '+     123') + self.assertEqual(as_delta(1234, 6), f'+{digit_space}1 234') + self.assertEqual(as_delta(123, 6), f'+{digit_space}{digit_space} 123') with temp_locale('de_DE'): self.assertEqual(as_delta(1234, 5), '+1 234') - self.assertEqual(as_delta(1234, 6), '+  1 234') - self.assertEqual(as_delta(123, 6), '+     123') + self.assertEqual(as_delta(1234, 6), f'+{digit_space}1 234') + self.assertEqual(as_delta(123, 6), f'+{digit_space}{digit_space} 123') def test_as_stat_number(self): label = 'unit' self.assertEqual(as_stat_number(None, 1, 0, label), 'N/A unit') self.assertEqual(as_stat_number(1, 1, 0, label), '1 unit') - self.assertEqual(as_stat_number(123, 6, 0, label), '     123 unit') - self.assertEqual(as_stat_number(1234, 6, 0, label), '  1 234 unit') + self.assertEqual(as_stat_number(123, 6, 0, label), f'{digit_space}{digit_space} 123 unit') + self.assertEqual(as_stat_number(1234, 6, 0, label), f'{digit_space}1 234 unit') self.assertEqual(as_stat_number(12345, 6, 0, label), '12 345 unit') with temp_locale('en_US'): - self.assertEqual(as_stat_number(123, 6, 0, label), '     123 unit') - self.assertEqual(as_stat_number(1234, 6, 0, label), '  1 234 unit') + self.assertEqual(as_stat_number(123, 6, 0, label), f'{digit_space}{digit_space} 123 unit') + self.assertEqual(as_stat_number(1234, 6, 0, label), f'{digit_space}1 234 unit') self.assertEqual(as_stat_number(12345, 6, 0, label), '12 345 unit') with temp_locale('de_DE'): - self.assertEqual(as_stat_number(123, 6, 0, label), '     123 unit') - self.assertEqual(as_stat_number(1234, 6, 0, label), '  1 234 unit') + self.assertEqual(as_stat_number(123, 6, 0, label), f'{digit_space}{digit_space} 123 unit') + self.assertEqual(as_stat_number(1234, 6, 0, label), f'{digit_space}1 234 unit') self.assertEqual(as_stat_number(12345, 6, 0, label), '12 345 unit') self.assertEqual(as_stat_number(dict(number=1), 1, 0, label), '1 unit') @@ -463,16 +463,16 @@ def test_as_stat_number(self): self.assertEqual(as_stat_number(dict(number=1, delta=-1), 1, 1, label), '1 unit  - 1 ') self.assertEqual(as_stat_number(dict(number=2, delta=+0), 1, 1, label), '2 unit ±0 ') self.assertEqual(as_stat_number(dict(number=3, delta=+1), 1, 1, label), '3 unit +1 ') - self.assertEqual(as_stat_number(dict(number=3, delta=+1), 1, 2, label), '3 unit +  1 ') - self.assertEqual(as_stat_number(dict(number=3, delta=+1), 2, 2, label), '  3 unit +  1 ') - self.assertEqual(as_stat_number(dict(number=3, delta=+1234), 1, 6, label), '3 unit +  1 234 ') + self.assertEqual(as_stat_number(dict(number=3, delta=+1), 1, 2, label), f'3 unit +{digit_space}1 ') + self.assertEqual(as_stat_number(dict(number=3, delta=+1), 2, 2, label), f'{digit_space}3 unit +{digit_space}1 ') + self.assertEqual(as_stat_number(dict(number=3, delta=+1234), 1, 6, label), f'3 unit +{digit_space}1 234 ') self.assertEqual(as_stat_number(dict(number=3, delta=+12345), 1, 6, label), '3 unit +12 345 ') with temp_locale('en_US'): - self.assertEqual(as_stat_number(dict(number=3, delta=+1234), 1, 6, label), '3 unit +  1 234 ') + self.assertEqual(as_stat_number(dict(number=3, delta=+1234), 1, 6, label), f'3 unit +{digit_space}1 234 ') self.assertEqual(as_stat_number(dict(number=3, delta=+12345), 1, 6, label), '3 unit +12 345 ') with temp_locale('de_DE'): - self.assertEqual(as_stat_number(dict(number=3, delta=+1234), 1, 6, label), '3 unit +  1 234 ') - self.assertEqual(as_stat_number(dict(number=3, delta=+12345), 1, 6, label), '3 unit +12 345 ') + self.assertEqual(as_stat_number(dict(number=3, delta=+1234), 1, 6, label), f'3 unit +{digit_space}1 234 ') + self.assertEqual(as_stat_number(dict(number=3, delta=+12345), 1, 6, label), f'3 unit +12 345 ') self.assertEqual(as_stat_number(dict(delta=-1), 3, 1, label), 'N/A unit  - 1 ') @@ -673,9 +673,9 @@ def test_get_long_summary_with_runs_md(self): tests=4, tests_succ=5, tests_skip=6, tests_fail=7, tests_error=0, runs=9, runs_succ=10, runs_skip=11, runs_fail=12, runs_error=0, commit='commit' - )), (f'1 files    2 suites   3s {duration_label_md}\n' - f'4 {all_tests_label_md}   5 {passed_tests_label_md}   6 {skipped_tests_label_md}   7 {failed_tests_label_md}\n' - f'9 runs  10 {passed_tests_label_md} 11 {skipped_tests_label_md} 12 {failed_tests_label_md}\n' + )), (f'1 files  {digit_space}2 suites   3s {duration_label_md}\n' + f'4 {all_tests_label_md} {digit_space}5 {passed_tests_label_md} {digit_space}6 {skipped_tests_label_md} {digit_space}7 {failed_tests_label_md}\n' + f'9 runs  10 {passed_tests_label_md} 11 {skipped_tests_label_md} 12 {failed_tests_label_md}\n' f'\n' f'Results for commit commit.\n')) @@ -685,9 +685,9 @@ def test_get_long_summary_with_runs_md_with_errors(self): tests=4, tests_succ=5, tests_skip=6, tests_fail=7, tests_error=8, runs=9, runs_succ=10, runs_skip=11, runs_fail=12, runs_error=13, commit='commit' - )), (f'1 files    2 suites   3s {duration_label_md}\n' - f'4 {all_tests_label_md}   5 {passed_tests_label_md}   6 {skipped_tests_label_md}   7 {failed_tests_label_md}   8 {test_errors_label_md}\n' - f'9 runs  10 {passed_tests_label_md} 11 {skipped_tests_label_md} 12 {failed_tests_label_md} 13 {test_errors_label_md}\n' + )), (f'1 files  {digit_space}2 suites   3s {duration_label_md}\n' + f'4 {all_tests_label_md} {digit_space}5 {passed_tests_label_md} {digit_space}6 {skipped_tests_label_md} {digit_space}7 {failed_tests_label_md} {digit_space}8 {test_errors_label_md}\n' + f'9 runs  10 {passed_tests_label_md} 11 {skipped_tests_label_md} 12 {failed_tests_label_md} 13 {test_errors_label_md}\n' f'\n' f'Results for commit commit.\n')) @@ -697,9 +697,9 @@ def test_get_long_summary_with_runs_md_with_deltas(self): tests=n(4, -5), tests_succ=n(5, 6), tests_skip=n(6, -7), tests_fail=n(7, 8), tests_error=n(8, -9), runs=n(9, 10), runs_succ=n(10, -11), runs_skip=n(11, 12), runs_fail=n(12, -13), runs_error=n(13, 14), commit='123456789abcdef0', reference_type='type', reference_commit='0123456789abcdef' - )), (f'1 files  +  2    2 suites   - 3   3s {duration_label_md} +4s\n' - f'4 {all_tests_label_md}  -   5    5 {passed_tests_label_md} +  6    6 {skipped_tests_label_md}  -   7    7 {failed_tests_label_md} +  8    8 {test_errors_label_md}  -   9 \n' - f'9 runs  +10  10 {passed_tests_label_md}  - 11  11 {skipped_tests_label_md} +12  12 {failed_tests_label_md}  - 13  13 {test_errors_label_md} +14 \n' + )), (f'1 files  +{digit_space}2  {digit_space}2 suites   - 3   3s {duration_label_md} +4s\n' + f'4 {all_tests_label_md}  - {digit_space}5  {digit_space}5 {passed_tests_label_md} +{digit_space}6  {digit_space}6 {skipped_tests_label_md}  - {digit_space}7  {digit_space}7 {failed_tests_label_md} +{digit_space}8  {digit_space}8 {test_errors_label_md}  - {digit_space}9 \n' + f'9 runs  +10  10 {passed_tests_label_md}  - 11  11 {skipped_tests_label_md} +12  12 {failed_tests_label_md}  - 13  13 {test_errors_label_md} +14 \n' f'\n' f'Results for commit 12345678. ± Comparison against type commit 01234567.\n')) @@ -712,9 +712,9 @@ def test_get_long_summary_with_runs_md_with_details_url_with_fails(self): commit='commit' ), 'https://details.url/' - ), (f'1 files    2 suites   3s {duration_label_md}\n' - f'4 {all_tests_label_md}   5 {passed_tests_label_md}   6 {skipped_tests_label_md}   7 {failed_tests_label_md}\n' - f'9 runs  10 {passed_tests_label_md} 11 {skipped_tests_label_md} 12 {failed_tests_label_md}\n' + ), (f'1 files  {digit_space}2 suites   3s {duration_label_md}\n' + f'4 {all_tests_label_md} {digit_space}5 {passed_tests_label_md} {digit_space}6 {skipped_tests_label_md} {digit_space}7 {failed_tests_label_md}\n' + f'9 runs  10 {passed_tests_label_md} 11 {skipped_tests_label_md} 12 {failed_tests_label_md}\n' f'\n' f'For more details on these failures, see [this check](https://details.url/).\n' f'\n' @@ -730,9 +730,9 @@ def test_get_long_summary_with_runs_md_with_details_url_without_fails(self): commit='commit' ), 'https://details.url/' - ), (f'1 files    2 suites   3s {duration_label_md}\n' - f'4 {all_tests_label_md}   5 {passed_tests_label_md}   6 {skipped_tests_label_md} 0 {failed_tests_label_md}\n' - f'9 runs  10 {passed_tests_label_md} 11 {skipped_tests_label_md} 0 {failed_tests_label_md}\n' + ), (f'1 files  {digit_space}2 suites   3s {duration_label_md}\n' + f'4 {all_tests_label_md} {digit_space}5 {passed_tests_label_md} {digit_space}6 {skipped_tests_label_md} 0 {failed_tests_label_md}\n' + f'9 runs  10 {passed_tests_label_md} 11 {skipped_tests_label_md} 0 {failed_tests_label_md}\n' f'\n' f'Results for commit commit.\n') ) @@ -750,9 +750,9 @@ def test_get_long_summary_with_runs_md_with_test_lists(self): ['test1', 'test2', 'test3', 'test4', 'test5'], ['test5', 'test6'], ['test2'], ['test5', 'test6'] ), - ), (f'1 files    2 suites   3s {duration_label_md}\n' - f'4 {all_tests_label_md}   5 {passed_tests_label_md}   6 {skipped_tests_label_md} 0 {failed_tests_label_md}\n' - f'9 runs  10 {passed_tests_label_md} 11 {skipped_tests_label_md} 0 {failed_tests_label_md}\n' + ), (f'1 files  {digit_space}2 suites   3s {duration_label_md}\n' + f'4 {all_tests_label_md} {digit_space}5 {passed_tests_label_md} {digit_space}6 {skipped_tests_label_md} 0 {failed_tests_label_md}\n' + f'9 runs  10 {passed_tests_label_md} 11 {skipped_tests_label_md} 0 {failed_tests_label_md}\n' '\n' 'Results for commit commit.\n' '\n' @@ -1013,9 +1013,9 @@ def test_get_long_summary_with_digest_md_with_multiple_runs(self): ) ) - self.assertEqual(actual, f'1 files    2 suites   3s {duration_label_md}\n' - f'4 {all_tests_label_md}   5 {passed_tests_label_md}   6 {skipped_tests_label_md}   7 {failed_tests_label_md}\n' - f'9 runs  10 {passed_tests_label_md} 11 {skipped_tests_label_md} 12 {failed_tests_label_md}\n' + self.assertEqual(actual, f'1 files  {digit_space}2 suites   3s {duration_label_md}\n' + f'4 {all_tests_label_md} {digit_space}5 {passed_tests_label_md} {digit_space}6 {skipped_tests_label_md} {digit_space}7 {failed_tests_label_md}\n' + f'9 runs  10 {passed_tests_label_md} 11 {skipped_tests_label_md} 12 {failed_tests_label_md}\n' '\n' 'Results for commit commit.\n' '\n' @@ -1037,9 +1037,9 @@ def test_get_long_summary_with_digest_md_with_test_errors(self): ) ) - self.assertEqual(actual, f'1 files    2 suites   3s {duration_label_md}\n' - f'4 {all_tests_label_md}   5 {passed_tests_label_md}   6 {skipped_tests_label_md}   7 {failed_tests_label_md}   8 {test_errors_label_md}\n' - f'9 runs  10 {passed_tests_label_md} 11 {skipped_tests_label_md} 12 {failed_tests_label_md} 13 {test_errors_label_md}\n' + self.assertEqual(actual, f'1 files  {digit_space}2 suites   3s {duration_label_md}\n' + f'4 {all_tests_label_md} {digit_space}5 {passed_tests_label_md} {digit_space}6 {skipped_tests_label_md} {digit_space}7 {failed_tests_label_md} {digit_space}8 {test_errors_label_md}\n' + f'9 runs  10 {passed_tests_label_md} 11 {skipped_tests_label_md} 12 {failed_tests_label_md} 13 {test_errors_label_md}\n' '\n' 'Results for commit commit.\n' '\n' @@ -1061,9 +1061,9 @@ def test_get_long_summary_with_digest_md_with_parse_errors(self): ) ) - self.assertEqual(actual, f'1 files    1 errors    2 suites   3s {duration_label_md}\n' - f'4 {all_tests_label_md}   5 {passed_tests_label_md}   6 {skipped_tests_label_md}   7 {failed_tests_label_md}   8 {test_errors_label_md}\n' - f'9 runs  10 {passed_tests_label_md} 11 {skipped_tests_label_md} 12 {failed_tests_label_md} 13 {test_errors_label_md}\n' + self.assertEqual(actual, f'1 files  {digit_space}1 errors  {digit_space}2 suites   3s {duration_label_md}\n' + f'4 {all_tests_label_md} {digit_space}5 {passed_tests_label_md} {digit_space}6 {skipped_tests_label_md} {digit_space}7 {failed_tests_label_md} {digit_space}8 {test_errors_label_md}\n' + f'9 runs  10 {passed_tests_label_md} 11 {skipped_tests_label_md} 12 {failed_tests_label_md} 13 {test_errors_label_md}\n' '\n' 'Results for commit commit.\n' '\n' @@ -1090,9 +1090,9 @@ def test_get_long_summary_with_digest_md_with_delta(self): ) ) - self.assertEqual(actual, f'1 files  +  2    2 suites   - 3   3s {duration_label_md} +4s\n' - f'4 {all_tests_label_md}  -   5    5 {passed_tests_label_md} +  6    6 {skipped_tests_label_md}  -   7    7 {failed_tests_label_md} +  8    8 {test_errors_label_md}  -   9 \n' - f'9 runs  +10  10 {passed_tests_label_md}  - 11  11 {skipped_tests_label_md} +12  12 {failed_tests_label_md}  - 13  13 {test_errors_label_md} +14 \n' + self.assertEqual(actual, f'1 files  +{digit_space}2  {digit_space}2 suites   - 3   3s {duration_label_md} +4s\n' + f'4 {all_tests_label_md}  - {digit_space}5  {digit_space}5 {passed_tests_label_md} +{digit_space}6  {digit_space}6 {skipped_tests_label_md}  - {digit_space}7  {digit_space}7 {failed_tests_label_md} +{digit_space}8  {digit_space}8 {test_errors_label_md}  - {digit_space}9 \n' + f'9 runs  +10  10 {passed_tests_label_md}  - 11  11 {skipped_tests_label_md} +12  12 {failed_tests_label_md}  - 13  13 {test_errors_label_md} +14 \n' '\n' 'Results for commit 12345678. ± Comparison against type commit 01234567.\n' '\n' @@ -1119,9 +1119,9 @@ def test_get_long_summary_with_digest_md_with_delta_and_parse_errors(self): ) ) - self.assertEqual(actual, f'1 files  +  2    1 errors    2 suites   - 3   3s {duration_label_md} +4s\n' - f'4 {all_tests_label_md}  -   5    5 {passed_tests_label_md} +  6    6 {skipped_tests_label_md}  -   7    7 {failed_tests_label_md} +  8    8 {test_errors_label_md}  -   9 \n' - f'9 runs  +10  10 {passed_tests_label_md}  - 11  11 {skipped_tests_label_md} +12  12 {failed_tests_label_md}  - 13  13 {test_errors_label_md} +14 \n' + self.assertEqual(actual, f'1 files  +{digit_space}2  {digit_space}1 errors  {digit_space}2 suites   - 3   3s {duration_label_md} +4s\n' + f'4 {all_tests_label_md}  - {digit_space}5  {digit_space}5 {passed_tests_label_md} +{digit_space}6  {digit_space}6 {skipped_tests_label_md}  - {digit_space}7  {digit_space}7 {failed_tests_label_md} +{digit_space}8  {digit_space}8 {test_errors_label_md}  - {digit_space}9 \n' + f'9 runs  +10  10 {passed_tests_label_md}  - 11  11 {skipped_tests_label_md} +12  12 {failed_tests_label_md}  - 13  13 {test_errors_label_md} +14 \n' '\n' 'Results for commit 12345678. ± Comparison against type commit 01234567.\n' '\n' @@ -2079,9 +2079,9 @@ def test_files(self): results = get_test_results(parsed, False) stats = get_stats(results) md = get_long_summary_md(stats) - self.assertEqual(md, (f'  10 files    10 suites   39m 1s {duration_label_md}\n' - f'217 {all_tests_label_md} 208 {passed_tests_label_md}   9 {skipped_tests_label_md} 0 {failed_tests_label_md}\n' - f'373 runs  333 {passed_tests_label_md} 40 {skipped_tests_label_md} 0 {failed_tests_label_md}\n' + self.assertEqual(md, (f'{digit_space}10 files  {digit_space}10 suites   39m 1s {duration_label_md}\n' + f'217 {all_tests_label_md} 208 {passed_tests_label_md} {digit_space}9 {skipped_tests_label_md} 0 {failed_tests_label_md}\n' + f'373 runs  333 {passed_tests_label_md} 40 {skipped_tests_label_md} 0 {failed_tests_label_md}\n' f'\n' f'Results for commit example.\n')) @@ -2150,8 +2150,8 @@ def test_files_without_annotations(self): stats = get_stats(results) md = get_long_summary_md(stats) self.assertEqual(md, (f'373 {all_tests_label_md}   333 {passed_tests_label_md}  39m 1s {duration_label_md}\n' - f'  10 suites    40 {skipped_tests_label_md}\n' - f'  10 files        0 {failed_tests_label_md}\n' + f'{digit_space}10 suites  {digit_space}40 {skipped_tests_label_md}\n' + f'{digit_space}10 files    {digit_space}{digit_space}0 {failed_tests_label_md}\n' f'\n' f'Results for commit example.\n')) diff --git a/python/test/test_publisher.py b/python/test/test_publisher.py index ff340d2a..71ca1c32 100644 --- a/python/test/test_publisher.py +++ b/python/test/test_publisher.py @@ -19,7 +19,7 @@ get_error_annotation, digest_header, get_digest_from_stats, \ all_tests_list, skipped_tests_list, none_annotations, \ all_tests_label_md, skipped_tests_label_md, failed_tests_label_md, passed_tests_label_md, test_errors_label_md, \ - duration_label_md, pull_request_build_mode_merge, punctuation_space, \ + duration_label_md, digit_space, pull_request_build_mode_merge, punctuation_space, \ get_long_summary_with_digest_md from publish.github_action import GithubAction from publish.publisher import Publisher, Settings, PublishData @@ -670,15 +670,15 @@ def test_publish_comment_compare_earlier_with_restricted_unicode(self): (method, args, kwargs) = mock_calls[0] self.assertEqual('create_issue_comment', method) self.assertEqual(('## title\n' - '\u205f\u20041 files\u2004 ±\u205f\u20040\u2002\u2003' + f'{digit_space}1 files\u2004 ±{digit_space}0\u2002\u2003' '2 suites\u2004 +1\u2002\u2003\u2002' f'3s :stopwatch: +2s\n' '22 tests +19\u2002\u2003' f'4 :white_check_mark: +3\u2002\u2003' - f'5 :zzz: +3\u2002\u2003\u205f\u2004' - f'6 :x: +\u205f\u20046\u2002\u2003\u205f\u2004' - f'7 :fire: +\u205f\u20047\u2002\n' - f'38 runs\u2006 +35\u2002\u20038 :white_check_mark: +7\u2002\u2003' + f'5 :zzz: +3\u2002\u2003{digit_space}' + f'6 :x: +{digit_space}6\u2002\u2003{digit_space}' + f'7 :fire: +{digit_space}7\u2002\n' + f'38 runs\u200a +35\u2002\u20038 :white_check_mark: +7\u2002\u2003' f'9 :zzz: +7\u2002\u2003' f'10 :x: +10\u2002\u2003' f'11 :fire: +11\u2002\n' @@ -1304,9 +1304,9 @@ def do_test_publish_check_without_base_stats(self, errors: List[ParseError], ann output={ 'title': '{}7 errors, 6 fail, 5 skipped, 4 pass in 3s' .format('{} parse errors, '.format(len(errors)) if len(errors) > 0 else ''), - 'summary': f'\u205f\u20041 files\u2004\u2003{{errors}}2 suites\u2004\u2003\u20023s {duration_label_md}\n' - f'22 {all_tests_label_md}\u20034 {passed_tests_label_md}\u20035 {skipped_tests_label_md}\u2003\u205f\u20046 {failed_tests_label_md}\u2003\u205f\u20047 {test_errors_label_md}\n' - f'38 runs\u2006\u20038 {passed_tests_label_md}\u20039 {skipped_tests_label_md}\u200310 {failed_tests_label_md}\u200311 {test_errors_label_md}\n' + 'summary': f'{digit_space}1 files\u2004\u2003{{errors}}2 suites\u2004\u2003\u20023s {duration_label_md}\n' + f'22 {all_tests_label_md}\u20034 {passed_tests_label_md}\u20035 {skipped_tests_label_md}\u2003{digit_space}6 {failed_tests_label_md}\u2003{digit_space}7 {test_errors_label_md}\n' + f'38 runs\u200a\u20038 {passed_tests_label_md}\u20039 {skipped_tests_label_md}\u200310 {failed_tests_label_md}\u200311 {test_errors_label_md}\n' '\n' 'Results for commit commit.\n' '\n' @@ -1334,7 +1334,7 @@ def do_test_publish_check_without_base_stats(self, errors: List[ParseError], ann 'json', '{' f'"title": "{title_errors}7 errors, 6 fail, 5 skipped, 4 pass in 3s", ' - f'"summary": "  1 files  {summary_errors}2 suites   3s :stopwatch:\\n22 tests 4 :white_check_mark: 5 :zzz:   6 :x:   7 :fire:\\n38 runs  8 :white_check_mark: 9 :zzz: 10 :x: 11 :fire:\\n\\nResults for commit commit.\\n", ' + f'"summary": "{digit_space}1 files  {summary_errors}2 suites   3s :stopwatch:\\n22 tests 4 :white_check_mark: 5 :zzz: {digit_space}6 :x: {digit_space}7 :fire:\\n38 runs  8 :white_check_mark: 9 :zzz: 10 :x: 11 :fire:\\n\\nResults for commit commit.\\n", ' '"conclusion": "conclusion", ' '"stats": {"files": 1, ' + f'"errors": {len(errors)}, ' + '"suites": 2, "duration": 3, "tests": 22, "tests_succ": 4, "tests_skip": 5, "tests_fail": 6, "tests_error": 7, "runs": 38, "runs_succ": 8, "runs_skip": 9, "runs_fail": 10, "runs_error": 11, "commit": "commit"}, ' f'"annotations": {len(annotations)}, ' @@ -1371,9 +1371,9 @@ def do_test_publish_check_with_base_stats(self, errors: List[ParseError]): output={ 'title': '{}7 errors, 6 fail, 5 skipped, 4 pass in 3s' .format('{} parse errors, '.format(len(errors)) if len(errors) > 0 else ''), - 'summary': f'\u205f\u20041 files\u2004 ±0\u2002\u2003{{errors}}2 suites\u2004 ±0\u2002\u2003\u20023s {duration_label_md} ±0s\n' - f'22 {all_tests_label_md} +1\u2002\u20034 {passed_tests_label_md} \u2006-\u200a\u205f\u20048\u2002\u20035 {skipped_tests_label_md} +1\u2002\u2003\u205f\u20046 {failed_tests_label_md} +4\u2002\u2003\u205f\u20047 {test_errors_label_md} +\u205f\u20044\u2002\n' - f'38 runs\u2006 +1\u2002\u20038 {passed_tests_label_md} \u2006-\u200a17\u2002\u20039 {skipped_tests_label_md} +2\u2002\u200310 {failed_tests_label_md} +6\u2002\u200311 {test_errors_label_md} +10\u2002\n' + 'summary': f'{digit_space}1 files\u2004 ±0\u2002\u2003{{errors}}2 suites\u2004 ±0\u2002\u2003\u20023s {duration_label_md} ±0s\n' + f'22 {all_tests_label_md} +1\u2002\u20034 {passed_tests_label_md} \u2006-\u200a{digit_space}8\u2002\u20035 {skipped_tests_label_md} +1\u2002\u2003{digit_space}6 {failed_tests_label_md} +4\u2002\u2003{digit_space}7 {test_errors_label_md} +{digit_space}4\u2002\n' + f'38 runs\u200a +1\u2002\u20038 {passed_tests_label_md} \u2006-\u200a17\u2002\u20039 {skipped_tests_label_md} +2\u2002\u200310 {failed_tests_label_md} +6\u2002\u200311 {test_errors_label_md} +10\u2002\n' '\n' 'Results for commit commit.\u2003± Comparison against earlier commit past.\n' '\n' @@ -1406,7 +1406,7 @@ def do_test_publish_check_with_base_stats(self, errors: List[ParseError]): 'json', '{' f'"title": "{title_errors}7 errors, 6 fail, 5 skipped, 4 pass in 3s", ' - f'"summary": "  1 files  ±0  {summary_errors}2 suites  ±0   3s :stopwatch: ±0s\\n22 tests +1  4 :white_check_mark:  -   8  5 :zzz: +1    6 :x: +4    7 :fire: +  4 \\n38 runs  +1  8 :white_check_mark:  - 17  9 :zzz: +2  10 :x: +6  11 :fire: +10 \\n\\nResults for commit commit. ± Comparison against earlier commit past.\\n", ' + f'"summary": "{digit_space}1 files  ±0  {summary_errors}2 suites  ±0   3s :stopwatch: ±0s\\n22 tests +1  4 :white_check_mark:  - {digit_space}8  5 :zzz: +1  {digit_space}6 :x: +4  {digit_space}7 :fire: +{digit_space}4 \\n38 runs  +1  8 :white_check_mark:  - 17  9 :zzz: +2  10 :x: +6  11 :fire: +10 \\n\\nResults for commit commit. ± Comparison against earlier commit past.\\n", ' '"conclusion": "conclusion", ' '"stats": {"files": 1, ' + f'"errors": {len(errors)}, ' + '"suites": 2, "duration": 3, "tests": 22, "tests_succ": 4, "tests_skip": 5, "tests_fail": 6, "tests_error": 7, "runs": 38, "runs_succ": 8, "runs_skip": 9, "runs_fail": 10, "runs_error": 11, "commit": "commit"}, ' '"stats_with_delta": {"files": {"number": 1, "delta": 0}, ' + f'"errors": {len(errors)}, ' + '"suites": {"number": 2, "delta": 0}, "duration": {"duration": 3, "delta": 0}, "tests": {"number": 22, "delta": 1}, "tests_succ": {"number": 4, "delta": -8}, "tests_skip": {"number": 5, "delta": 1}, "tests_fail": {"number": 6, "delta": 4}, "tests_error": {"number": 7, "delta": 4}, "runs": {"number": 38, "delta": 1}, "runs_succ": {"number": 8, "delta": -17}, "runs_skip": {"number": 9, "delta": 2}, "runs_fail": {"number": 10, "delta": 6}, "runs_error": {"number": 11, "delta": 10}, "commit": "commit", "reference_type": "earlier", "reference_commit": "past"}, ' @@ -1437,9 +1437,9 @@ def test_publish_check_without_compare(self): conclusion='conclusion', output={ 'title': '7 errors, 6 fail, 5 skipped, 4 pass in 3s', - 'summary': f'\u205f\u20041 files\u2004\u20032 suites\u2004\u2003\u20023s {duration_label_md}\n' - f'22 {all_tests_label_md}\u20034 {passed_tests_label_md}\u20035 {skipped_tests_label_md}\u2003\u205f\u20046 {failed_tests_label_md}\u2003\u205f\u20047 {test_errors_label_md}\n' - f'38 runs\u2006\u20038 {passed_tests_label_md}\u20039 {skipped_tests_label_md}\u200310 {failed_tests_label_md}\u200311 {test_errors_label_md}\n' + 'summary': f'{digit_space}1 files\u2004\u20032 suites\u2004\u2003\u20023s {duration_label_md}\n' + f'22 {all_tests_label_md}\u20034 {passed_tests_label_md}\u20035 {skipped_tests_label_md}\u2003{digit_space}6 {failed_tests_label_md}\u2003{digit_space}7 {test_errors_label_md}\n' + f'38 runs\u200a\u20038 {passed_tests_label_md}\u20039 {skipped_tests_label_md}\u200310 {failed_tests_label_md}\u200311 {test_errors_label_md}\n' '\n' 'Results for commit commit.\n' '\n' @@ -1499,9 +1499,9 @@ def test_publish_check_with_multiple_annotation_pages(self): conclusion='conclusion', output={ 'title': '7 errors, 6 fail, 5 skipped, 4 pass in 3s', - 'summary': f'\u205f\u20041 files\u2004 ±0\u2002\u20032 suites\u2004 ±0\u2002\u2003\u20023s {duration_label_md} ±0s\n' - f'22 {all_tests_label_md} +1\u2002\u20034 {passed_tests_label_md} \u2006-\u200a\u205f\u20048\u2002\u20035 {skipped_tests_label_md} +1\u2002\u2003\u205f\u20046 {failed_tests_label_md} +4\u2002\u2003\u205f\u20047 {test_errors_label_md} +\u205f\u20044\u2002\n' - f'38 runs\u2006 +1\u2002\u20038 {passed_tests_label_md} \u2006-\u200a17\u2002\u20039 {skipped_tests_label_md} +2\u2002\u200310 {failed_tests_label_md} +6\u2002\u200311 {test_errors_label_md} +10\u2002\n' + 'summary': f'{digit_space}1 files\u2004 ±0\u2002\u20032 suites\u2004 ±0\u2002\u2003\u20023s {duration_label_md} ±0s\n' + f'22 {all_tests_label_md} +1\u2002\u20034 {passed_tests_label_md} \u2006-\u200a{digit_space}8\u2002\u20035 {skipped_tests_label_md} +1\u2002\u2003{digit_space}6 {failed_tests_label_md} +4\u2002\u2003{digit_space}7 {test_errors_label_md} +{digit_space}4\u2002\n' + f'38 runs\u200a +1\u2002\u20038 {passed_tests_label_md} \u2006-\u200a17\u2002\u20039 {skipped_tests_label_md} +2\u2002\u200310 {failed_tests_label_md} +6\u2002\u200311 {test_errors_label_md} +10\u2002\n' '\n' 'Results for commit commit.\u2003± Comparison against earlier commit past.\n' '\n' @@ -1532,9 +1532,9 @@ def test_publish_check_with_multiple_annotation_pages(self): outputs = [ { 'title': '7 errors, 6 fail, 5 skipped, 4 pass in 3s', - 'summary': f'\u205f\u20041 files\u2004 ±0\u2002\u20032 suites\u2004 ±0\u2002\u2003\u20023s {duration_label_md} ±0s\n' - f'22 {all_tests_label_md} +1\u2002\u20034 {passed_tests_label_md} \u2006-\u200a\u205f\u20048\u2002\u20035 {skipped_tests_label_md} +1\u2002\u2003\u205f\u20046 {failed_tests_label_md} +4\u2002\u2003\u205f\u20047 {test_errors_label_md} +\u205f\u20044\u2002\n' - f'38 runs\u2006 +1\u2002\u20038 {passed_tests_label_md} \u2006-\u200a17\u2002\u20039 {skipped_tests_label_md} +2\u2002\u200310 {failed_tests_label_md} +6\u2002\u200311 {test_errors_label_md} +10\u2002\n' + 'summary': f'{digit_space}1 files\u2004 ±0\u2002\u20032 suites\u2004 ±0\u2002\u2003\u20023s {duration_label_md} ±0s\n' + f'22 {all_tests_label_md} +1\u2002\u20034 {passed_tests_label_md} \u2006-\u200a{digit_space}8\u2002\u20035 {skipped_tests_label_md} +1\u2002\u2003{digit_space}6 {failed_tests_label_md} +4\u2002\u2003{digit_space}7 {test_errors_label_md} +{digit_space}4\u2002\n' + f'38 runs\u200a +1\u2002\u20038 {passed_tests_label_md} \u2006-\u200a17\u2002\u20039 {skipped_tests_label_md} +2\u2002\u200310 {failed_tests_label_md} +6\u2002\u200311 {test_errors_label_md} +10\u2002\n' '\n' 'Results for commit commit.\u2003± Comparison against earlier commit past.\n' '\n' @@ -1660,9 +1660,9 @@ def test_publish_check_with_suite_details(self): conclusion='conclusion', output={ 'title': '1 parse errors, 1 errors, 3 fail, 2 skipped, 1 pass in 7s', - 'summary': f'1 files\u2004\u2003\u205f\u20041 errors\u2004\u20032 suites\u2004\u2003\u20027s :stopwatch:\n' - f'7 tests\u2003\u205f\u20041 :white_check_mark:\u20032 :zzz:\u20033 :x:\u20031 :fire:\n' - f'3 runs\u2006\u2003-12 :white_check_mark:\u20034 :zzz:\u20035 :x:\u20036 :fire:\n' + 'summary': f'1 files\u2004\u2003{digit_space}1 errors\u2004\u20032 suites\u2004\u2003\u20027s :stopwatch:\n' + f'7 tests\u2003{digit_space}1 :white_check_mark:\u20032 :zzz:\u20033 :x:\u20031 :fire:\n' + f'3 runs\u200a\u2003-12 :white_check_mark:\u20034 :zzz:\u20035 :x:\u20036 :fire:\n' '\n' 'Results for commit commit.\n' '\n' @@ -1696,9 +1696,9 @@ def test_publish_check_with_suite_details(self): '{' '"title": "1 parse errors, 1 errors, 3 fail, 2 skipped, 1 pass in 7s", ' '"summary": "' - f'1 files    1 errors  2 suites   7s :stopwatch:\\n' - f'7 tests   1 :white_check_mark: 2 :zzz: 3 :x: 1 :fire:\\n' - f'3 runs  -12 :white_check_mark: 4 :zzz: 5 :x: 6 :fire:\\n' + f'1 files  {digit_space}1 errors  2 suites   7s :stopwatch:\\n' + f'7 tests {digit_space}1 :white_check_mark: 2 :zzz: 3 :x: 1 :fire:\\n' + f'3 runs  -12 :white_check_mark: 4 :zzz: 5 :x: 6 :fire:\\n' '\\n' 'Results for commit commit.\\n", ' '"conclusion": "conclusion", ' @@ -1732,9 +1732,9 @@ def test_publish_check_with_suite_details(self): '{' '"title": "1 parse errors, 1 errors, 3 fail, 2 skipped, 1 pass in 7s", ' '"summary": "' - f'1 files\u2004\u2003\u205f\u20041 errors\u2004\u20032 suites\u2004\u2003\u20027s :stopwatch:\\n' - f'7 tests\u2003\u205f\u20041 :white_check_mark:\u20032 :zzz:\u20033 :x:\u20031 :fire:\\n' - f'3 runs\u2006\u2003-12 :white_check_mark:\u20034 :zzz:\u20035 :x:\u20036 :fire:\\n' + f'1 files\u2004\u2003{digit_space}1 errors\u2004\u20032 suites\u2004\u2003\u20027s :stopwatch:\\n' + f'7 tests\u2003{digit_space}1 :white_check_mark:\u20032 :zzz:\u20033 :x:\u20031 :fire:\\n' + f'3 runs\u200a\u2003-12 :white_check_mark:\u20034 :zzz:\u20035 :x:\u20036 :fire:\\n' '\\n' 'Results for commit commit.\\n", ' '"conclusion": "conclusion", ' @@ -1783,9 +1783,9 @@ def test_publish_check_with_cases(self): conclusion='conclusion', output={ 'title': '1 parse errors, 1 errors, 3 fail, 2 skipped, 1 pass in 7s', - 'summary': f'1 files\u2004\u2003\u205f\u20041 errors\u2004\u20032 suites\u2004\u2003\u20027s :stopwatch:\n' - f'7 tests\u2003\u205f\u20041 :white_check_mark:\u20032 :zzz:\u20033 :x:\u20031 :fire:\n' - f'3 runs\u2006\u2003-12 :white_check_mark:\u20034 :zzz:\u20035 :x:\u20036 :fire:\n' + 'summary': f'1 files\u2004\u2003{digit_space}1 errors\u2004\u20032 suites\u2004\u2003\u20027s :stopwatch:\n' + f'7 tests\u2003{digit_space}1 :white_check_mark:\u20032 :zzz:\u20033 :x:\u20031 :fire:\n' + f'3 runs\u200a\u2003-12 :white_check_mark:\u20034 :zzz:\u20035 :x:\u20036 :fire:\n' '\n' 'Results for commit commit.\n' '\n' @@ -1820,9 +1820,9 @@ def test_publish_check_with_cases(self): '{' '"title": "1 parse errors, 1 errors, 3 fail, 2 skipped, 1 pass in 7s", ' '"summary": "' - f'1 files    1 errors  2 suites   7s :stopwatch:\\n' - f'7 tests   1 :white_check_mark: 2 :zzz: 3 :x: 1 :fire:\\n' - f'3 runs  -12 :white_check_mark: 4 :zzz: 5 :x: 6 :fire:\\n' + f'1 files  {digit_space}1 errors  2 suites   7s :stopwatch:\\n' + f'7 tests {digit_space}1 :white_check_mark: 2 :zzz: 3 :x: 1 :fire:\\n' + f'3 runs  -12 :white_check_mark: 4 :zzz: 5 :x: 6 :fire:\\n' '\\n' 'Results for commit commit.\\n", ' '"conclusion": "conclusion", ' @@ -1906,9 +1906,9 @@ def test_publish_check_with_cases(self): '{' '"title": "1 parse errors, 1 errors, 3 fail, 2 skipped, 1 pass in 7s", ' '"summary": "' - f'1 files\u2004\u2003\u205f\u20041 errors\u2004\u20032 suites\u2004\u2003\u20027s :stopwatch:\\n' - f'7 tests\u2003\u205f\u20041 :white_check_mark:\u20032 :zzz:\u20033 :x:\u20031 :fire:\\n' - f'3 runs\u2006\u2003-12 :white_check_mark:\u20034 :zzz:\u20035 :x:\u20036 :fire:\\n' + f'1 files\u2004\u2003{digit_space}1 errors\u2004\u20032 suites\u2004\u2003\u20027s :stopwatch:\\n' + f'7 tests\u2003{digit_space}1 :white_check_mark:\u20032 :zzz:\u20033 :x:\u20031 :fire:\\n' + f'3 runs\u200a\u2003-12 :white_check_mark:\u20034 :zzz:\u20035 :x:\u20036 :fire:\\n' '\\n' 'Results for commit commit.\\n", ' '"conclusion": "conclusion", ' @@ -2250,9 +2250,9 @@ def test_publish_job_summary_without_before(self): (method, args, kwargs) = mock_calls[0] self.assertEqual('add_to_job_summary', method) self.assertEqual(('## title\n' - f'\u205f\u20041 files\u2004\u20032 suites\u2004\u2003\u20023s :stopwatch:\n' - f'22 tests\u20034 :white_check_mark:\u20035 :zzz:\u2003\u205f\u20046 :x:\u2003\u205f\u20047 :fire:\n' - f'38 runs\u2006\u20038 :white_check_mark:\u20039 :zzz:\u200310 :x:\u200311 :fire:\n' + f'{digit_space}1 files\u2004\u20032 suites\u2004\u2003\u20023s :stopwatch:\n' + f'22 tests\u20034 :white_check_mark:\u20035 :zzz:\u2003{digit_space}6 :x:\u2003{digit_space}7 :fire:\n' + f'38 runs\u200a\u20038 :white_check_mark:\u20039 :zzz:\u200310 :x:\u200311 :fire:\n' '\n' 'For more details on these failures and errors, see [this check](http://check-run.url).\n' '\n' @@ -2281,9 +2281,9 @@ def test_publish_job_summary_with_before(self): (method, args, kwargs) = mock_calls[0] self.assertEqual('add_to_job_summary', method) self.assertEqual(('## title\n' - f'\u205f\u20041 files\u2004 \u2006-\u200a1\u2002\u20032 suites\u2004 \u2006-\u200a1\u2002\u2003\u20023s :stopwatch: -1s\n' - f'22 tests +2\u2002\u20034 :white_check_mark: \u2006-\u200a1\u2002\u20035 :zzz: +1\u2002\u2003\u205f\u20046 :x: +1\u2002\u2003\u205f\u20047 :fire: +1\u2002\n' - f'38 runs\u2006 +1\u2002\u20038 :white_check_mark: \u2006-\u200a2\u2002\u20039 :zzz: ±0\u2002\u200310 :x: +2\u2002\u200311 :fire: +4\u2002\n' + f'{digit_space}1 files\u2004 \u2006-\u200a1\u2002\u20032 suites\u2004 \u2006-\u200a1\u2002\u2003\u20023s :stopwatch: -1s\n' + f'22 tests +2\u2002\u20034 :white_check_mark: \u2006-\u200a1\u2002\u20035 :zzz: +1\u2002\u2003{digit_space}6 :x: +1\u2002\u2003{digit_space}7 :fire: +1\u2002\n' + f'38 runs\u200a +1\u2002\u20038 :white_check_mark: \u2006-\u200a2\u2002\u20039 :zzz: ±0\u2002\u200310 :x: +2\u2002\u200311 :fire: +4\u2002\n' '\n' 'For more details on these failures and errors, see [this check](http://check-run.url).\n' '\n' @@ -2306,9 +2306,9 @@ def test_publish_comment(self): pr.create_issue_comment.assert_called_once_with( '## Comment Title\n' - f'\u205f\u20041 files\u2004 ±0\u2002\u20032 suites\u2004 ±0\u2002\u2003\u20023s {duration_label_md} ±0s\n' - f'22 {all_tests_label_md} +1\u2002\u20034 {passed_tests_label_md} \u2006-\u200a\u205f\u20048\u2002\u20035 {skipped_tests_label_md} +1\u2002\u2003\u205f\u20046 {failed_tests_label_md} +4\u2002\u2003\u205f\u20047 {test_errors_label_md} +\u205f\u20044\u2002\n' - f'38 runs\u2006 +1\u2002\u20038 {passed_tests_label_md} \u2006-\u200a17\u2002\u20039 {skipped_tests_label_md} +2\u2002\u200310 {failed_tests_label_md} +6\u2002\u200311 {test_errors_label_md} +10\u2002\n' + f'{digit_space}1 files\u2004 ±0\u2002\u20032 suites\u2004 ±0\u2002\u2003\u20023s {duration_label_md} ±0s\n' + f'22 {all_tests_label_md} +1\u2002\u20034 {passed_tests_label_md} \u2006-\u200a{digit_space}8\u2002\u20035 {skipped_tests_label_md} +1\u2002\u2003{digit_space}6 {failed_tests_label_md} +4\u2002\u2003{digit_space}7 {test_errors_label_md} +{digit_space}4\u2002\n' + f'38 runs\u200a +1\u2002\u20038 {passed_tests_label_md} \u2006-\u200a17\u2002\u20039 {skipped_tests_label_md} +2\u2002\u200310 {failed_tests_label_md} +6\u2002\u200311 {test_errors_label_md} +10\u2002\n' '\n' 'Results for commit commit.\u2003± Comparison against base commit base.\n' '\n' @@ -2349,9 +2349,9 @@ def test_publish_comment_without_base(self): pr.create_issue_comment.assert_called_once_with( '## Comment Title\n' - f'\u205f\u20041 files\u2004\u20032 suites\u2004\u2003\u20023s {duration_label_md}\n' - f'22 {all_tests_label_md}\u20034 {passed_tests_label_md}\u20035 {skipped_tests_label_md}\u2003\u205f\u20046 {failed_tests_label_md}\u2003\u205f\u20047 {test_errors_label_md}\n' - f'38 runs\u2006\u20038 {passed_tests_label_md}\u20039 {skipped_tests_label_md}\u200310 {failed_tests_label_md}\u200311 {test_errors_label_md}\n' + f'{digit_space}1 files\u2004\u20032 suites\u2004\u2003\u20023s {duration_label_md}\n' + f'22 {all_tests_label_md}\u20034 {passed_tests_label_md}\u20035 {skipped_tests_label_md}\u2003{digit_space}6 {failed_tests_label_md}\u2003{digit_space}7 {test_errors_label_md}\n' + f'38 runs\u200a\u20038 {passed_tests_label_md}\u20039 {skipped_tests_label_md}\u200310 {failed_tests_label_md}\u200311 {test_errors_label_md}\n' '\n' 'Results for commit commit.\n' '\n' @@ -2374,9 +2374,9 @@ def test_publish_comment_without_compare(self): pr.create_issue_comment.assert_called_once_with( '## Comment Title\n' - f'\u205f\u20041 files\u2004\u20032 suites\u2004\u2003\u20023s {duration_label_md}\n' - f'22 {all_tests_label_md}\u20034 {passed_tests_label_md}\u20035 {skipped_tests_label_md}\u2003\u205f\u20046 {failed_tests_label_md}\u2003\u205f\u20047 {test_errors_label_md}\n' - f'38 runs\u2006\u20038 {passed_tests_label_md}\u20039 {skipped_tests_label_md}\u200310 {failed_tests_label_md}\u200311 {test_errors_label_md}\n' + f'{digit_space}1 files\u2004\u20032 suites\u2004\u2003\u20023s {duration_label_md}\n' + f'22 {all_tests_label_md}\u20034 {passed_tests_label_md}\u20035 {skipped_tests_label_md}\u2003{digit_space}6 {failed_tests_label_md}\u2003{digit_space}7 {test_errors_label_md}\n' + f'38 runs\u200a\u20038 {passed_tests_label_md}\u20039 {skipped_tests_label_md}\u200310 {failed_tests_label_md}\u200311 {test_errors_label_md}\n' '\n' 'Results for commit commit.\n' '\n' @@ -2400,9 +2400,9 @@ def test_publish_comment_with_check_run_with_annotations(self): pr.create_issue_comment.assert_called_once_with( '## Comment Title\n' - f'\u205f\u20041 files\u2004 ±0\u2002\u20032 suites\u2004 ±0\u2002\u2003\u20023s {duration_label_md} ±0s\n' - f'22 {all_tests_label_md} +1\u2002\u20034 {passed_tests_label_md} \u2006-\u200a\u205f\u20048\u2002\u20035 {skipped_tests_label_md} +1\u2002\u2003\u205f\u20046 {failed_tests_label_md} +4\u2002\u2003\u205f\u20047 {test_errors_label_md} +\u205f\u20044\u2002\n' - f'38 runs\u2006 +1\u2002\u20038 {passed_tests_label_md} \u2006-\u200a17\u2002\u20039 {skipped_tests_label_md} +2\u2002\u200310 {failed_tests_label_md} +6\u2002\u200311 {test_errors_label_md} +10\u2002\n' + f'{digit_space}1 files\u2004 ±0\u2002\u20032 suites\u2004 ±0\u2002\u2003\u20023s {duration_label_md} ±0s\n' + f'22 {all_tests_label_md} +1\u2002\u20034 {passed_tests_label_md} \u2006-\u200a{digit_space}8\u2002\u20035 {skipped_tests_label_md} +1\u2002\u2003{digit_space}6 {failed_tests_label_md} +4\u2002\u2003{digit_space}7 {test_errors_label_md} +{digit_space}4\u2002\n' + f'38 runs\u200a +1\u2002\u20038 {passed_tests_label_md} \u2006-\u200a17\u2002\u20039 {skipped_tests_label_md} +2\u2002\u200310 {failed_tests_label_md} +6\u2002\u200311 {test_errors_label_md} +10\u2002\n' '\n' 'For more details on these failures and errors, see [this check](http://check-run.url).\n' '\n' @@ -2432,9 +2432,9 @@ def test_publish_comment_with_check_run_without_annotations(self): pr.create_issue_comment.assert_called_once_with( '## Comment Title\n' - f'\u205f\u20041 files\u2004 ±0\u2002\u20032 suites\u2004 ±0\u2002\u2003\u20023s {duration_label_md} ±0s\n' - f'22 {all_tests_label_md} +1\u2002\u20034 {passed_tests_label_md} \u2006-\u200a\u205f\u20048\u2002\u20035 {skipped_tests_label_md} +1\u2002\u20030 {failed_tests_label_md} \u2006-\u200a2\u2002\n' - f'38 runs\u2006 +1\u2002\u20038 {passed_tests_label_md} \u2006-\u200a17\u2002\u20039 {skipped_tests_label_md} +2\u2002\u20030 {failed_tests_label_md} \u2006-\u200a4\u2002\n' + f'{digit_space}1 files\u2004 ±0\u2002\u20032 suites\u2004 ±0\u2002\u2003\u20023s {duration_label_md} ±0s\n' + f'22 {all_tests_label_md} +1\u2002\u20034 {passed_tests_label_md} \u2006-\u200a{digit_space}8\u2002\u20035 {skipped_tests_label_md} +1\u2002\u20030 {failed_tests_label_md} \u2006-\u200a2\u2002\n' + f'38 runs\u200a +1\u2002\u20038 {passed_tests_label_md} \u2006-\u200a17\u2002\u20039 {skipped_tests_label_md} +2\u2002\u20030 {failed_tests_label_md} \u2006-\u200a4\u2002\n' '\n' 'Results for commit commit.\u2003± Comparison against base commit base.\n' '\n'