.to_csv
и .read_csv
принимают как буферы, так и строковые пути. В документах по этим методам предлагается использовать io.StringIO в качестве альтернативы открытому файлу или пути к файлу.
В модульном тесте используйте io.StringIO объекты дляперейти к функции во время теста.Примерно так для простого теста функции
import unittest, io
class TestOne(unittest.TestCase):
def setUp(self):
s = '''3,4\n2,1\n5,6'''
self.fakecsv = io.StringIO(s)
self.fakefile = io.StringIO()
self.result = '''6,20\n4,5\n10,30\n'''
def test_create(self):
create_csv(self.fakecsv, self.fakefile)
self.fakefile.seek(0)
self.assertEqual(self.fakefile.read(), self.result)