raise errors.GenericError("%s is not a directory" % dir_name)
-def ReadFile(file_name, size=-1, oneline=False):
+def ReadFile(file_name, size=-1):
"""Reads a file.
@type size: int
@param size: Read at most size bytes (if negative, entire file)
- @type oneline: bool
- @param oneline: Whether to read only one line (newline char is not included)
@rtype: str
@return: the (possibly partial) content of the file
"""
f = open(file_name, "r")
try:
- if oneline:
- data = f.readline(size).rstrip("\r\n")
- else:
- data = f.read(size)
+ return f.read(size)
finally:
f.close()
- return data
-
def WriteFile(file_name, fn=None, data=None,
mode=None, uid=-1, gid=-1,
class TestReadFile(testutils.GanetiTestCase):
- def setUp(self):
- testutils.GanetiTestCase.setUp(self)
-
- self.tmpdir = tempfile.mkdtemp()
- self.fname = utils.PathJoin(self.tmpdir, "data1")
-
- def tearDown(self):
- testutils.GanetiTestCase.tearDown(self)
-
- shutil.rmtree(self.tmpdir)
def testReadAll(self):
data = utils.ReadFile(self._TestDataFilename("cert1.pem"))
h.update(data)
self.assertEqual(h.hexdigest(), "893772354e4e690b9efd073eed433ce7")
- def testReadOneline(self):
- data = utils.ReadFile(self._TestDataFilename("cert1.pem"),
- oneline=True)
- self.assertEqual(len(data), 27)
- self.assertEqual(data, "-----BEGIN CERTIFICATE-----")
-
- def testReadOnelineSize(self):
- dummydata = (1024 * "Hello World! ")
- self.assertFalse(set("\r\n") & set(dummydata))
-
- utils.WriteFile(self.fname, data=dummydata)
-
- data = utils.ReadFile(self.fname, oneline=True, size=555)
- self.assertEqual(len(data), 555)
- self.assertEqual(data, dummydata[:555])
- self.assertFalse(set("\r\n") & set(data))
-
- def testReadOnelineSize2(self):
- for end in ["\n", "\r\n"]:
- dummydata = (1024 * ("Hello World%s" % end))
- self.assert_(set("\r\n") & set(dummydata))
-
- utils.WriteFile(self.fname, data=dummydata)
-
- data = utils.ReadFile(self.fname, oneline=True, size=555)
- self.assertEqual(len(data), len("Hello World"))
- self.assertEqual(data, dummydata[:11])
- self.assertFalse(set("\r\n") & set(data))
-
- def testReadOnelineWhitespace(self):
- for ws in [" ", "\t", "\t\t \t", "\t "]:
- dummydata = (1024 * ("Foo bar baz %s\n" % ws))
- self.assert_(set("\r\n") & set(dummydata))
-
- utils.WriteFile(self.fname, data=dummydata)
-
- data = utils.ReadFile(self.fname, oneline=True, size=555)
- explen = len("Foo bar baz ") + len(ws)
- self.assertEqual(len(data), explen)
- self.assertEqual(data, dummydata[:explen])
- self.assertFalse(set("\r\n") & set(data))
-
def testError(self):
self.assertRaises(EnvironmentError, utils.ReadFile,
- utils.PathJoin(self.tmpdir, "does-not-exist"))
+ "/dev/null/does-not-exist")
class TestTimestampForFilename(unittest.TestCase):