|
12 | 12 |
|
13 | 13 | DUMMY_BYTES = binascii.unhexlify('DEADBEEF') # 4 bytes
|
14 | 14 | DUMMY_BYTES_LENGTH = 4
|
| 15 | +DUMMY_UNICODE = u'UniCode123' |
| 16 | +DUMMY_UNICODE_LENGTH = len(DUMMY_UNICODE) |
15 | 17 | DUMMY_FILE_WRITECHUNK = 'fileio/write_chunk'
|
16 | 18 | DUMMY_FILE_WRITEFILE = 'fileio/write_file'
|
17 | 19 |
|
@@ -65,6 +67,33 @@ def test_store_bytes_at_offset(self):
|
65 | 67 | "expected a hole was left")
|
66 | 68 | self.assertEqual(content[3:], DUMMY_BYTES)
|
67 | 69 |
|
| 70 | + def test_store_bytes_in_text_mode(self): |
| 71 | + fileio.write_chunk(self.tmp_path, DUMMY_BYTES, 0, self.logger, |
| 72 | + mode="r+") |
| 73 | + |
| 74 | + with open(self.tmp_path, 'rb') as file: |
| 75 | + content = file.read(1024) |
| 76 | + self.assertEqual(len(content), DUMMY_BYTES_LENGTH) |
| 77 | + self.assertEqual(content[:], DUMMY_BYTES) |
| 78 | + |
| 79 | + def test_store_unicode(self): |
| 80 | + fileio.write_chunk(self.tmp_path, DUMMY_UNICODE, 0, self.logger, |
| 81 | + mode='r+') |
| 82 | + |
| 83 | + with open(self.tmp_path, 'r') as file: |
| 84 | + content = file.read(1024) |
| 85 | + self.assertEqual(len(content), DUMMY_UNICODE_LENGTH) |
| 86 | + self.assertEqual(content[:], DUMMY_UNICODE) |
| 87 | + |
| 88 | + def test_store_unicode_in_binary_mode(self): |
| 89 | + fileio.write_chunk(self.tmp_path, DUMMY_UNICODE, 0, self.logger, |
| 90 | + mode='r+b') |
| 91 | + |
| 92 | + with open(self.tmp_path, 'r') as file: |
| 93 | + content = file.read(1024) |
| 94 | + self.assertEqual(len(content), DUMMY_UNICODE_LENGTH) |
| 95 | + self.assertEqual(content[:], DUMMY_UNICODE) |
| 96 | + |
68 | 97 |
|
69 | 98 | class MigSharedFileio__write_file(MigTestCase):
|
70 | 99 | def setUp(self):
|
@@ -103,6 +132,36 @@ def test_store_bytes(self):
|
103 | 132 | self.assertEqual(len(content), DUMMY_BYTES_LENGTH)
|
104 | 133 | self.assertEqual(content[:], DUMMY_BYTES)
|
105 | 134 |
|
| 135 | + def test_store_bytes_in_text_mode(self): |
| 136 | + did_succeed = fileio.write_file(DUMMY_BYTES, self.tmp_path, self.logger, |
| 137 | + mode="w") |
| 138 | + self.assertTrue(did_succeed) |
| 139 | + |
| 140 | + with open(self.tmp_path, 'rb') as file: |
| 141 | + content = file.read(1024) |
| 142 | + self.assertEqual(len(content), DUMMY_BYTES_LENGTH) |
| 143 | + self.assertEqual(content[:], DUMMY_BYTES) |
| 144 | + |
| 145 | + def test_store_unicode(self): |
| 146 | + did_succeed = fileio.write_file(DUMMY_UNICODE, self.tmp_path, |
| 147 | + self.logger, mode='w') |
| 148 | + self.assertTrue(did_succeed) |
| 149 | + |
| 150 | + with open(self.tmp_path, 'r') as file: |
| 151 | + content = file.read(1024) |
| 152 | + self.assertEqual(len(content), DUMMY_UNICODE_LENGTH) |
| 153 | + self.assertEqual(content[:], DUMMY_UNICODE) |
| 154 | + |
| 155 | + def test_store_unicode_in_binary_mode(self): |
| 156 | + did_succeed = fileio.write_file(DUMMY_UNICODE, self.tmp_path, |
| 157 | + self.logger, mode='wb') |
| 158 | + self.assertTrue(did_succeed) |
| 159 | + |
| 160 | + with open(self.tmp_path, 'r') as file: |
| 161 | + content = file.read(1024) |
| 162 | + self.assertEqual(len(content), DUMMY_UNICODE_LENGTH) |
| 163 | + self.assertEqual(content[:], DUMMY_UNICODE) |
| 164 | + |
106 | 165 |
|
107 | 166 | if __name__ == '__main__':
|
108 | 167 | testmain()
|
0 commit comments