Skip to content

Commit 649ab31

Browse files
committed
temporarily remove the intelligent mode select originally introduced in PR48 and expanded on in my follow-ups. It looks like my attempts to push it through the 'experimental' branch caused some serious regressions there and I/we need to look more thoroughly into a consistent solution across all branches. For now it's a small step backwards to ease fixing my recent breakage in 'experimental'. We'll enable additional unit tests again along the way.
git-svn-id: svn+ssh://svn.code.sf.net/p/migrid/code/trunk@6042 b75ad72c-e7d7-11dd-a971-7dbc132099af
1 parent b2497bc commit 649ab31

File tree

2 files changed

+75
-61
lines changed

2 files changed

+75
-61
lines changed

mig/shared/fileio.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ def _write_chunk(path, chunk, offset, logger=None, mode='r+b',
129129
for _ in xrange(offset - file_size):
130130
filehandle.write('\0')
131131
# logger.debug("write %r chunk of size %d at position %d" %
132-
# (path, len(chunk), filehandle.tell()))
132+
# (path, len(chunk), filehandle.tell()))
133133
filehandle.write(chunk)
134134
# logger.debug("file %r chunk written at %d" % (path, offset))
135135
return True
@@ -146,7 +146,8 @@ def write_chunk(path, chunk, offset, logger, mode='r+b'):
146146
if not logger:
147147
logger = null_logger("dummy")
148148

149-
mode = _auto_adjust_mode(chunk, mode)
149+
# TODO: enable this again once throuroughly tested and assured py2+3 safe
150+
# mode = _auto_adjust_mode(chunk, mode)
150151

151152
return _write_chunk(path, chunk, offset, logger, mode)
152153

@@ -160,7 +161,8 @@ def write_file(content, path, logger, mode='w', make_parent=True, umask=None):
160161
if umask is not None:
161162
old_umask = os.umask(umask)
162163

163-
mode = _auto_adjust_mode(content, mode)
164+
# TODO: enable this again once throuroughly tested and assured py2+3 safe
165+
#mode = _auto_adjust_mode(content, mode)
164166

165167
retval = _write_chunk(path, content, offset=0, logger=logger, mode=mode,
166168
make_parent=make_parent, create_file=False)

tests/test_mig_shared_fileio.py

Lines changed: 70 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -37,14 +37,14 @@
3737
try:
3838
import mig.shared.fileio as fileio
3939
except ImportError as ioe:
40-
print("Failed to import mig core modules: %s" % ioe.message)
40+
print("Failed to import mig core modules: %s" % ioe)
4141
exit(1)
4242

4343
# NOTE: prevent autopep8 shuffling next imports up
4444
try:
4545
from support import MigTestCase, cleanpath, temppath, testmain
4646
except ImportError as ioe:
47-
print("Failed to import mig test modules: %s" % ioe.message)
47+
print("Failed to import mig test modules: %s" % ioe)
4848
exit(1)
4949

5050

@@ -106,32 +106,35 @@ def test_store_bytes_at_offset(self):
106106
"expected a hole was left")
107107
self.assertEqual(content[3:], DUMMY_BYTES)
108108

109-
def test_store_bytes_in_text_mode(self):
110-
fileio.write_chunk(self.tmp_path, DUMMY_BYTES, 0, self.logger,
111-
mode="r+")
112-
113-
with open(self.tmp_path, 'rb') as file:
114-
content = file.read(1024)
115-
self.assertEqual(len(content), DUMMY_BYTES_LENGTH)
116-
self.assertEqual(content[:], DUMMY_BYTES)
117-
118-
def test_store_unicode(self):
119-
fileio.write_chunk(self.tmp_path, DUMMY_UNICODE, 0, self.logger,
120-
mode='r+')
121-
122-
with open(self.tmp_path, 'r') as file:
123-
content = file.read(1024)
124-
self.assertEqual(len(content), DUMMY_UNICODE_LENGTH)
125-
self.assertEqual(content[:], DUMMY_UNICODE)
126-
127-
def test_store_unicode_in_binary_mode(self):
128-
fileio.write_chunk(self.tmp_path, DUMMY_UNICODE, 0, self.logger,
129-
mode='r+b')
130-
131-
with open(self.tmp_path, 'r') as file:
132-
content = file.read(1024)
133-
self.assertEqual(len(content), DUMMY_UNICODE_LENGTH)
134-
self.assertEqual(content[:], DUMMY_UNICODE)
109+
# TODO: enable again - requires the temporarily disabled auto mode select
110+
# def test_store_bytes_in_text_mode(self):
111+
# fileio.write_chunk(self.tmp_path, DUMMY_BYTES, 0, self.logger,
112+
# mode="r+")
113+
#
114+
# with open(self.tmp_path, 'rb') as file:
115+
# content = file.read(1024)
116+
# self.assertEqual(len(content), DUMMY_BYTES_LENGTH)
117+
# self.assertEqual(content[:], DUMMY_BYTES)
118+
119+
# TODO: enable again - requires the temporarily disabled auto mode select
120+
# def test_store_unicode(self):
121+
# fileio.write_chunk(self.tmp_path, DUMMY_UNICODE, 0, self.logger,
122+
# mode='r+')
123+
#
124+
# with open(self.tmp_path, 'r') as file:
125+
# content = file.read(1024)
126+
# self.assertEqual(len(content), DUMMY_UNICODE_LENGTH)
127+
# self.assertEqual(content[:], DUMMY_UNICODE)
128+
129+
# TODO: enable again - requires the temporarily disabled auto mode select
130+
# def test_store_unicode_in_binary_mode(self):
131+
# fileio.write_chunk(self.tmp_path, DUMMY_UNICODE, 0, self.logger,
132+
# mode='r+b')
133+
#
134+
# with open(self.tmp_path, 'r') as file:
135+
# content = file.read(1024)
136+
# self.assertEqual(len(content), DUMMY_UNICODE_LENGTH)
137+
# self.assertEqual(content[:], DUMMY_UNICODE)
135138

