Mercurial > p > roundup > code
diff test/test_admin.py @ 5817:bed579f654ee maint-1.6
issue2551029: Jinja2 template install error.
Issue where template's config.ini not getting updated.
Change do_install in admin.py to load config_ini.ini from template
before writing tracker's config.ini. This generates an updated
config file for the user on install preserving values required tomake
tracker work.
Added config_ini.ini files to jinja2 and responsive templates to set
required values (template_engine and static_files; static_files
resp.).
Documented new file in doc/tracker_templates.txt and added tests for
new admin.py code.
| author | John Rouillard <rouilj@ieee.org> |
|---|---|
| date | Tue, 04 Jun 2019 18:42:05 -0400 |
| parents | |
| children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/test_admin.py Tue Jun 04 18:42:05 2019 -0400 @@ -0,0 +1,89 @@ +# +# Copyright (C) 2007 Stefan Seefeld +# All rights reserved. +# For license terms see the file COPYING.txt. +# + +from __future__ import print_function +import unittest, os, shutil, errno, sys, difflib, cgi, re + +from roundup.admin import AdminTool + +from . import db_test_base +from .test_mysql import skip_mysql +from .test_postgresql import skip_postgresql + + +class AdminTest(object): + + backend = None + + def setUp(self): + self.dirname = '_test_admin' + + def tearDown(self): + try: + shutil.rmtree(self.dirname) + except OSError as error: + if error.errno not in (errno.ENOENT, errno.ESRCH): raise + + def testInit(self): + import sys + self.admin=AdminTool() + sys.argv=['main', '-i', '_test_admin', 'install', 'classic', self.backend] + ret = self.admin.main() + print(ret) + self.assertTrue(ret == 0) + self.assertTrue(os.path.isfile(self.dirname + "/config.ini")) + self.assertTrue(os.path.isfile(self.dirname + "/schema.py")) + + def testInitWithConfig_ini(self): + import sys + from roundup.configuration import CoreConfig + self.admin=AdminTool() + sys.argv=['main', '-i', '_test_admin', 'install', 'classic', self.backend] + # create a config_ini.ini file in classic template + templates=self.admin.listTemplates() + config_ini_content = "[mail]\n# comment\ndebug = SendMail.LOG\n" + config_ini_path = templates['classic']['path'] + '/config_ini.ini' + config_ini_file = open(config_ini_path, "w") + config_ini_file.write(config_ini_content) + config_ini_file.close() + + try: + ret = self.admin.main() + finally: + try: + # ignore file not found + os.remove(config_ini_path) + except OSError as e: # FileNotFound exception under py3 + if e.errno == 2: + pass + else: + raise + + print(ret) + self.assertTrue(ret == 0) + self.assertTrue(os.path.isfile(self.dirname + "/config.ini")) + self.assertTrue(os.path.isfile(self.dirname + "/schema.py")) + config=CoreConfig(self.dirname) + self.assertEqual(config['MAIL_DEBUG'], self.dirname + "/SendMail.LOG") + + + +class anydbmAdminTest(AdminTest, unittest.TestCase): + backend = 'anydbm' + + +@skip_mysql +class mysqlAdminTest(AdminTest, unittest.TestCase): + backend = 'mysql' + + +class sqliteAdminTest(AdminTest, unittest.TestCase): + backend = 'sqlite' + + +@skip_postgresql +class postgresqlAdminTest(AdminTest, unittest.TestCase): + backend = 'postgresql'
