Revision fd6eaa09

b/test/ganeti.utils.io_unittest.py
240 240
                          "/bin/../tmp")
241 241

  
242 242

  
243
class TestWriteFile(unittest.TestCase):
243
class TestWriteFile(testutils.GanetiTestCase):
244 244
  def setUp(self):
245
    testutils.GanetiTestCase.setUp(self)
245 246
    self.tmpdir = None
246 247
    self.tfile = tempfile.NamedTemporaryFile()
247 248
    self.did_pre = False
......
249 250
    self.did_write = False
250 251

  
251 252
  def tearDown(self):
253
    testutils.GanetiTestCase.tearDown(self)
252 254
    if self.tmpdir:
253 255
      shutil.rmtree(self.tmpdir)
254 256

  
......
277 279
    self.assertRaises(errors.ProgrammerError, utils.WriteFile, self.tfile.name)
278 280
    self.assertRaises(errors.ProgrammerError, utils.WriteFile,
279 281
                      self.tfile.name, data="test", atime=0)
282
    self.assertRaises(errors.ProgrammerError, utils.WriteFile, self.tfile.name,
283
                      mode=0400, keep_perms=utils.KP_ALWAYS)
284
    self.assertRaises(errors.ProgrammerError, utils.WriteFile, self.tfile.name,
285
                      uid=0, keep_perms=utils.KP_ALWAYS)
286
    self.assertRaises(errors.ProgrammerError, utils.WriteFile, self.tfile.name,
287
                      gid=0, keep_perms=utils.KP_ALWAYS)
288
    self.assertRaises(errors.ProgrammerError, utils.WriteFile, self.tfile.name,
289
                      mode=0400, uid=0, keep_perms=utils.KP_ALWAYS)
280 290

  
281 291
  def testPreWrite(self):
282 292
    utils.WriteFile(self.tfile.name, data="", prewrite=self.markPre)
......
373 383
    self.assertTrue("test" in os.listdir(self.tmpdir))
374 384
    self.assertEqual(len(os.listdir(self.tmpdir)), 2)
375 385

  
386
  def testFileMode(self):
387
    self.tmpdir = tempfile.mkdtemp()
388
    target = utils.PathJoin(self.tmpdir, "target")
389
    self.assertRaises(OSError, utils.WriteFile, target, data="data",
390
                      keep_perms=utils.KP_ALWAYS)
391
    # All masks have only user bits set, to avoid interactions with umask
392
    utils.WriteFile(target, data="data", mode=0200)
393
    self.assertFileMode(target, 0200)
394
    utils.WriteFile(target, data="data", mode=0400,
395
                    keep_perms=utils.KP_IF_EXISTS)
396
    self.assertFileMode(target, 0200)
397
    utils.WriteFile(target, data="data", keep_perms=utils.KP_ALWAYS)
398
    self.assertFileMode(target, 0200)
399
    utils.WriteFile(target, data="data", mode=0700)
400
    self.assertFileMode(target, 0700)
401

  
402
  def testNewFileMode(self):
403
    self.tmpdir = tempfile.mkdtemp()
404
    target = utils.PathJoin(self.tmpdir, "target")
405
    utils.WriteFile(target, data="data", mode=0400,
406
                    keep_perms=utils.KP_IF_EXISTS)
407
    self.assertFileMode(target, 0400)
376 408

  
377 409
class TestFileID(testutils.GanetiTestCase):
378 410
  def testEquality(self):

Also available in: Unified diff