Skip to content

Commit 4eb8330

Browse files
New tests in TestgresRemoteTests are added
New tests: - test_init__LANG_С - test_init__unk_LANG_and_LC_CTYPE
1 parent 4f0ba36 commit 4eb8330

File tree

1 file changed

+56
-0
lines changed

1 file changed

+56
-0
lines changed

tests/test_simple_remote.py

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,56 @@ def test_custom_init(self):
119119
# there should be no trust entries at all
120120
self.assertFalse(any('trust' in s for s in lines))
121121

122+
def test_init__LANG_С(self):
123+
# PBCKP-1744
124+
prev_LANG = os.environ.get("LANG")
125+
126+
try:
127+
os.environ["LANG"] = "C"
128+
129+
with get_remote_node(conn_params=conn_params) as node:
130+
node.init().start()
131+
finally:
132+
__class__.helper__restore_envvar("LANG", prev_LANG)
133+
134+
def test_init__unk_LANG_and_LC_CTYPE(self):
135+
# PBCKP-1744
136+
prev_LANG = os.environ.get("LANG")
137+
prev_LANGUAGE = os.environ.get("LANGUAGE")
138+
prev_LC_CTYPE = os.environ.get("LC_CTYPE")
139+
prev_LC_COLLATE = os.environ.get("LC_COLLATE")
140+
141+
try:
142+
os.environ["LANG"] = "UNKNOWN_LANG"
143+
os.environ.pop("LANGUAGE", None)
144+
os.environ["LC_CTYPE"] = "UNKNOWN_CTYPE"
145+
os.environ.pop("LC_COLLATE", None)
146+
147+
assert os.environ.get("LANG") == "UNKNOWN_LANG"
148+
assert not ("LANGUAGE" in os.environ.keys())
149+
assert os.environ.get("LC_CTYPE") == "UNKNOWN_CTYPE"
150+
assert not ("LC_COLLATE" in os.environ.keys())
151+
152+
while True:
153+
try:
154+
with get_remote_node(conn_params=conn_params):
155+
pass
156+
except testgres.exceptions.ExecUtilException as e:
157+
# warning: setlocale: LC_CTYPE: cannot change locale (UNKNOWN_CTYPE): No such file or directory
158+
# postgres (PostgreSQL) 14.12
159+
errMsg = str(e)
160+
assert "LC_CTYPE" in errMsg
161+
assert "UNKNOWN_CTYPE" in errMsg
162+
assert "warning: setlocale: LC_CTYPE: cannot change locale (UNKNOWN_CTYPE): No such file or directory" in errMsg
163+
assert "postgres" in errMsg
164+
break
165+
raise Exception("We expected an error!")
166+
finally:
167+
__class__.helper__restore_envvar("LANG", prev_LANG)
168+
__class__.helper__restore_envvar("LANGUAGE", prev_LANGUAGE)
169+
__class__.helper__restore_envvar("LC_CTYPE", prev_LC_CTYPE)
170+
__class__.helper__restore_envvar("LC_COLLATE", prev_LC_COLLATE)
171+
122172
def test_double_init(self):
123173
with get_remote_node(conn_params=conn_params).init() as node:
124174
# can't initialize node more than once
@@ -994,6 +1044,12 @@ def test_child_process_dies(self):
9941044
# try to handle children list -- missing processes will have ptype "ProcessType.Unknown"
9951045
[ProcessProxy(p) for p in children]
9961046

1047+
def helper__restore_envvar(name, prev_value):
1048+
if prev_value is None:
1049+
os.environ.pop(name, None)
1050+
else:
1051+
os.environ[name] = prev_value
1052+
9971053

9981054
if __name__ == '__main__':
9991055
if os_ops.environ('ALT_CONFIG'):

0 commit comments

Comments
 (0)