Graham Dumpleton wrote:
Jim Gallacher wrote ..

I'm getting a unit test failure.

FAIL: test_publisher_cache (__main__.PerRequestTestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "test.py", line 1836, in test_publisher_cache
    self.fail(
  File "/usr/lib/python2.3/unittest.py", line 270, in fail
    raise self.failureException, msg
AssertionError: The publisher cache has reloaded a published module even
though it wasn't modified !


Although it's not related to the failure I'd avoid the use of time.clock() in the test function as the behaviour is different on Windows and UNIX, which always makes me nervous. I'd prefer a simple time.time().


It isn't time.time().

I wasn't suggesting time.clock() was the problem, just that I'd prefer any function we use in the unit tests has identical behaviour on all platforms, at least to the extent that is possible.

 It is because you probably have a prefork/worker MPM.
The test as written will only reliably work for winnt MPM.

Doh! Prefork bites us in the a** yet again. :)

On UNIX boxes
the subsequent requests could be handled by a different child process.
The configuration as to how many servers to start is:

            IfModule("prefork.c",
                     StartServers("3"),
                     MaxSpareServers("1")),
            IfModule("worker.c",
                     StartServers("2"),
                     MaxClients("6"),
                     MinSpareThreads("1"),
                     MaxSpareThreads("1"),
                     ThreadsPerChild("3"),
                     MaxRequestsPerChild("0")),

Does that make sense, or did I miss something.

Yes, that makes sense. Testing it now.

Jim


Reply via email to