[TIP] virtual filesystem
Ned Batchelder
ned at nedbatchelder.com
Wed Dec 7 05:42:06 PST 2011
On 12/6/2011 9:07 AM, exarkun at twistedmatrix.com wrote:
> On 10:20 am, andrea.crotti.0 at gmail.com wrote:
>> I have a lot of code which has to manipulate and handle the
>> filesystem, creating
>> directories and so on.
>>
>> The testing now is far from complete, because even if I tried to use
>> a functional
>> paradigm, still many things are too bound to the "real world".
>> And it's really time for me to learn how to use mock objects ;)
>>
>> Before I waste too much time trying (and failing a few times), any
>> suggestions of how
>> it could be possible?
>>
>>
>> I thought for example something like:
>> class FileSystemMock(object):
>> """Create a filesystem like object
>> """
>> def __init__(self, initial_state):
>> self.state = dict(initial_state) if initial_state else {}
>>
>> # what are the various things
>>
>>
>> Where I have an initial state of the directory structure, and every
>> operation
>> will manage this dictionary of directories, raising the right errors
>> when needed.
>>
>> The problem is that I should rewrite the whole "os." if I want to do
>> something
>> general, or is there a better way?
>
> A while ago I started working on something like this. Since `os` is
> such a fundamental part of I/O in Python, I think it's necessary to
> fake it. From there you can proceed to something more general.
>
> However, it's true that `os` is a sprawling mess, and it proved to be
> more effort than I cared to invest. Hence my work is incomplete. You
> can see it here:
>
> http://twistedmatrix.com:12435/2931
>
> in case you're curious. If you wanted to pick it up, that'd be fine
> with me. ;)
>
> Jean-Paul
>
Sounds like we all have a little bit of this implemented:
https://bitbucket.org/ned/fishmonger
I'd be interested to help with this effort.
--Ned.
More information about the testing-in-python
mailing list