def test_generated_file_function(self): """ Test GeneratedFile behavior with functions. """ dest = self.tmppath("dest") data = { "num_calls": 0, } def content(): data["num_calls"] += 1 return b"content" f = GeneratedFile(content) self.assertEqual(data["num_calls"], 0) f.copy(dest) self.assertEqual(data["num_calls"], 1) self.assertEqual(b"content", open(dest, "rb").read()) self.assertEqual(b"content", f.open().read()) self.assertEqual(b"content", f.read()) self.assertEqual(len(b"content"), f.size()) self.assertEqual(data["num_calls"], 1) f.content = b"modified" f.copy(dest) self.assertEqual(data["num_calls"], 1) self.assertEqual(b"modified", open(dest, "rb").read()) self.assertEqual(b"modified", f.open().read()) self.assertEqual(b"modified", f.read()) self.assertEqual(len(b"modified"), f.size()) f.content = content self.assertEqual(data["num_calls"], 1) self.assertEqual(b"content", f.read()) self.assertEqual(data["num_calls"], 2)
def test_generated_file_function(self): ''' Test GeneratedFile behavior with functions. ''' dest = self.tmppath('dest') data = { 'num_calls': 0, } def content(): data['num_calls'] += 1 return b'content' f = GeneratedFile(content) self.assertEqual(data['num_calls'], 0) f.copy(dest) self.assertEqual(data['num_calls'], 1) self.assertEqual(b'content', open(dest, 'rb').read()) self.assertEqual(b'content', f.open().read()) self.assertEqual(b'content', f.read()) self.assertEqual(len(b'content'), f.size()) self.assertEqual(data['num_calls'], 1) f.content = b'modified' f.copy(dest) self.assertEqual(data['num_calls'], 1) self.assertEqual(b'modified', open(dest, 'rb').read()) self.assertEqual(b'modified', f.open().read()) self.assertEqual(b'modified', f.read()) self.assertEqual(len(b'modified'), f.size()) f.content = content self.assertEqual(data['num_calls'], 1) self.assertEqual(b'content', f.read()) self.assertEqual(data['num_calls'], 2)