aboutsummaryrefslogtreecommitdiffstats
path: root/library/python/cpp_test/test_cpp.py
diff options
context:
space:
mode:
authorvitalyisaev <vitalyisaev@yandex-team.com>2023-06-29 10:00:50 +0300
committervitalyisaev <vitalyisaev@yandex-team.com>2023-06-29 10:00:50 +0300
commit6ffe9e53658409f212834330e13564e4952558f6 (patch)
tree85b1e00183517648b228aafa7c8fb07f5276f419 /library/python/cpp_test/test_cpp.py
parent726057070f9c5a91fc10fde0d5024913d10f1ab9 (diff)
downloadydb-6ffe9e53658409f212834330e13564e4952558f6.tar.gz
YQ Connector: support managed ClickHouse
Со стороны dqrun можно обратиться к инстансу коннектора, который работает на streaming стенде, и извлечь данные из облачного CH.
Diffstat (limited to 'library/python/cpp_test/test_cpp.py')
-rw-r--r--library/python/cpp_test/test_cpp.py41
1 files changed, 41 insertions, 0 deletions
diff --git a/library/python/cpp_test/test_cpp.py b/library/python/cpp_test/test_cpp.py
new file mode 100644
index 0000000000..0882dd541b
--- /dev/null
+++ b/library/python/cpp_test/test_cpp.py
@@ -0,0 +1,41 @@
+import json
+import os
+import subprocess
+
+import pytest
+import yaml
+import yatest
+
+from library.python.testing.style import rules
+import library.python.resource as lpr
+
+
+STYLE_CONFIG_JSON_12 = json.dumps(yaml.safe_load(lpr.find('/cpp_style/config/12')))
+STYLE_CONFIG_JSON_14 = json.dumps(yaml.safe_load(lpr.find('/cpp_style/config/14')))
+
+RES_FILE_PREFIX = '/cpp_style/files/'
+CHECKED_PATHS = list(lpr.iterkeys(RES_FILE_PREFIX, strip_prefix=True))
+
+
+def check_style(filename, actual_source):
+ try:
+ clang_format_binary = yatest.common.binary_path('contrib/libs/clang12/tools/clang-format/clang-format')
+ config = STYLE_CONFIG_JSON_12
+ except Exception:
+ clang_format_binary = yatest.common.binary_path('contrib/libs/clang14/tools/clang-format/clang-format')
+ config = STYLE_CONFIG_JSON_14
+
+ command = [clang_format_binary, '-assume-filename=' + filename, '-style=' + config]
+ styled_source = subprocess.check_output(command, input=actual_source)
+
+ assert actual_source.decode() == styled_source.decode()
+
+
+@pytest.mark.parametrize('path', CHECKED_PATHS)
+def test_cpp_style(path):
+ data = lpr.find(RES_FILE_PREFIX + path)
+ skip_reason = rules.get_skip_reason(path, data, skip_links=False)
+ if skip_reason:
+ raise pytest.skip("style check is omitted: {}".format(skip_reason))
+ else:
+ check_style(os.path.basename(path), data)