From eb0844d414c9f55646482e3a259be75024c01eca Mon Sep 17 00:00:00 2001 From: Zim Kalinowski Date: Sat, 11 Apr 2020 14:38:05 +0000 Subject: [PATCH 1/3] statistics script --- .../azure-sdk-tools/devtools_testutils/mgmt_test_stats.py | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 tools/azure-sdk-tools/devtools_testutils/mgmt_test_stats.py diff --git a/tools/azure-sdk-tools/devtools_testutils/mgmt_test_stats.py b/tools/azure-sdk-tools/devtools_testutils/mgmt_test_stats.py new file mode 100644 index 000000000000..1e150e73fc5e --- /dev/null +++ b/tools/azure-sdk-tools/devtools_testutils/mgmt_test_stats.py @@ -0,0 +1,7 @@ +import os +import re + +pattern = ".\/sdk\/[a-z]+\/azure-mgmt-[a-z-]+$" +dirs = [x[0] for x in os.walk(".") if re.match(pattern, x[0])] +print(dirs) +print(len(dirs)) From fdecff66f1997bf793c523398704cd2636f88b6a Mon Sep 17 00:00:00 2001 From: Zim Kalinowski Date: Sat, 11 Apr 2020 15:19:33 +0000 Subject: [PATCH 2/3] calculating coverage --- .../devtools_testutils/mgmt_test_stats.py | 21 +++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/tools/azure-sdk-tools/devtools_testutils/mgmt_test_stats.py b/tools/azure-sdk-tools/devtools_testutils/mgmt_test_stats.py index 1e150e73fc5e..850398b0c96d 100644 --- a/tools/azure-sdk-tools/devtools_testutils/mgmt_test_stats.py +++ b/tools/azure-sdk-tools/devtools_testutils/mgmt_test_stats.py @@ -1,7 +1,20 @@ -import os +from os import listdir, walk import re +from os.path import join, exists pattern = ".\/sdk\/[a-z]+\/azure-mgmt-[a-z-]+$" -dirs = [x[0] for x in os.walk(".") if re.match(pattern, x[0])] -print(dirs) -print(len(dirs)) +dirs = [x[0] for x in walk(".") if re.match(pattern, x[0])] + +for d in dirs: + coverage = "NONE" + test_dir = join(d, "tests") + if exists(test_dir): + test_files = [f for f in listdir(test_dir) if re.match("^test_[a-z_]+.py$", f)] + for t in test_files: + coverage = "MANUAL" + if t.startswith("test_cli_"): + coverage = "AUTO" + with open(join(test_dir, t)) as f: + content = f.readlines() + coverage = str([x for x in content if x.startswith("# Coverage % :")]) + print("{:65} : {}".format(d, coverage)) From 874623aa046117a96928beae211d232767859f86 Mon Sep 17 00:00:00 2001 From: Zim Kalinowski Date: Sat, 11 Apr 2020 17:55:21 +0000 Subject: [PATCH 3/3] finalized coverage script --- .../devtools_testutils/mgmt_test_stats.py | 38 +++++++++++++++++-- 1 file changed, 34 insertions(+), 4 deletions(-) diff --git a/tools/azure-sdk-tools/devtools_testutils/mgmt_test_stats.py b/tools/azure-sdk-tools/devtools_testutils/mgmt_test_stats.py index 850398b0c96d..13de933c7a77 100644 --- a/tools/azure-sdk-tools/devtools_testutils/mgmt_test_stats.py +++ b/tools/azure-sdk-tools/devtools_testutils/mgmt_test_stats.py @@ -2,19 +2,49 @@ import re from os.path import join, exists +print("| Package | Coverage |") +print("|----------------------------------------|------------|") + pattern = ".\/sdk\/[a-z]+\/azure-mgmt-[a-z-]+$" dirs = [x[0] for x in walk(".") if re.match(pattern, x[0])] - +dirs.sort(key=lambda x: x.split("/").pop()) +total = 0 +manual = 0 +auto = 0 +none = 0 for d in dirs: - coverage = "NONE" + total += 1 + coverage = "-" test_dir = join(d, "tests") if exists(test_dir): test_files = [f for f in listdir(test_dir) if re.match("^test_[a-z_]+.py$", f)] + has_manual = False + has_auto = False for t in test_files: coverage = "MANUAL" if t.startswith("test_cli_"): coverage = "AUTO" with open(join(test_dir, t)) as f: content = f.readlines() - coverage = str([x for x in content if x.startswith("# Coverage % :")]) - print("{:65} : {}".format(d, coverage)) + coverage = [x for x in content if x.startswith("# Coverage % :")] + coverage = 0 if not coverage else float(coverage[0].split(":").pop()) + has_auto = True + else: + has_manual = True + manual += 1 if has_manual else 0 + auto += 1 if has_auto else 0 + else: + none += 1 + + print("| {:38} | {:10} |".format(d.split("/").pop(), coverage if coverage in ["-" , "AUTO", "MANUAL"] else "{:4.2f}".format(coverage))) + +print("| {:38} | {:10} |".format("", "")) +print("| {:38} | {:10} |".format("**TOTAL**", "**{}**".format(total))) +print("| {:38} | {:10} |".format("**MANUAL**", "**{}**".format(manual))) +print("| {:38} | {:10} |".format("**MANUAL %**", "**{:4.2f}**".format(100 * manual / total))) +print("| {:38} | {:10} |".format("**AUTO**", "**{}**".format(auto))) +print("| {:38} | {:10} |".format("**AUTO %**", "**{:4.2f}**".format(100 * auto / total))) +print("| {:38} | {:10} |".format("**NONE**", "**{}**".format(none))) +print("| {:38} | {:10} |".format("**NONE %**", "**{:4.2f}**".format(100 * none / total))) + +