From 9500ed44e4100dbe84a802019dad3e86a80b21cc Mon Sep 17 00:00:00 2001 From: pavel-zotov Date: Sat, 30 Sep 2023 06:49:47 +0300 Subject: [PATCH] Added/Updated tests\bugs\core_4280_test.py: Expected error message become differ in FB 6.x, added splitting. --- tests/bugs/core_4280_test.py | 42 +++++++++++++----------------------- 1 file changed, 15 insertions(+), 27 deletions(-) diff --git a/tests/bugs/core_4280_test.py b/tests/bugs/core_4280_test.py index 27e3602f..02cffccb 100644 --- a/tests/bugs/core_4280_test.py +++ b/tests/bugs/core_4280_test.py @@ -15,48 +15,36 @@ from firebird.qa import * db = db_factory() test_script = """ - create view v_check as - select - rf.rdb$function_name as func_name - ,rf.rdb$legacy_flag as legacy_flag - from rdb$functions rf where rf.rdb$function_name = upper('psql_func_test') - ; - commit; - set term ^; - create function psql_func_test(x integer, y boolean, x integer) -- argument `x` appears twice + create function psql_func_test(a_x integer, a_y boolean, a_x integer) -- argument `a_x` appears twice returns integer as begin - return x + 1; + return a_x + 1; end ^ set term ;^ commit; - - set list on; - set count on; - select * from v_check; - """ act = isql_act('db', test_script) -expected_stdout = """ - Records affected: 0 -""" - -expected_stderr = """ +expected_stdout_5x = """ Statement failed, SQLSTATE = 42000 CREATE FUNCTION PSQL_FUNC_TEST failed -SQL error code = -901 - -duplicate specification of X - not supported + -duplicate specification of A_X - not supported +""" + +expected_stdout_6x = """ + Statement failed, SQLSTATE = 42000 + CREATE FUNCTION PSQL_FUNC_TEST failed + -Dynamic SQL Error + -SQL error code = -637 + -duplicate specification of A_X - not supported """ @pytest.mark.version('>=3.0') def test_1(act: Action): - act.expected_stdout = expected_stdout - act.expected_stderr = expected_stderr - act.execute() - assert (act.clean_stderr == act.clean_expected_stderr and - act.clean_stdout == act.clean_expected_stdout) - + act.expected_stdout = expected_stdout_5x if act.is_version('<6') else expected_stdout_6x + act.execute(combine_output = True) + assert act.clean_stdout == act.clean_expected_stdout