Mercurial > bitten > bitten-test
comparison bitten/tests/upgrades.py @ 860:ac28bc3feb2a
Refuse to create log folder during database upgrade if the folder already exists. The existence of such a folder is an indication that a previous attempt to migrate the logs into files has failed and that the folder should be removed before continuing. See #462 for further discussion.
author | hodgestar |
---|---|
date | Sun, 17 Oct 2010 23:20:44 +0000 |
parents | ee95915922dd |
children |
comparison
equal
deleted
inserted
replaced
859:d9f4c8d7599c | 860:ac28bc3feb2a |
---|---|
12 | 12 |
13 import warnings | 13 import warnings |
14 warnings.filterwarnings('ignore', '^Unknown table') | 14 warnings.filterwarnings('ignore', '^Unknown table') |
15 warnings.filterwarnings('ignore', '^the sets module is deprecated') | 15 warnings.filterwarnings('ignore', '^the sets module is deprecated') |
16 | 16 |
17 from trac.core import TracError | |
17 from trac.test import EnvironmentStub | 18 from trac.test import EnvironmentStub |
18 from trac.db import Table, Column, Index, DatabaseManager | 19 from trac.db import Table, Column, Index, DatabaseManager |
19 from bitten.upgrades import update_sequence, drop_index | 20 from bitten.upgrades import update_sequence, drop_index |
20 from bitten import upgrades, main, model | 21 from bitten import upgrades, main, model |
21 | 22 |
40 self.env.path = tempfile.mkdtemp() | 41 self.env.path = tempfile.mkdtemp() |
41 logs_dir = self.env.config.get("bitten", "logs_dir", "log/bitten") | 42 logs_dir = self.env.config.get("bitten", "logs_dir", "log/bitten") |
42 if os.path.isabs(logs_dir): | 43 if os.path.isabs(logs_dir): |
43 raise ValueError("Should not have absolute logs directory for temporary test") | 44 raise ValueError("Should not have absolute logs directory for temporary test") |
44 logs_dir = os.path.join(self.env.path, logs_dir) | 45 logs_dir = os.path.join(self.env.path, logs_dir) |
45 if not os.path.isdir(logs_dir): | |
46 os.makedirs(logs_dir) | |
47 self.logs_dir = logs_dir | 46 self.logs_dir = logs_dir |
48 | 47 |
49 db = self.env.get_db_cnx() | 48 db = self.env.get_db_cnx() |
50 cursor = db.cursor() | 49 cursor = db.cursor() |
51 | 50 |
325 } | 324 } |
326 expected_deletions = [ | 325 expected_deletions = [ |
327 "4.log.level", | 326 "4.log.level", |
328 ] | 327 ] |
329 | 328 |
329 os.makedirs(self.logs_dir) | |
330 for filename, data in logfiles.items(): | 330 for filename, data in logfiles.items(): |
331 path = os.path.join(self.logs_dir, filename) | 331 path = os.path.join(self.logs_dir, filename) |
332 logfile = open(path, "w") | 332 logfile = open(path, "w") |
333 logfile.write(data) | 333 logfile.write(data) |
334 logfile.close() | 334 logfile.close() |
369 } | 369 } |
370 expected_deletions = [ | 370 expected_deletions = [ |
371 "2.log.levels", | 371 "2.log.levels", |
372 ] | 372 ] |
373 | 373 |
374 os.makedirs(self.logs_dir) | |
374 for filename, data in logfiles.items(): | 375 for filename, data in logfiles.items(): |
375 path = os.path.join(self.logs_dir, filename) | 376 path = os.path.join(self.logs_dir, filename) |
376 logfile = open(path, "w") | 377 logfile = open(path, "w") |
377 logfile.write(data) | 378 logfile.write(data) |
378 logfile.close() | 379 logfile.close() |
396 self.assertTrue(logs[0].getMessage().startswith( | 397 self.assertTrue(logs[0].getMessage().startswith( |
397 "Deleted 1 stray log levels (0 errors)")) | 398 "Deleted 1 stray log levels (0 errors)")) |
398 self.assertTrue(logs[1].getMessage().startswith( | 399 self.assertTrue(logs[1].getMessage().startswith( |
399 "Deleted stray log levels file 2.log.levels")) | 400 "Deleted stray log levels file 2.log.levels")) |
400 | 401 |
402 def test_migrate_logs_to_files_with_logs_dir(self): | |
403 os.makedirs(self.logs_dir) | |
404 self.assertRaises(TracError, upgrades.migrate_logs_to_files, | |
405 self.env, None) | |
406 | |
401 | 407 |
402 def suite(): | 408 def suite(): |
403 suite = unittest.TestSuite() | 409 suite = unittest.TestSuite() |
404 suite.addTest(unittest.makeSuite(UpgradeHelperTestCase, 'test')) | 410 suite.addTest(unittest.makeSuite(UpgradeHelperTestCase, 'test')) |
405 suite.addTest(unittest.makeSuite(UpgradeScriptsTestCase, 'test')) | 411 suite.addTest(unittest.makeSuite(UpgradeScriptsTestCase, 'test')) |