Revision 335c14dc

b/test/py/ganeti.utils.io_unittest-runasroot.py
25 25
import tempfile
26 26
import shutil
27 27
import errno
28
import grp
29
import pwd
30
import stat
28 31

  
29 32
from ganeti import constants
30 33
from ganeti import utils
......
92 95
                    keep_perms=utils.KP_IF_EXISTS)
93 96
    self.assertFileGid(target, tgid)
94 97

  
98
class TestCanRead(testutils.GanetiTestCase):
99
  def setUp(self):
100
    testutils.GanetiTestCase.setUp(self)
101
    self.tmpdir = tempfile.mkdtemp()
102
    self.confdUid = pwd.getpwnam(constants.CONFD_USER).pw_uid
103
    self.masterdUid = pwd.getpwnam(constants.MASTERD_USER).pw_uid
104
    self.masterdGid = grp.getgrnam(constants.MASTERD_GROUP).gr_gid
105

  
106
  def tearDown(self):
107
    testutils.GanetiTestCase.tearDown(self)
108
    if self.tmpdir:
109
      shutil.rmtree(self.tmpdir)
110

  
111
  def testUserCanRead(self):
112
    target = utils.PathJoin(self.tmpdir, "target1")
113
    f=open(target, "w")
114
    f.close()
115
    utils.EnforcePermission(target, 0400, uid=self.confdUid,
116
                            gid=self.masterdGid)
117
    self.assertTrue(utils.CanRead(constants.CONFD_USER, target))
118
    if constants.CONFD_USER != constants.MASTERD_USER:
119
      self.assertFalse(utils.CanRead(constants.MASTERD_USER, target))
120

  
121
  def testGroupCanRead(self):
122
    target = utils.PathJoin(self.tmpdir, "target2")
123
    f=open(target, "w")
124
    f.close()
125
    utils.EnforcePermission(target, 0040, uid=self.confdUid,
126
                            gid=self.masterdGid)
127
    self.assertFalse(utils.CanRead(constants.CONFD_USER, target))
128
    if constants.CONFD_USER != constants.MASTERD_USER:
129
      self.assertTrue(utils.CanRead(constants.MASTERD_USER, target))
130

  
131
    utils.EnforcePermission(target, 0040, uid=self.masterdUid+1,
132
                            gid=self.masterdGid)
133
    self.assertTrue(utils.CanRead(constants.MASTERD_USER, target))
134

  
95 135

  
96 136
if __name__ == "__main__":
97 137
  testutils.GanetiTestProgram()

Also available in: Unified diff