Skip to content

Commit 17b3e2b

Browse files
committed
[Issue #272] improve test coverage
1 parent dfe28b1 commit 17b3e2b

File tree

2 files changed

+154
-1
lines changed

2 files changed

+154
-1
lines changed

tests/show.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
module_name = 'show'
77

88

9-
class OptionTest(ProbackupTest, unittest.TestCase):
9+
class ShowTest(ProbackupTest, unittest.TestCase):
1010

1111
# @unittest.skip("skip")
1212
# @unittest.expectedFailure

tests/time_stamp.py

Lines changed: 153 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
import os
22
import unittest
33
from .helpers.ptrack_helpers import ProbackupTest, ProbackupException
4+
import subprocess
5+
from time import sleep
46

57

68
module_name = 'time_stamp'
@@ -72,3 +74,154 @@ def test_server_date_style(self):
7274

7375
# Clean after yourself
7476
self.del_test_dir(module_name, fname)
77+
78+
@unittest.skip("skip")
79+
# @unittest.expectedFailure
80+
def test_dst_timezone_handling(self):
81+
"""for manual testing"""
82+
fname = self.id().split('.')[3]
83+
backup_dir = os.path.join(self.tmp_path, module_name, fname, 'backup')
84+
node = self.make_simple_node(
85+
base_dir=os.path.join(module_name, fname, 'node'),
86+
initdb_params=['--data-checksums'],
87+
pg_options={'autovacuum': 'off'})
88+
89+
self.init_pb(backup_dir)
90+
self.add_instance(backup_dir, 'node', node)
91+
self.set_archiving(backup_dir, 'node', node)
92+
node.slow_start()
93+
94+
print(subprocess.Popen(
95+
['sudo', 'timedatectl', 'set-timezone', 'US/Detroit'],
96+
stdout=subprocess.PIPE,
97+
stderr=subprocess.PIPE).communicate())
98+
99+
subprocess.Popen(
100+
['sudo', 'timedatectl', 'set-ntp', 'false'],
101+
stdout=subprocess.PIPE,
102+
stderr=subprocess.PIPE).communicate()
103+
104+
subprocess.Popen(
105+
['sudo', 'timedatectl', 'set-time', '2020-05-25 12:00:00'],
106+
stdout=subprocess.PIPE,
107+
stderr=subprocess.PIPE).communicate()
108+
109+
# FULL
110+
output = self.backup_node(backup_dir, 'node', node, return_id=False)
111+
self.assertNotIn("backup ID in control file", output)
112+
113+
# move to dst
114+
subprocess.Popen(
115+
['sudo', 'timedatectl', 'set-time', '2020-10-25 12:00:00'],
116+
stdout=subprocess.PIPE,
117+
stderr=subprocess.PIPE).communicate()
118+
119+
# DELTA
120+
output = self.backup_node(
121+
backup_dir, 'node', node, backup_type='delta', return_id=False)
122+
self.assertNotIn("backup ID in control file", output)
123+
124+
subprocess.Popen(
125+
['sudo', 'timedatectl', 'set-time', '2020-12-01 12:00:00'],
126+
stdout=subprocess.PIPE,
127+
stderr=subprocess.PIPE).communicate()
128+
129+
# DELTA
130+
self.backup_node(backup_dir, 'node', node, backup_type='delta')
131+
132+
output = self.show_pb(backup_dir, as_json=False, as_text=True)
133+
self.assertNotIn("backup ID in control file", output)
134+
135+
subprocess.Popen(
136+
['sudo', 'timedatectl', 'set-ntp', 'true'],
137+
stdout=subprocess.PIPE,
138+
stderr=subprocess.PIPE).communicate()
139+
140+
sleep(10)
141+
142+
self.backup_node(backup_dir, 'node', node, backup_type='delta')
143+
144+
output = self.show_pb(backup_dir, as_json=False, as_text=True)
145+
self.assertNotIn("backup ID in control file", output)
146+
147+
subprocess.Popen(
148+
['sudo', 'timedatectl', 'set-timezone', 'US/Moscow'],
149+
stdout=subprocess.PIPE,
150+
stderr=subprocess.PIPE).communicate()
151+
152+
# Clean after yourself
153+
self.del_test_dir(module_name, fname)
154+
155+
@unittest.skip("skip")
156+
def test_dst_timezone_handling_backward_compatibilty(self):
157+
"""for manual testing"""
158+
fname = self.id().split('.')[3]
159+
backup_dir = os.path.join(self.tmp_path, module_name, fname, 'backup')
160+
node = self.make_simple_node(
161+
base_dir=os.path.join(module_name, fname, 'node'),
162+
initdb_params=['--data-checksums'],
163+
pg_options={'autovacuum': 'off'})
164+
165+
self.init_pb(backup_dir)
166+
self.add_instance(backup_dir, 'node', node)
167+
self.set_archiving(backup_dir, 'node', node)
168+
node.slow_start()
169+
170+
subprocess.Popen(
171+
['sudo', 'timedatectl', 'set-timezone', 'US/Detroit'],
172+
stdout=subprocess.PIPE,
173+
stderr=subprocess.PIPE).communicate()
174+
175+
subprocess.Popen(
176+
['sudo', 'timedatectl', 'set-ntp', 'false'],
177+
stdout=subprocess.PIPE,
178+
stderr=subprocess.PIPE).communicate()
179+
180+
subprocess.Popen(
181+
['sudo', 'timedatectl', 'set-time', '2020-05-25 12:00:00'],
182+
stdout=subprocess.PIPE,
183+
stderr=subprocess.PIPE).communicate()
184+
185+
# FULL
186+
self.backup_node(backup_dir, 'node', node, old_binary=True, return_id=False)
187+
188+
# move to dst
189+
subprocess.Popen(
190+
['sudo', 'timedatectl', 'set-time', '2020-10-25 12:00:00'],
191+
stdout=subprocess.PIPE,
192+
stderr=subprocess.PIPE).communicate()
193+
194+
# DELTA
195+
output = self.backup_node(
196+
backup_dir, 'node', node, backup_type='delta', old_binary=True, return_id=False)
197+
198+
subprocess.Popen(
199+
['sudo', 'timedatectl', 'set-time', '2020-12-01 12:00:00'],
200+
stdout=subprocess.PIPE,
201+
stderr=subprocess.PIPE).communicate()
202+
203+
# DELTA
204+
self.backup_node(backup_dir, 'node', node, backup_type='delta')
205+
206+
output = self.show_pb(backup_dir, as_json=False, as_text=True)
207+
self.assertNotIn("backup ID in control file", output)
208+
209+
subprocess.Popen(
210+
['sudo', 'timedatectl', 'set-ntp', 'true'],
211+
stdout=subprocess.PIPE,
212+
stderr=subprocess.PIPE).communicate()
213+
214+
sleep(10)
215+
216+
self.backup_node(backup_dir, 'node', node, backup_type='delta')
217+
218+
output = self.show_pb(backup_dir, as_json=False, as_text=True)
219+
self.assertNotIn("backup ID in control file", output)
220+
221+
subprocess.Popen(
222+
['sudo', 'timedatectl', 'set-timezone', 'US/Moscow'],
223+
stdout=subprocess.PIPE,
224+
stderr=subprocess.PIPE).communicate()
225+
226+
# Clean after yourself
227+
self.del_test_dir(module_name, fname)

0 commit comments

Comments
 (0)