class EnvironmentAttributesTestCase(unittest.TestCase): """Tests for attributes which don't require a real environment on disk, and therefore can be executed against an `EnvironmentStub` object (faster execution). """ def setUp(self): self.env = EnvironmentStub() self.env.config.set('trac', 'base_url', 'http://trac.edgewall.org/some/path') def test_is_component_enabled(self): self.assertFalse(EnvironmentStub.required) self.assertIsNone(self.env.is_component_enabled(EnvironmentStub)) def test_db_exc(self): db_exc = self.env.db_exc self.assertTrue(hasattr(db_exc, 'IntegrityError')) self.assertIs(db_exc, self.env.db_exc) def test_abs_href(self): abs_href = self.env.abs_href self.assertEqual('http://trac.edgewall.org/some/path', abs_href()) self.assertIs(abs_href, self.env.abs_href) def test_href(self): href = self.env.href self.assertEqual('/some/path', href()) self.assertIs(href, self.env.href) def test_log_file_path_is_relative_path(self): log_file_path = self.env.log_file_path self.assertEqual(os.path.join(self.env.path, 'log', 'trac.log'), log_file_path) self.assertIs(log_file_path, self.env.log_file_path) def test_log_file_path_is_absolute_path(self): log_file = os.path.join(self.env.path, 'trac.log') self.env.config.set('logging', 'log_file', log_file) self.assertEqual(log_file, self.env.log_file_path) def test_log_level_not_case_sensitive(self): """[logging] log_level is not case-sensitive.""" self.env.config.set('logging', 'log_level', 'warning') self.env.config.save() self.assertEqual('warning', self.env.config.get('logging', 'log_level')) self.assertEqual('WARNING', self.env.log_level) def test_log_type_not_case_sensitive(self): """[logging] log_type is not case-sensitive.""" self.env.config.set('logging', 'log_type', 'File') self.env.config.save() self.assertEqual('File', self.env.config.get('logging', 'log_type')) self.assertEqual('file', self.env.log_type)
class ThemeTestCase(unittest.TestCase): def setUp(self): self.env = EnvironmentStub(enable=('trac.*', 'bhtheme.*'), default_data=True) self.bhtheme = BloodhoundTheme(self.env) def tearDown(self): self.env.reset_db() def test_templates_dirs(self): chrome = Chrome(self.env) self.assertFalse(self.env.is_component_enabled(DashboardModule)) for dir in self.bhtheme.get_templates_dirs(): self.assertIn(dir, chrome.get_all_templates_dirs())