136139

137140
class MigSharedFileio__write_file(MigTestCase):
@@ -156,50 +159,59 @@ def test_return_false_on_missing_dir(self):
156159
self.assertFalse(did_succeed)
157160

158161
def test_creates_directory(self):
159-
did_succeed = fileio.write_file(DUMMY_BYTES, self.tmp_path, self.logger)
162+
# TODO: temporarily use empty string to avoid any byte/unicode issues
163+
#did_succeed = fileio.write_file(DUMMY_BYTES, self.tmp_path, self.logger)
164+
did_succeed = fileio.write_file('', self.tmp_path, self.logger)
160165
self.assertTrue(did_succeed)
161166

162167
path_kind = self.assertPathExists(DUMMY_FILE_WRITEFILE)
163168
self.assertEqual(path_kind, "file")
164169

165170
def test_store_bytes(self):
166-
did_succeed = fileio.write_file(DUMMY_BYTES, self.tmp_path, self.logger)
167-
self.assertTrue(did_succeed)
168-
169-
with open(self.tmp_path, 'rb') as file:
170-
content = file.read(1024)
171-
self.assertEqual(len(content), DUMMY_BYTES_LENGTH)
172-
self.assertEqual(content[:], DUMMY_BYTES)
173-
174-
def test_store_bytes_in_text_mode(self):
171+
mode = 'w'
172+
# TODO: remove next once we have auto adjust mode in write helper
173+
mode = fileio._auto_adjust_mode(DUMMY_BYTES, mode)
175174
did_succeed = fileio.write_file(DUMMY_BYTES, self.tmp_path, self.logger,
176-
mode="w")
175+
mode=mode)
177176
self.assertTrue(did_succeed)
178177

179178
with open(self.tmp_path, 'rb') as file:
180179
content = file.read(1024)
181180
self.assertEqual(len(content), DUMMY_BYTES_LENGTH)
182181
self.assertEqual(content[:], DUMMY_BYTES)
183182

184-
def test_store_unicode(self):
185-
did_succeed = fileio.write_file(DUMMY_UNICODE, self.tmp_path,
186-
self.logger, mode='w')
187-
self.assertTrue(did_succeed)
188-
189-
with open(self.tmp_path, 'r') as file:
190-
content = file.read(1024)
191-
self.assertEqual(len(content), DUMMY_UNICODE_LENGTH)
192-
self.assertEqual(content[:], DUMMY_UNICODE)
193-
194-
def test_store_unicode_in_binary_mode(self):
195-
did_succeed = fileio.write_file(DUMMY_UNICODE, self.tmp_path,
196-
self.logger, mode='wb')
197-
self.assertTrue(did_succeed)
198-
199-
with open(self.tmp_path, 'r') as file:
200-
content = file.read(1024)
201-
self.assertEqual(len(content), DUMMY_UNICODE_LENGTH)
202-
self.assertEqual(content[:], DUMMY_UNICODE)
183+
# TODO: enable again - requires the temporarily disabled auto mode select
184+
# def test_store_bytes_in_text_mode(self):
185+
# did_succeed = fileio.write_file(DUMMY_BYTES, self.tmp_path, self.logger,
186+
# mode="w")
187+
# self.assertTrue(did_succeed)
188+
#
189+
# with open(self.tmp_path, 'rb') as file:
190+
# content = file.read(1024)
191+
# self.assertEqual(len(content), DUMMY_BYTES_LENGTH)
192+
# self.assertEqual(content[:], DUMMY_BYTES)
193+
194+
# TODO: enable again - requires the temporarily disabled auto mode select
195+
# def test_store_unicode(self):
196+
# did_succeed = fileio.write_file(DUMMY_UNICODE, self.tmp_path,
197+
# self.logger, mode='w')
198+
# self.assertTrue(did_succeed)
199+
#
200+
# with open(self.tmp_path, 'r') as file:
201+
# content = file.read(1024)
202+
# self.assertEqual(len(content), DUMMY_UNICODE_LENGTH)
203+
# self.assertEqual(content[:], DUMMY_UNICODE)
204+
205+
# TODO: enable again - requires the temporarily disabled auto mode select
206+
# def test_store_unicode_in_binary_mode(self):
207+
# did_succeed = fileio.write_file(DUMMY_UNICODE, self.tmp_path,
208+
# self.logger, mode='wb')
209+
# self.assertTrue(did_succeed)
210+
#
211+
# with open(self.tmp_path, 'r') as file:
212+
# content = file.read(1024)
213+
# self.assertEqual(len(content), DUMMY_UNICODE_LENGTH)
214+
# self.assertEqual(content[:], DUMMY_UNICODE)
203215

204216

205217
if __name__ == '__main__':

0 commit comments

Comments
 (0)