[TIP] How to detect if you are running in "test mode"

Jorge Vargas jorge.vargas at gmail.com
Wed Aug 4 14:59:29 PDT 2010


I'm trying to decouple a package from it's deployed environment. In order to
make it testable. For this I need to change some hardcoded paths currently
defined at module level things in the form

PATH_TO_SCRIPTS = '/var/lib/..../'

in production those files must be present and the build process takes care
of that. However in development and testing I will like to have those paths
be different.

I could override those at import time but it will mean having to override
the variable on each test module.

therefore I think a better solution will be to pollute the package a little
with a flag to check this.

I'm thinking of something like

PATH_TO_SCRIPTS = '/this/value/will/never/be'

if <running in testing>:
    PATH_TO_SCRIPTS = '../some_checkout'
    PATH_TO_SCRIPTS = '/var/lib/...../'

this will be at my module.__init__.py which means everything should work
with either path specified as long as they contain some scripts.

Bonus points if someone could point out how to add a third flag
to differentiate from development and testing.

BTW this is with unittest2 although I think the solution should be valid for
all other testing tools.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.idyll.org/pipermail/testing-in-python/attachments/20100804/a8045429/attachment.htm>

More information about the testing-in-python mailing list