aboutsummaryrefslogtreecommitdiffstats
path: root/yql/essentials/tests/common/test_framework/test_file_common.py
diff options
context:
space:
mode:
authorudovichenko-r <udovichenko-r@yandex-team.com>2024-11-23 22:29:07 +0300
committerudovichenko-r <udovichenko-r@yandex-team.com>2024-11-23 22:43:39 +0300
commit8b9f13e29dea8f76f11579aae5344ac571d5e604 (patch)
tree0449b096aa6444a36ba8cc5a3b3c64e0e7b94ed1 /yql/essentials/tests/common/test_framework/test_file_common.py
parent284518c9e820058795b9e7cc44ff26b25f3f455b (diff)
downloadydb-8b9f13e29dea8f76f11579aae5344ac571d5e604.tar.gz
Check custom error in xfail tests. Remove canonization from dq/hybrid tests
1. xfail тесты теперь должны содержать спец комментарий `custom error` с ожидаемым текстом ошибки 2. Все suites для xfail размечены спец. коментариями, некоторые тесты разбиты на несколько 3. Включены тесты с Python и Javascript udf для yt провайдера и переканонизированы (были отключены в github) 4. Для тяжелых xfail тестов аналогично убрана канонизация и включена проверка по спец. коментарию 5. Из dq_file/hybrid тестов убрана канонизация. Осталась только кросс-проверка результатов с yqlrun и блочным режимом 6. В dqrun теперь используется exception_policy вместо fail_policy (для корректной выдачи ошибок в тестах) commit_hash:a92b3835f86b0c01225e81e3f28bb6d11d8d67a3
Diffstat (limited to 'yql/essentials/tests/common/test_framework/test_file_common.py')
-rw-r--r--yql/essentials/tests/common/test_framework/test_file_common.py13
1 files changed, 5 insertions, 8 deletions
diff --git a/yql/essentials/tests/common/test_framework/test_file_common.py b/yql/essentials/tests/common/test_framework/test_file_common.py
index b33076e561..3fc5cfe025 100644
--- a/yql/essentials/tests/common/test_framework/test_file_common.py
+++ b/yql/essentials/tests/common/test_framework/test_file_common.py
@@ -8,7 +8,7 @@ import yql.essentials.providers.common.proto.gateways_config_pb2 as gateways_con
from google.protobuf import text_format
from yql_utils import execute_sql, get_supported_providers, get_tables, get_files, get_http_files, \
- get_pragmas, KSV_ATTR, is_xfail, get_param, YQLExecResult, yql_binary_path
+ get_pragmas, KSV_ATTR, is_xfail, get_param, YQLExecResult, yql_binary_path, do_custom_error_check
from yqlrun import YQLRun
from test_utils import get_parameters_json, DATA_PATH, replace_vars
@@ -70,7 +70,7 @@ def get_sql_query(provider, suite, case, config):
pragmas.append(sql_query)
sql_query = ';\n'.join(pragmas)
- if 'Python' in sql_query or 'Javascript' in sql_query:
+ if provider != 'yt' and 'Javascript' in sql_query:
pytest.skip('ScriptUdf')
assert 'UseBlocks' not in sql_query, 'UseBlocks should not be used directly, only via ForceBlocks'
@@ -96,7 +96,7 @@ def run_file_no_cache(provider, suite, case, cfg, config, yql_http_file_server,
content = table.content
else:
content = table.attr
- if 'Python' in content or 'Javascript' in content:
+ if provider != 'yt' and 'Javascript' in content:
pytest.skip('ScriptUdf')
parameters = get_parameters_json(suite, config)
@@ -124,11 +124,8 @@ def run_file_no_cache(provider, suite, case, cfg, config, yql_http_file_server,
fixed_stderr = res.std_err
if xfail:
assert res.execution_result.exit_code != 0
- custom_error = re.search(r"/\* custom error:(.*)\*/", sql_query)
- if custom_error:
- err_string = custom_error.group(1)
- assert res.std_err.find(err_string) != -1
- fixed_stderr = None
+ do_custom_error_check(res, sql_query)
+ fixed_stderr = None
fixed_result = YQLExecResult(res.std_out,
fixed_stderr,