A simple fake file implementation for Python
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.gitignore
.travis.yml
README.md
fakefile.py
test_fakefile.py

README.md

fakefile Build Status

Sometimes your code needs to write some files, and you want to test that it does this correctly. This library provides a relatively simple way to do it.

import fakefile
import unittest
import mock

def my_function():
    with open("somefile", "w") as f:
        f.write("correct output")
    with open("existing_file", "w") as f:
        return f.read()
  

class TestMyCode(unittest.TestCase):
    def test_my_function(self):
        faker = fakefile.FakeFile()
    
        faker.set_contents("existing_file", "correct input")
    
        with mock.patch('__builtin__.open', faker.open):
            result = my_function()  # No file "somefile" will be created!
                                    # No file "existing_file" will be read!
        self.assertEquals(faker.files["somefile"].file_contents,
                          "correct output")

After writing, it turns out that Google has a much more advanced version of this, known as pyfakefs.