On Mon, 2010-12-20 at 09:22 +0100, Virgil Dupras wrote:
> On 2010-12-19, at 3:38 PM, Floris Bruynooghe wrote:
> 
> > Hello
> > 
> > On 18 December 2010 14:51, Virgil Dupras <hs...@hardcoded.net> wrote:
> >> Hi there,
> >> 
> >> Monkeypatching is great and all, but some type of patching is a little bit 
> >> more complex to do, such as patching the system time and patching os.stat 
> >> for specific filenames. I have my own "homebrewed" solution for this, but 
> >> I was wondering if such solution had their place in the monkeypatch module 
> >> of pytest itself. Does it? Or should a "pytest-monkeypatch++" package be 
> >> created?
> >> 
> >> The "homebrewed" code I'm talking about is at 
> >> https://bitbucket.org/hsoft/hsutil/src/43014954c6a8/hsutil/testutil.py#cl-83
> >>  ( patch_osstat() and patch_today() ).
> > 
> > Looking at the patch_osstat() it seems to me that it just fakes
> > os.stat() for one specific path but uses the original in place
> > otherwise.  This sounds like it could be just a specialised object
> > used to patch with.  I can imagine the monkeypatch plugin to provide a
> > funcarg which provides this functionality, e.g.:
> > 
> > def test_foo(monkeypatch, monkey_osstat):
> >    monkeypatch.setattr(monkey_ossstat('/tmp/some_file'))
> >    ...
> > 
> > Though probably with better names ;-).
> > 
> > I'm not sure I understand the use case for patch_today() so won't
> > comment on that part.
> > 
> > Regards
> > Floris
> > 
> > 
> > -- 
> > Debian GNU/Linux -- The Power of Freedom
> > www.debian.org | www.gnu.org | www.kernel.org
> 
> This would kind of work, but it would become complicated to patch os.stat() 
> for two or more files, wouldn't it?
there could be a monkey_stat object that controlls the set of
files/subtrees under control


> 
> As for patch_today(), I created it because when you want to patch the date 
> for a test, you can't just patch datetime because there might be a function 
> somewhere using time.time(), so you'll have inconsistent date patching. 
> However, to patch time.time() to a datetime of your choice, you have to do 
> some arithmetics, hence the patch_today() helper.
> 
> My question is: Does such helpers have their place in the official pytest 
> package or should it be an external plugin?

a good starting place would be a external plugin to try different
approaches and stabilize a bit since py.test is supposed to be more
stable in the 2.x series.

regards Ronny

Attachment: signature.asc
Description: This is a digitally signed message part

_______________________________________________
py-dev mailing list
py-dev@codespeak.net
http://codespeak.net/mailman/listinfo/py-dev

Reply via email to