[TIP] fresh fixture on module functions
Nate Lowrie
solodex2151 at gmail.com
Mon Mar 5 09:54:22 PST 2007
On 3/5/07, Kumar McMillan <kumar.mcmillan at gmail.com> wrote:
> On 3/4/07, Titus Brown <titus at caltech.edu> wrote:
> > import ObnoxiousModule
> > ObnoxiousModule = module_wrapper(ObnoxiousModule)
> >
> > # modify ObnoxiousModule all you want, and now the global
> > # ObnoxiousModule module won't be touched, e.g.
> >
> > ObnoxiousModule.A = mock_A
> >
> > # ObnoxiousModule.A is now module-local.
>
> I think the problem with this is that the use case for accessing a
> module that you need to mock *only* in your test itself is limited.
> Most of the time the module attribute I need to mock has to be global
> for it to do what I want. Thus, enter the fairly lame idiom of:
>
> _saved_A = ObnoxiousModule.A
> ObnoxiousModule.A - mocked_A
> try:
> test_stuff()
> finally:
> ObnoxiousModule.A = _saved_A
>
> I bet there are some mock libraries out there that simplify this
> approach but I use mocks so rarely that I haven't bothered to dig in.
I was thinking about possibly doing it this way. As far as I know the
mock libraries only deal with instantiated objects.
You could take the automatic approach and create a module that defines
saveModule and restoreModule functionality.
Titus, I think that this approach will be easier to implement than the
getattr or copy functionality we talked about. I will see about doing
this...
Thanks Kumar
>
> _______________________________________________
> testing-in-python mailing list
> testing-in-python at lists.idyll.org
> http://lists.idyll.org/listinfo/testing-in-python
>
More information about the testing-in-python
mailing list