Description
The test_Session_Session_conf() of test/test.py doesn't override the default DBM session database name that would be used for prefork/worker MPM variants. This means that if there is already an instance of Apache running as its designated user which has already created the session database and the tests are run as a different user, the test will fail. Further, if mod_python has never previously been used and no session database exists, the test will succeed, but when someone goes to use sessions in the installed mod_python, it will fail in the case where the session database created by the test was as a different user to that which Apache runs as.
The test suite should ensure that it overrides any defaults and stores such databases in test suite document tree. It should possibly also ensure that such transient files are removed so as not to create a problem on subsequent tests.
Test might therefore be changed to:
def test_Session_Session_conf(self):
database = os.path.join(TESTHOME,"mp_sess_test.dbm")
c = VirtualHost("*",
ServerName("test_Session_Session"),
DocumentRoot(DOCUMENT_ROOT),
Directory(DOCUMENT_ROOT,
PythonOption('session_dbm "%s"' % database),
SetHandler("mod_python"),
PythonHandler("tests::Session_Session"),
PythonDebug("On")))
return str(c)