aboutsummaryrefslogtreecommitdiffstats
path: root/library/python/testing/custom_linter_util/tests/test_params.py
diff options
context:
space:
mode:
authorrobot-ydb-importer <robot-ydb-importer@yandex-team.com>2024-11-22 16:22:45 +0300
committerrobot-ydb-importer <robot-ydb-importer@yandex-team.com>2024-11-22 16:37:54 +0300
commite2791d7cb5f6c16065070c3e36286399908c3f56 (patch)
tree3fe608c5d15b25f183591f075dee49bfd6a83dde /library/python/testing/custom_linter_util/tests/test_params.py
parent145d1a017c8b4a1d1d2d900d87df267373c7479e (diff)
downloadydb-e2791d7cb5f6c16065070c3e36286399908c3f56.tar.gz
YDB Import 625
commit_hash:bbf24592c367fa158fbc53e041fe367374d0750e
Diffstat (limited to 'library/python/testing/custom_linter_util/tests/test_params.py')
-rw-r--r--library/python/testing/custom_linter_util/tests/test_params.py83
1 files changed, 83 insertions, 0 deletions
diff --git a/library/python/testing/custom_linter_util/tests/test_params.py b/library/python/testing/custom_linter_util/tests/test_params.py
new file mode 100644
index 0000000000..025bb3eef2
--- /dev/null
+++ b/library/python/testing/custom_linter_util/tests/test_params.py
@@ -0,0 +1,83 @@
+import json
+
+from library.python.testing.custom_linter_util import linter_params
+from yatest.common import work_path
+
+
+SOURCE_ROOT = "TEST_SOURCE_ROOT"
+PROJECT_PATH = "TEST_PROJECT_PATH"
+OUTPUT_PATH = "TEST_OUTPUT_PATH"
+REPORT_FILE = "TEST_REPORT_FILE"
+LINT_NAME = "important-lint"
+DEPS = {
+ "dep1": "/path/to/dep1",
+ "dep2": "/path/to/dep2",
+}
+GLOBAL_RESOURCES = {
+ "TOOL1_GLOBAL_RESOURCES": "/path/to/resource1",
+ "TOOL2_GLOBAL_RESOURCES": "/path/to/resource2",
+}
+CONFIGS = ["path/to/config1", "path/to/config2"]
+EXTRA_PARAMS = {
+ "var1": "val1",
+ "var2": "val2",
+}
+FILES = ["file1.cpp", "file2.cpp"]
+
+EXPECTED = linter_params.LinterArgs(
+ source_root=SOURCE_ROOT,
+ project_path=PROJECT_PATH,
+ output_path=OUTPUT_PATH,
+ report_file=REPORT_FILE,
+ lint_name=LINT_NAME,
+ depends=DEPS,
+ global_resources=GLOBAL_RESOURCES,
+ configs=CONFIGS,
+ extra_params=EXTRA_PARAMS,
+ files=FILES,
+)
+
+
+def test_cmd_line_params():
+ raw_args = [
+ "--source-root", SOURCE_ROOT,
+ "--project-path", PROJECT_PATH,
+ "--output-path", OUTPUT_PATH,
+ "--report-file", REPORT_FILE,
+ "--lint-name", LINT_NAME,
+ ]
+ for rel, abs in DEPS.items():
+ raw_args += ["--depends", ":".join([rel, abs])]
+ for var, path in GLOBAL_RESOURCES.items():
+ raw_args += ["--global-resource", ":".join([var, path])]
+ for cfg in CONFIGS:
+ raw_args += ["--config", cfg]
+ for var, val in EXTRA_PARAMS.items():
+ raw_args += ["--extra-param", "=".join([var, val])]
+ raw_args += FILES
+
+ got = linter_params.get_params(raw_args)
+
+ assert got == EXPECTED
+
+
+def test_json_params():
+ params_file = work_path("params.josn")
+ params = {
+ "source_root": SOURCE_ROOT,
+ "project_path": PROJECT_PATH,
+ "output_path": OUTPUT_PATH,
+ "report_file": REPORT_FILE,
+ "lint_name": LINT_NAME,
+ "depends": DEPS,
+ "global_resources": GLOBAL_RESOURCES,
+ "configs": CONFIGS,
+ "extra_params": EXTRA_PARAMS,
+ "files": FILES,
+ }
+ with open(params_file, "w") as f:
+ json.dump(params, f)
+
+ got = linter_params.get_params(["--params", params_file])
+
+ assert got == EXPECTED