summaryrefslogtreecommitdiffstats
path: root/ansible_collections/cisco/meraki/scripts/sublime-build/build.py.generic
diff options
context:
space:
mode:
Diffstat (limited to 'ansible_collections/cisco/meraki/scripts/sublime-build/build.py.generic')
-rwxr-xr-xansible_collections/cisco/meraki/scripts/sublime-build/build.py.generic76
1 files changed, 76 insertions, 0 deletions
diff --git a/ansible_collections/cisco/meraki/scripts/sublime-build/build.py.generic b/ansible_collections/cisco/meraki/scripts/sublime-build/build.py.generic
new file mode 100755
index 00000000..53acd432
--- /dev/null
+++ b/ansible_collections/cisco/meraki/scripts/sublime-build/build.py.generic
@@ -0,0 +1,76 @@
+#!/usr/bin/env python
+
+import subprocess
+import sys
+import pathlib
+
+
+def is_path_module(path) -> bool:
+ path = pathlib.Path(path)
+ parts = path.parts
+ if "plugins" in parts and "modules" in parts:
+ # print(f"This is module {str(parts[-1])}")
+ return True
+ return False
+
+
+def is_path_integration_test(path) -> bool:
+ path = pathlib.Path(path)
+ parts = path.parts
+ if "integration" in parts and "tests" in parts:
+ return True
+ return False
+
+
+def get_module_name_from_module(path) -> str:
+ path = pathlib.Path(path)
+ parts = path.parts
+ return parts[-1].split(".")[0]
+
+
+def get_module_name_from_test(path) -> str:
+ path = pathlib.Path(path)
+ parts = path.parts
+ return parts[-3]
+
+
+def execute_tests(module_name, ansible_test_path=None) -> None:
+ if ansible_test_path is not None:
+ if ansible_test_path[-1] != "/":
+ ansible_test_path = f"{ansible_test_path}/"
+ with subprocess.Popen(
+ [
+ f"{ansible_test_path}ansible-test",
+ "network-integration",
+ "--allow-unsupported",
+ module_name,
+ ],
+ ) as process:
+ process.communicate()
+ else:
+ with subprocess.Popen(
+ [
+ "ansible-test",
+ "network-integration",
+ "--allow-unsupported",
+ module_name,
+ ],
+ ) as process:
+ process.communicate()
+
+
+def main():
+ if len(sys.argv) == 1:
+ sys.exit("File path must be passed as an argument.")
+ if is_path_module(sys.argv[1]) is True:
+ module_name = get_module_name_from_module(sys.argv[1])
+ if is_path_integration_test(sys.argv[1]) is True:
+ module_name = get_module_name_from_test(sys.argv[1])
+ if len(sys.argv) == 3: # Specify ansible-test path
+ execute_tests(module_name, sys.argv[2])
+ else:
+ execute_tests(module_name)
+
+
+if __name__ == "__main__":
+ main()