How can I create a fake file object in Python that contains text? I\'m trying to write unit tests for a method that takes in a file object and retrieves the text via readl
Or you could implement it yourself pretty easily especially since all you need is readlines()
:
class FileSpoof:
def __init__(self,my_text):
self.my_text = my_text
def readlines(self):
return self.my_text.splitlines()
then just call it like:
somefake = FileSpoof("This is a bunch\nOf Text!")
print somefake.readlines()
That said the other answer is probably more correct.
This is exactly what StringIO/cStringIO (renamed to io.StringIO in Python 3) is for.
import io
fake_file = io.StringIO("your text goes here") # takes string as arg
fake_file.read() # you can use fake_file object to do whatever you want
import io
fake_file = io.StringIO(u"your text goes here") # takes unicode as argument
fake_file.read() # you can use fake_file object to do whatever you want
For more info check docs here