testgres 1.14.1__tar.gz → 1.14.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. {testgres-1.14.1/testgres.egg-info → testgres-1.14.3}/PKG-INFO +2 -2
  2. {testgres-1.14.1 → testgres-1.14.3}/pyproject.toml +1 -1
  3. {testgres-1.14.1 → testgres-1.14.3}/src/__init__.py +1 -1
  4. {testgres-1.14.1 → testgres-1.14.3}/src/node.py +3 -1
  5. {testgres-1.14.1 → testgres-1.14.3}/src/node_app.py +5 -4
  6. {testgres-1.14.1 → testgres-1.14.3}/src/utils.py +14 -6
  7. {testgres-1.14.1 → testgres-1.14.3/testgres.egg-info}/PKG-INFO +2 -2
  8. {testgres-1.14.1 → testgres-1.14.3}/testgres.egg-info/requires.txt +1 -1
  9. {testgres-1.14.1 → testgres-1.14.3}/tests/test_os_ops_common.py +6 -4
  10. {testgres-1.14.1 → testgres-1.14.3}/tests/test_testgres_common.py +52 -1
  11. {testgres-1.14.1 → testgres-1.14.3}/LICENSE +0 -0
  12. {testgres-1.14.1 → testgres-1.14.3}/README.md +0 -0
  13. {testgres-1.14.1 → testgres-1.14.3}/setup.cfg +0 -0
  14. {testgres-1.14.1 → testgres-1.14.3}/src/api.py +0 -0
  15. {testgres-1.14.1 → testgres-1.14.3}/src/backup.py +0 -0
  16. {testgres-1.14.1 → testgres-1.14.3}/src/cache.py +0 -0
  17. {testgres-1.14.1 → testgres-1.14.3}/src/config.py +0 -0
  18. {testgres-1.14.1 → testgres-1.14.3}/src/connection.py +0 -0
  19. {testgres-1.14.1 → testgres-1.14.3}/src/consts.py +0 -0
  20. {testgres-1.14.1 → testgres-1.14.3}/src/decorators.py +0 -0
  21. {testgres-1.14.1 → testgres-1.14.3}/src/defaults.py +0 -0
  22. {testgres-1.14.1 → testgres-1.14.3}/src/enums.py +0 -0
  23. {testgres-1.14.1 → testgres-1.14.3}/src/exceptions.py +0 -0
  24. {testgres-1.14.1 → testgres-1.14.3}/src/impl/internal_utils.py +0 -0
  25. {testgres-1.14.1 → testgres-1.14.3}/src/impl/platforms/internal_platform_utils.py +0 -0
  26. {testgres-1.14.1 → testgres-1.14.3}/src/impl/platforms/internal_platform_utils_factory.py +0 -0
  27. {testgres-1.14.1 → testgres-1.14.3}/src/impl/platforms/linux/internal_platform_utils.py +0 -0
  28. {testgres-1.14.1 → testgres-1.14.3}/src/impl/platforms/win32/internal_platform_utils.py +0 -0
  29. {testgres-1.14.1 → testgres-1.14.3}/src/impl/port_manager__generic.py +0 -0
  30. {testgres-1.14.1 → testgres-1.14.3}/src/impl/port_manager__this_host.py +0 -0
  31. {testgres-1.14.1 → testgres-1.14.3}/src/logger.py +0 -0
  32. {testgres-1.14.1 → testgres-1.14.3}/src/port_manager.py +0 -0
  33. {testgres-1.14.1 → testgres-1.14.3}/src/pubsub.py +0 -0
  34. {testgres-1.14.1 → testgres-1.14.3}/src/raise_error.py +0 -0
  35. {testgres-1.14.1 → testgres-1.14.3}/src/standby.py +0 -0
  36. {testgres-1.14.1 → testgres-1.14.3}/testgres.egg-info/SOURCES.txt +0 -0
  37. {testgres-1.14.1 → testgres-1.14.3}/testgres.egg-info/dependency_links.txt +0 -0
  38. {testgres-1.14.1 → testgres-1.14.3}/testgres.egg-info/top_level.txt +0 -0
  39. {testgres-1.14.1 → testgres-1.14.3}/tests/test_api.py +0 -0
  40. {testgres-1.14.1 → testgres-1.14.3}/tests/test_config.py +0 -0
  41. {testgres-1.14.1 → testgres-1.14.3}/tests/test_os_ops_local.py +0 -0
  42. {testgres-1.14.1 → testgres-1.14.3}/tests/test_os_ops_remote.py +0 -0
  43. {testgres-1.14.1 → testgres-1.14.3}/tests/test_raise_error.py +0 -0
  44. {testgres-1.14.1 → testgres-1.14.3}/tests/test_testgres_local.py +0 -0
  45. {testgres-1.14.1 → testgres-1.14.3}/tests/test_testgres_remote.py +0 -0
  46. {testgres-1.14.1 → testgres-1.14.3}/tests/test_utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: testgres
