Dear Vaclav,

I wrote a first draft of a decorator: change_environ [0], that:
1. overwrite the environment variables,
2. execute the test and
3. restore the environment variables.

Probably I should modify the function with something like:

{{{
           try:
               func(*args, **kwargs)
           finally:
               # restore the environment variables
               for k, v in envs.items():
                   oval = original_envs[k]
                   if oval == NOT_FOUND:
                       os.environ.pop(k)
                   else:
                       os.environ[k] = oval
}}}

Otherwise if the function raise an exception the current
implementation will not restore the environment variables back to
their original value.

But I think this kind of functionalities is general enough to be
somewhere in the gunittest code.

What do you think? Any idea?

All the best.

Pietro

[0] 
https://trac.osgeo.org/grass/browser/grass/trunk/lib/python/script/testsuite/test_utils.py#L10
_______________________________________________
grass-dev mailing list
grass-dev@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/grass-dev

Reply via email to