Skip to content

Commit

Permalink
Improve tests based on review by @icemac
Browse files Browse the repository at this point in the history
  • Loading branch information
rbu committed Jun 5, 2018
1 parent 6986b46 commit 8974e42
Showing 1 changed file with 25 additions and 28 deletions.
53 changes: 25 additions & 28 deletions src/Products/SiteErrorLog/tests/testInitialization.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,67 +17,64 @@
import tempfile
import unittest

import Products
from App.config import getConfiguration, setConfiguration
from OFS.Application import Application, AppInitializer
from Zope2.Startup.options import ZopeWSGIOptions

good_cfg = """
instancehome <<INSTANCE_HOME>>
test_cfg = """
instancehome {instance_home}
<zodb_db main>
mount-point /
<mappingstorage>
name mappingstorage
</mappingstorage>
mount-point /
<mappingstorage>
name mappingstorage
</mappingstorage>
</zodb_db>
"""

original_config = None


def getApp():
from App.ZApplication import ZApplicationWrapper
DB = getConfiguration().dbtab.getDatabase('/')
return ZApplicationWrapper(DB, 'Application', Application)()


class TestInitialization(unittest.TestCase):
""" Test the application initialization """
"""Test the application initialization"""

def setUp(self):
global original_config
if original_config is None:
original_config = getConfiguration()
self.TEMPNAME = tempfile.mkdtemp()
self.original_config = getConfiguration()
self.TEMPDIR = tempfile.mkdtemp()

def tearDown(self):
import App.config
App.config.setConfiguration(original_config)
shutil.rmtree(self.TEMPNAME)
import Products
Products.__path__ = [d for d in Products.__path__
setConfiguration(self.original_config)
shutil.rmtree(self.TEMPDIR)
Products.__path__ = [d
for d in Products.__path__
if os.path.exists(d)]

def configure(self, text):
def configure(self, config):
# We have to create a directory of our own since the existence
# of the directory is checked. This handles this in a
# platform-independent way.
config_path = os.path.join(self.TEMPNAME, 'zope.conf')
config_path = os.path.join(self.TEMPDIR, 'zope.conf')
with open(config_path, 'w') as fd:
fd.write(text.replace(u"<<INSTANCE_HOME>>", self.TEMPNAME))
fd.write(config.format(instance_home=self.TEMPDIR))

options = ZopeWSGIOptions(config_path)()
config = options.configroot
self.assertEqual(config.instancehome, self.TEMPNAME)
self.assertEqual(config.instancehome, self.TEMPDIR)
setConfiguration(config)

def getOne(self):
def getInitializer(self):
app = getApp()
return AppInitializer(app)

def test_install_session_data_manager(self):
self.configure(good_cfg)
i = self.getOne()
i.install_products()
app = i.getApp()
from Products.SiteErrorLog.SiteErrorLog import SiteErrorLog
self.configure(test_cfg)
initializer = self.getInitializer()
app = initializer.getApp()
initializer.install_products()
self.assertIsInstance(app.error_log, SiteErrorLog)
self.assertEqual(app.error_log.meta_type, 'Site Error Log')

0 comments on commit 8974e42

Please sign in to comment.