1010from clickhouse_driver import Client
1111
1212
13+ os .environ ['CLICKHOUSE_USER' ] = 'thedus_tests'
14+ os .environ ['CLICKHOUSE_PASSWORD' ] = 'thedus_tests'
15+
16+
1317def init_clickhouse (database : str = 'default' ) -> Client :
1418 return Client (
1519 host = 'localhost' ,
1620 port = 9000 ,
17- user = 'default' ,
18- password = '' ,
21+ user = os . environ [ 'CLICKHOUSE_USER' ] ,
22+ password = os . environ [ 'CLICKHOUSE_PASSWORD' ] ,
1923 database = database ,
2024 )
2125
@@ -84,7 +88,7 @@ def setUp(self):
8488 '' ,
8589 ),
8690 ):
87- file_path = os .path .join (self .thedus_dir , f'2025010100000 { file_name } .py' )
91+ file_path = os .path .join (self .thedus_dir , f'20250101000000_ { file_name } .py' )
8892 get_env_to_skip = f"""
8993 @classmethod
9094 def get_env_to_skip(cls) -> list:
@@ -150,32 +154,32 @@ def down(self):
150154 [
151155 'dev' ,
152156 [
153- 'upgrade to 20250101000000_create_tbl_metrics ' ,
154- 'SKIP 20250101000001_insert_into_metrics ' ,
155- 'upgrade to 20250101000002_create_tbl_events ' ,
156- 'upgrade to 20250101000003_create_tbl_logs ' ,
157+ 'upgrade to 20250101000000_0_create_tbl_metrics ' ,
158+ 'SKIP 20250101000000_1_insert_into_metrics ' ,
159+ 'upgrade to 20250101000000_2_create_tbl_events ' ,
160+ 'upgrade to 20250101000000_3_create_tbl_logs ' ,
157161 'done' ,
158162 ],
159163 [[(0 ,)], [(0 ,)], [(0 ,)]],
160- [('upgrade' , '20250101000000_create_tbl_metrics ' , 'dev' , 0 ),
161- ('upgrade' , '20250101000001_insert_into_metrics ' , 'dev' , 1 ),
162- ('upgrade' , '20250101000002_create_tbl_events ' , 'dev' , 0 ),
163- ('upgrade' , '20250101000003_create_tbl_logs ' , 'dev' , 0 )],
164+ [('upgrade' , '20250101000000_0_create_tbl_metrics ' , 'dev' , 0 ),
165+ ('upgrade' , '20250101000000_1_insert_into_metrics ' , 'dev' , 1 ),
166+ ('upgrade' , '20250101000000_2_create_tbl_events ' , 'dev' , 0 ),
167+ ('upgrade' , '20250101000000_3_create_tbl_logs ' , 'dev' , 0 )],
164168 ],
165169 [
166170 'prod' ,
167171 [
168- 'upgrade to 20250101000000_create_tbl_metrics ' ,
169- 'upgrade to 20250101000001_insert_into_metrics ' ,
170- 'upgrade to 20250101000002_create_tbl_events ' ,
171- 'upgrade to 20250101000003_create_tbl_logs ' ,
172+ 'upgrade to 20250101000000_0_create_tbl_metrics ' ,
173+ 'upgrade to 20250101000000_1_insert_into_metrics ' ,
174+ 'upgrade to 20250101000000_2_create_tbl_events ' ,
175+ 'upgrade to 20250101000000_3_create_tbl_logs ' ,
172176 'done' ,
173177 ],
174178 [[(1 ,)], [(0 ,)], [(0 ,)]],
175- [('upgrade' , '20250101000000_create_tbl_metrics ' , 'prod' , 0 ),
176- ('upgrade' , '20250101000001_insert_into_metrics ' , 'prod' , 0 ),
177- ('upgrade' , '20250101000002_create_tbl_events ' , 'prod' , 0 ),
178- ('upgrade' , '20250101000003_create_tbl_logs ' , 'prod' , 0 )],
179+ [('upgrade' , '20250101000000_0_create_tbl_metrics ' , 'prod' , 0 ),
180+ ('upgrade' , '20250101000000_1_insert_into_metrics ' , 'prod' , 0 ),
181+ ('upgrade' , '20250101000000_2_create_tbl_events ' , 'prod' , 0 ),
182+ ('upgrade' , '20250101000000_3_create_tbl_logs ' , 'prod' , 0 )],
179183 ],
180184 ])
181185 def test_upgrade_downgrade (
@@ -198,48 +202,48 @@ def test_upgrade_downgrade(
198202
199203 # 1 downgrade
200204 result = subprocess .getoutput ('thedus downgrade' )
201- self .check_thedus_output (result , ['rollback 20250101000003_create_tbl_logs ' , 'done' ])
205+ self .check_thedus_output (result , ['rollback 20250101000000_3_create_tbl_logs ' , 'done' ])
202206 self .assertEqual (
203207 [],
204208 self .clickhouse .execute (
205209 f"SELECT * FROM system.tables WHERE table = 'logs' AND database = '{ self .db_name } '"
206210 ))
207211
208212 def test_upgrade_to_revision (self ):
209- result = subprocess .getoutput ('thedus upgrade 20250101000000_create_tbl_metrics ' )
210- self .check_thedus_output (result , ['upgrade to 20250101000000_create_tbl_metrics ' , 'done' ])
213+ result = subprocess .getoutput ('thedus upgrade 20250101000000_0_create_tbl_metrics ' )
214+ self .check_thedus_output (result , ['upgrade to 20250101000000_0_create_tbl_metrics ' , 'done' ])
211215 self .check_thedus_migration_log ([
212- ('upgrade 20250101000000_create_tbl_metrics ' , '20250101000000_create_tbl_metrics ' , 'dev' , 0 ),
216+ ('upgrade 20250101000000_0_create_tbl_metrics ' , '20250101000000_0_create_tbl_metrics ' , 'dev' , 0 ),
213217 ])
214218
215219 self .assertEqual ([(0 ,)], self .clickhouse .execute ('SELECT count() FROM metrics' ))
216- result = subprocess .getoutput ('thedus upgrade 20250101000002_create_tbl_events ' )
220+ result = subprocess .getoutput ('thedus upgrade 20250101000000_2_create_tbl_events ' )
217221 self .check_thedus_output (
218222 result ,
219223 [
220- 'SKIP 20250101000001_insert_into_metrics ' ,
221- 'upgrade to 20250101000002_create_tbl_events ' ,
224+ 'SKIP 20250101000000_1_insert_into_metrics ' ,
225+ 'upgrade to 20250101000000_2_create_tbl_events ' ,
222226 'done' ,
223227 ])
224228
225229 self .check_thedus_migration_log ([
226- ('upgrade 20250101000000_create_tbl_metrics ' , '20250101000000_create_tbl_metrics ' , 'dev' , 0 ),
227- ('upgrade 20250101000002_create_tbl_events ' , '20250101000001_insert_into_metrics ' , 'dev' , 1 ),
228- ('upgrade 20250101000002_create_tbl_events ' , '20250101000002_create_tbl_events ' , 'dev' , 0 ),
230+ ('upgrade 20250101000000_0_create_tbl_metrics ' , '20250101000000_0_create_tbl_metrics ' , 'dev' , 0 ),
231+ ('upgrade 20250101000000_2_create_tbl_events ' , '20250101000000_1_insert_into_metrics ' , 'dev' , 1 ),
232+ ('upgrade 20250101000000_2_create_tbl_events ' , '20250101000000_2_create_tbl_events ' , 'dev' , 0 ),
229233 ])
230234
231235 self .assertEqual ([(0 ,)], self .clickhouse .execute ('SELECT count() FROM events' ))
232236
233237 def test_downgrade_to_revision (self ):
234238 subprocess .getoutput ('thedus upgrade' )
235- result = subprocess .getoutput ('thedus downgrade 20250101000001_insert_into_metrics ' )
239+ result = subprocess .getoutput ('thedus downgrade 20250101000000_1_insert_into_metrics ' )
236240
237241 self .check_thedus_output (
238242 result ,
239243 [
240- 'rollback 20250101000003_create_tbl_logs ' ,
241- 'rollback 20250101000002_create_tbl_events ' ,
242- 'SKIP 20250101000001_insert_into_metrics ' ,
244+ 'rollback 20250101000000_3_create_tbl_logs ' ,
245+ 'rollback 20250101000000_2_create_tbl_events ' ,
246+ 'SKIP 20250101000000_1_insert_into_metrics ' ,
243247 'done' ,
244248 ]
245249 )
@@ -253,15 +257,15 @@ def test_downgrade_to_revision(self):
253257 )
254258
255259 self .check_thedus_migration_log ([
256- ('upgrade' , '20250101000000_create_tbl_metrics ' , 'dev' , 0 ),
257- ('upgrade' , '20250101000001_insert_into_metrics ' , 'dev' , 1 ),
258- ('upgrade' , '20250101000002_create_tbl_events ' , 'dev' , 0 ),
259- ('upgrade' , '20250101000003_create_tbl_logs ' , 'dev' , 0 ),
260- ('downgrade 20250101000001_insert_into_metrics ' , '20250101000002_create_tbl_events ' , 'dev' , 0 ),
261- ('downgrade 20250101000001_insert_into_metrics ' , '20250101000001_insert_into_metrics ' , 'dev' , 0 ),
262- ('downgrade 20250101000001_insert_into_metrics ' , '20250101000000_create_tbl_metrics ' , 'dev' , 1 )])
260+ ('upgrade' , '20250101000000_0_create_tbl_metrics ' , 'dev' , 0 ),
261+ ('upgrade' , '20250101000000_1_insert_into_metrics ' , 'dev' , 1 ),
262+ ('upgrade' , '20250101000000_2_create_tbl_events ' , 'dev' , 0 ),
263+ ('upgrade' , '20250101000000_3_create_tbl_logs ' , 'dev' , 0 ),
264+ ('downgrade 20250101000000_1_insert_into_metrics ' , '20250101000000_2_create_tbl_events ' , 'dev' , 0 ),
265+ ('downgrade 20250101000000_1_insert_into_metrics ' , '20250101000000_1_insert_into_metrics ' , 'dev' , 0 ),
266+ ('downgrade 20250101000000_1_insert_into_metrics ' , '20250101000000_0_create_tbl_metrics ' , 'dev' , 1 )])
263267
264268 result = subprocess .getoutput ('thedus downgrade' )
265- self .check_thedus_output (result , ['rollback 20250101000000_create_tbl_metrics ' , 'done' ])
269+ self .check_thedus_output (result , ['rollback 20250101000000_0_create_tbl_metrics ' , 'done' ])
266270 result = subprocess .getoutput ('thedus downgrade' )
267271 self .check_thedus_output (result , ['done' ])
0 commit comments