2021-04-26 20:07:00 +02:00
|
|
|
|
#coding:utf-8
|
|
|
|
|
|
2022-01-25 22:55:48 +01:00
|
|
|
|
"""
|
|
|
|
|
ID: issue-5734
|
|
|
|
|
ISSUE: 5734
|
|
|
|
|
TITLE: AV in fbclient when reading blob stored in incompatible encoding
|
|
|
|
|
DESCRIPTION:
|
|
|
|
|
JIRA: CORE-5464
|
2022-02-02 15:46:19 +01:00
|
|
|
|
FBTEST: bugs.core_5464
|
2022-10-06 14:27:09 +02:00
|
|
|
|
NOTES:
|
|
|
|
|
[06.10.2022] pzotov
|
|
|
|
|
Could not complete adjusting for LINUX in new-qa.
|
|
|
|
|
DEFERRED.
|
2022-01-25 22:55:48 +01:00
|
|
|
|
"""
|
2022-10-06 14:27:09 +02:00
|
|
|
|
import platform
|
2022-01-25 22:55:48 +01:00
|
|
|
|
import pytest
|
|
|
|
|
from firebird.qa import *
|
2021-04-26 20:07:00 +02:00
|
|
|
|
|
2022-01-25 22:55:48 +01:00
|
|
|
|
init_script = """
|
2021-04-26 20:07:00 +02:00
|
|
|
|
create domain d_int int;
|
|
|
|
|
comment on domain d_int is
|
|
|
|
|
'*Лев Николаевич Толстой * *Анна Каренина * /Мне отмщение, и аз воздам/ *ЧАСТЬ ПЕРВАЯ* *I *
|
2021-12-07 20:09:36 +01:00
|
|
|
|
Все счастливые семьи похожи друг на друга, каждая несчастливая
|
|
|
|
|
семья несчастлива по-своему.
|
2021-04-26 20:07:00 +02:00
|
|
|
|
Все смешалось в доме Облонских. Жена узнала, что муж был в связи
|
|
|
|
|
с бывшею в их доме француженкою-гувернанткой, и объявила мужу, что
|
|
|
|
|
не может жить с ним в одном доме. Положение это продолжалось уже
|
|
|
|
|
третий день и мучительно чувствовалось и самими супругами, и всеми
|
|
|
|
|
членами семьи, и домочадцами. Все члены семьи и домочадцы
|
|
|
|
|
чувствовали, что нет смысла в их сожительстве и что на каждом
|
|
|
|
|
п1
|
|
|
|
|
';
|
2021-12-07 20:09:36 +01:00
|
|
|
|
commit;
|
|
|
|
|
"""
|
2021-04-26 20:07:00 +02:00
|
|
|
|
|
2022-01-25 22:55:48 +01:00
|
|
|
|
db_1 = db_factory(charset='WIN1251', init=init_script)
|
2021-12-07 20:09:36 +01:00
|
|
|
|
|
2022-01-25 22:55:48 +01:00
|
|
|
|
test_script = """
|
2021-12-07 20:09:36 +01:00
|
|
|
|
set blob all;
|
|
|
|
|
set list on;
|
|
|
|
|
|
|
|
|
|
select c.rdb$character_set_name as connection_cset, r.rdb$character_set_name as db_default_cset
|
|
|
|
|
from mon$attachments a
|
|
|
|
|
join rdb$character_sets c on a.mon$character_set_id = c.rdb$character_set_id
|
|
|
|
|
cross join rdb$database r where a.mon$attachment_id=current_connection;
|
|
|
|
|
|
|
|
|
|
select rdb$field_name, rdb$system_flag, rdb$description
|
|
|
|
|
from rdb$fields where rdb$description is not null;
|
|
|
|
|
"""
|
|
|
|
|
|
2022-01-25 22:55:48 +01:00
|
|
|
|
act = isql_act('db_1', test_script)
|
2021-04-26 20:07:00 +02:00
|
|
|
|
|
2022-01-25 22:55:48 +01:00
|
|
|
|
expected_stdout = """
|
2021-04-26 20:07:00 +02:00
|
|
|
|
CONNECTION_CSET WIN1250
|
|
|
|
|
DB_DEFAULT_CSET WIN1251
|
2021-12-07 20:09:36 +01:00
|
|
|
|
"""
|
|
|
|
|
|
2022-01-25 22:55:48 +01:00
|
|
|
|
expected_stderr = """
|
2021-04-26 20:07:00 +02:00
|
|
|
|
Statement failed, SQLSTATE = 22018
|
2021-12-07 20:09:36 +01:00
|
|
|
|
Cannot transliterate character between character sets
|
|
|
|
|
"""
|
2021-04-26 20:07:00 +02:00
|
|
|
|
|
2022-10-06 14:27:09 +02:00
|
|
|
|
@pytest.mark.skipif(platform.system() != 'Windows', reason='FIXME: see notes')
|
2021-04-26 20:07:00 +02:00
|
|
|
|
@pytest.mark.version('>=3.0.2')
|
2022-01-25 22:55:48 +01:00
|
|
|
|
def test_1(act: Action):
|
|
|
|
|
act.expected_stderr = expected_stderr
|
|
|
|
|
act.expected_stdout = expected_stdout
|
|
|
|
|
act.isql(switches=['-q'], input=test_script, charset='WIN1250')
|
|
|
|
|
assert (act.clean_stderr == act.clean_expected_stderr and
|
|
|
|
|
act.clean_stdout == act.clean_expected_stdout)
|