[TIP] testing calls to mocked open?

Andrew Hammond andrew.george.hammond at gmail.com
Wed Sep 14 10:23:37 PDT 2011


I have the following code that I want to test:

        with open(self.file_name, 'rb') as f:
            f.seek(self.last_byte_uploaded)
            chunk = f.read(self.chunk_size)

Using Mock, I have patched open and the following tests work correctly:

        k = self.mock_open.call_args_list
        self.assertEquals(1, len(k))
        self.assertEquals(('/path/to/fake_file_name.txt', 'rb'), k[0][0])
        self.assertEquals({}, k[0][1])

However I can't figure out how to get the next segment to work. I'd
like to prove that the opened file called seek(0) and then read(1024)

# TODO: figure out how to test this
#        l = self.mock_open.return_value.method_calls
#        self.assertEquals(2, len(l))
#        self.assertEquals('seek', l[0][0])
#        self.assertEquals((0), l[0][1])
#        self.assertEquals({}, l[0][2])
#        self.assertEquals('read', l[1][0])
#        self.assertEquals((1024), l[1][1])
#        self.assertEquals({}, l[1][2])

Andrew



More information about the testing-in-python mailing list