3
- Version: 1.14.1
3
+ Version: 1.14.3
4
4
  Summary: Testing utility for PostgreSQL and its extensions
5
5
  Author-email: Postgres Professional <testgres@postgrespro.ru>
6
6
  License: PostgreSQL
@@ -27,7 +27,7 @@ Requires-Dist: port-for>=0.4
27
27
  Requires-Dist: six>=1.9.0
28
28
  Requires-Dist: psutil
29
29
  Requires-Dist: packaging
30
- Requires-Dist: testgres.os_ops<3.0.0,>=2.3.0
30
+ Requires-Dist: testgres.os_ops<3.0.0,>=2.4.0
31
31
  Dynamic: license-file
32
32
 
33
33
  [![CI Status](https://img.shields.io/github/actions/workflow/status/postgrespro/testgres/.github/workflows/ci.yml?label=CI)](https://github.com/postgrespro/testgres/actions/workflows/ci.yml)
@@ -65,7 +65,7 @@ dependencies = [
65
65
  "six>=1.9.0",
66
66
  "psutil",
67
67
  "packaging",
68
- "testgres.os_ops>=2.3.0,<3.0.0",
68
+ "testgres.os_ops>=2.4.0,<3.0.0",
69
69
  ]
70
70
 
71
71
  [project.urls]
@@ -56,7 +56,7 @@ from testgres.operations.os_ops import OsOperations, ConnectionParams
56
56
  from testgres.operations.local_ops import LocalOperations
57
57
  from testgres.operations.remote_ops import RemoteOperations
58
58
 
59
- __version__ = "1.14.1"
59
+ __version__ = "1.14.3"
60
60
 
61
61
  __all__ = [
62
62
  "get_new_node",
@@ -1926,8 +1926,10 @@ class PostgresNode(object):
1926
1926
  # should be the last one
1927
1927
  _params.append(dbname)
1928
1928
 
1929
- proc = self._os_ops.exec_command(_params, stdout=stdout, stderr=stderr, wait_exit=True, get_process=True)
1929
+ proc = self._os_ops.exec_command(_params, stdout=stdout, stderr=stderr, get_process=True)
1930
1930
 
1931
+ # [2026-06-21] It is so
1932
+ assert isinstance(proc, subprocess.Popen)
1931
1933
  return proc
1932
1934
 
1933
1935
  def pgbench_with_wait(self,
@@ -99,7 +99,7 @@ class NodeApp:
99
99
  port=port,
100
100
  bin_dir=bin_dir,
101
101
  os_ops=self._os_ops,
102
- port_manager=port_manager
102
+ port_manager=port_manager,
103
103
  )
104
104
 
105
105
  try:
@@ -150,7 +150,10 @@ class NodeApp:
150
150
 
151
151
  node.init(
152
152
  initdb_params=final_initdb_params,
153
- allow_streaming=set_replication
153
+ # params for node.default_conf
154
+ fsync=False,
155
+ allow_streaming=set_replication,
156
+ log_statement="none",
154
157
  )
155
158
 
156
159
  # set major version
@@ -164,11 +167,9 @@ class NodeApp:
164
167
  options = {
165
168
  'max_connections': 100,
166
169
  'shared_buffers': '10MB',
167
- 'fsync': 'off',
168
170
  'wal_level': 'logical',
169
171
  'hot_standby': 'off',
170
172
  'log_line_prefix': '%t [%p]: [%l-1] ',
171
- 'log_statement': 'none',
172
173
  'log_duration': 'on',
173
174
  'log_min_duration_statement': 0,
174
175
  'log_connections': 'on',
@@ -101,14 +101,21 @@ def execute_utility2(
101
101
  assert type(ignore_errors) is bool
102
102
  assert exec_env is None or type(exec_env) is dict
103
103
 
104
- exit_status, out, error = os_ops.exec_command(
104
+ exec_r = os_ops.exec_command(
105
105
  args,
106
106
  verbose=True,
107
107
  ignore_errors=ignore_errors,
108
108
  encoding=OsHelpers.GetDefaultEncoding(),
109
- exec_env=exec_env)
109
+ exec_env=exec_env,
110
+ )
110
111
 
111
- out = '' if not out else out
112
+ assert type(exec_r) is tuple
113
+ assert len(exec_r) == 3
114
+
115
+ exit_status, out, _ = exec_r
116
+
117
+ assert type(exit_status) is int
118
+ assert type(out) is str
112
119
 
113
120
  # write new log entry if possible
114
121
  if logfile:
@@ -122,9 +129,9 @@ def execute_utility2(
122
129
  raise ExecUtilException(
123
130
  "Problem with writing to logfile `{}` during run command `{}`".format(logfile, args))
124
131
  if verbose:
125
- return exit_status, out, error
126
- else:
127
- return out
132
+ return exec_r
133
+
134
+ return out
128
135
 
129
136
 
130
137
  def get_bin_path(filename):
@@ -211,6 +218,7 @@ def get_pg_config2(os_ops: OsOperations, pg_config_path):
211
218
  def cache_pg_config_data(cmd):
212
219
  # execute pg_config and get the output
213
220
  out = os_ops.exec_command(cmd, encoding='utf-8')
221
+ assert type(out) is str
214
222
 
215
223
  data = {}
216
224
  for line in out.splitlines():
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: testgres
3
- Version: 1.14.1
3
+ Version: 1.14.3
4
4
  Summary: Testing utility for PostgreSQL and its extensions
5
5
  Author-email: Postgres Professional <testgres@postgrespro.ru>
6
6
  License: PostgreSQL
@@ -27,7 +27,7 @@ Requires-Dist: port-for>=0.4
27
27
  Requires-Dist: six>=1.9.0
28
28
  Requires-Dist: psutil
29
29
  Requires-Dist: packaging
30
- Requires-Dist: testgres.os_ops<3.0.0,>=2.3.0
30
+ Requires-Dist: testgres.os_ops<3.0.0,>=2.4.0
31
31
  Dynamic: license-file
32
32
 
33
33
  [![CI Status](https://img.shields.io/github/actions/workflow/status/postgrespro/testgres/.github/workflows/ci.yml?label=CI)](https://github.com/postgrespro/testgres/actions/workflows/ci.yml)
@@ -3,4 +3,4 @@ port-for>=0.4
3
3
  six>=1.9.0
4
4
  psutil
5
5
  packaging
6
- testgres.os_ops<3.0.0,>=2.3.0
6
+ testgres.os_ops<3.0.0,>=2.4.0
@@ -74,7 +74,7 @@ class TestOsOpsCommon:
74
74
  cmd = ["sh", "-c", "python3 --version"]
75
75
 
76
76
  response = os_ops.exec_command(cmd)
77
-
77
+ assert type(response) is bytes
78
78
  assert b'Python 3.' in response
79
79
 
80
80
  def test_exec_command_failure(self, os_ops: OsOperations):
@@ -273,7 +273,9 @@ class TestOsOpsCommon:
273
273
  RunConditions.skip_if_windows()
274
274
 
275
275
  cmd = "pwd"
276
- pwd = os_ops.exec_command(cmd, wait_exit=True, encoding='utf-8').strip()
276
+ stdout = os_ops.exec_command(cmd, encoding='utf-8')
277
+ assert type(stdout) is str
278
+ pwd = stdout.strip()
277
279
 
278
280
  path = "{}/test_dir".format(pwd)
279
281
 
@@ -898,7 +900,7 @@ class TestOsOpsCommon:
898
900
  if ok_count == 0:
899
901
  raise RuntimeError("No one free port was found.")
900
902
 
901
- def test_get_tmpdir(self, os_ops: OsOperations):
903
+ def test_get_tempdir(self, os_ops: OsOperations):
902
904
  assert isinstance(os_ops, OsOperations)
903
905
 
904
906
  dir = os_ops.get_tempdir()
@@ -922,7 +924,7 @@ class TestOsOpsCommon:
922
924
  assert not os_ops.path_exists(file_path)
923
925
  assert not os.path.exists(file_path)
924
926
 
925
- def test_get_tmpdir__compare_with_py_info(self, os_ops: OsOperations):
927
+ def test_get_tempdir__compare_with_py_info(self, os_ops: OsOperations):
926
928
  assert isinstance(os_ops, OsOperations)
927
929
 
928
930
  actual_dir = os_ops.get_tempdir()
@@ -51,6 +51,7 @@ import subprocess
51
51
  import typing
52
52
  import types
53
53
  import psutil
54
+ import testgres.postgres_configuration as testgres_pgconf
54
55
 
55
56
  from packaging.version import Version
56
57
 
@@ -95,7 +96,7 @@ class TestTestgresCommon:
95
96
  # Author: Mark G.
96
97
  assert v.major == 1
97
98
  assert v.minor == 14
98
- assert v.micro == 1
99
+ assert v.micro == 3
99
100
 
100
101
  assert str(v) == testgres_version
101
102
  return
@@ -2760,6 +2761,56 @@ where c.relname=%s;"""
2760
2761
  node_svc.os_ops.rmdirs(tmp_dir)
2761
2762
  return
2762
2763
 
2764
+ def test_node_app__make_empty_and_pgconf(self, node_svc: PostgresNodeService):
2765
+ assert type(node_svc) is PostgresNodeService
2766
+
2767
+ assert type(node_svc) is PostgresNodeService
2768
+
2769
+ assert isinstance(node_svc.os_ops, OsOperations)
2770
+ assert node_svc.port_manager is not None
2771
+ assert isinstance(node_svc.port_manager, PortManager)
2772
+
2773
+ tmp_dir = node_svc.os_ops.mkdtemp()
2774
+ assert tmp_dir is not None
2775
+ assert type(tmp_dir) is str
2776
+ logging.info("temp directory is [{}]".format(tmp_dir))
2777
+
2778
+ # -----------
2779
+ node_app = NodeApp(
2780
+ test_path=tmp_dir,
2781
+ os_ops=node_svc.os_ops,
2782
+ port_manager=node_svc.port_manager
2783
+ )
2784
+
2785
+ # TODO: We have to use node_svc.os_ops here
2786
+
2787
+ with node_app.make_simple("abc") as node:
2788
+ node_conf = testgres_pgconf.PostgresConfiguration(node.data_dir)
2789
+
2790
+ logging.info("Configuration is readed ...")
2791
+ testgres_pgconf.PostgresConfigurationReader.LoadConfiguration(node_conf)
2792
+
2793
+ logging.info("Configuration is checked ...")
2794
+ prop__port = node_conf.GetOptionValue("port")
2795
+ assert type(prop__port) is int
2796
+ assert prop__port == node.port
2797
+ # presets are checked
2798
+ prop__fsync = node_conf.GetOptionValue("fsync")
2799
+ assert prop__fsync == "off" or prop__fsync is False
2800
+ prop__log_statement = node_conf.GetOptionValue("log_statement")
2801
+ assert type(prop__log_statement) is str
2802
+ assert prop__log_statement == "none"
2803
+ prop__wal_level = node_conf.GetOptionValue("wal_level")
2804
+ assert type(prop__wal_level) is str
2805
+ assert prop__wal_level == "logical"
2806
+
2807
+ logging.info("Configuration is written ...")
2808
+ testgres_pgconf.PostgresConfigurationWriter.WriteConfiguration(node_conf)
2809
+
2810
+ logging.info("Node is started ...")
2811
+ node.slow_start()
2812
+ return
2813
+
2763
2814
  @staticmethod
2764
2815
  def helper__get_node(
2765
2816
  node_svc: PostgresNodeService,
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes