[TIP] How to detect if you are running in "test mode"
Red Forks
redforks at gmail.com
Wed Aug 4 19:40:26 PDT 2010
在 2010-8-5,上午5:59, Jorge Vargas 写道:
> Hi,
>
> 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'
> else:
> 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.
> _______________________________________________
> testing-in-python mailing list
> testing-in-python at lists.idyll.org
> http://lists.idyll.org/listinfo/testing-in-python
Reflector your code, let PATH_TO_SCRIPTS to be parameter, not global var. Pass different path in your test code and runtime code.
More information about the testing-in-python
mailing list