[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