summaryrefslogtreecommitdiffstats
path: root/src/software/test/test_software_file_check.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/software/test/test_software_file_check.py')
-rwxr-xr-xsrc/software/test/test_software_file_check.py377
1 files changed, 256 insertions, 121 deletions
diff --git a/src/software/test/test_software_file_check.py b/src/software/test/test_software_file_check.py
index d44fd10..4228c18 100755
--- a/src/software/test/test_software_file_check.py
+++ b/src/software/test/test_software_file_check.py
@@ -87,20 +87,20 @@ class TestSoftwareFileCheck(common.SoftwareBaseTestCase):
objpath["SoftwareElementID"] = pkg.get_nevra(newer)
return objpath
- def assertEqualSEID(self, id1, id2):
+ def assertEqualSEID(self, id1, id2, msg=None):
"""
This is for comparison of SoftwareElementID property values.
"""
if ( not isinstance(id1, basestring)
or not isinstance(id2, basestring)):
- return common.SoftwareBaseTestCase.assertEqual(self, id1, id2)
+ return common.SoftwareBaseTestCase.assertEqual(self, id1, id2, msg)
match1 = common.RE_NEVRA.match(id1)
match2 = common.RE_NEVRA.match(id2)
if not match1 or not match2:
- return common.SoftwareBaseTestCase.assertEqual(self, id1, id2)
+ return common.SoftwareBaseTestCase.assertEqual(self, id1, id2, msg)
if any( match1.group(g) != match2.group(g)
for g in ('name', 'ver', 'rel', 'arch')):
- return common.SoftwareBaseTestCase.assertEqual(self, id1, id2)
+ return common.SoftwareBaseTestCase.assertEqual(self, id1, id2, msg)
epoch1 = match1.group('epoch')
epoch2 = match2.group('epoch')
if not epoch1:
@@ -108,10 +108,10 @@ class TestSoftwareFileCheck(common.SoftwareBaseTestCase):
if not epoch2:
epoch2 = '0'
if epoch1 != epoch2:
- return common.SoftwareBaseTestCase.assertEqual(self, id1, id2)
+ return common.SoftwareBaseTestCase.assertEqual(self, id1, id2, msg)
return True
- def assertEqual(self, op1, op2):
+ def assertEqual(self, op1, op2, msg=None):
"""
This is override for object paths, that allows some differences
(like missing epoch in SoftwareElementID).
@@ -124,10 +124,9 @@ class TestSoftwareFileCheck(common.SoftwareBaseTestCase):
or any(op1[a] != op2[a] for a in
( 'Name', 'Version', 'CheckID', 'SoftwareElementState'
, 'TargetOperatingSystem'))):
- return common.SoftwareBaseTestCase.assertEqual(self, op1, op2)
+ return common.SoftwareBaseTestCase.assertEqual(self, op1, op2, msg)
return self.assertEqualSEID(
- op1['SoftwareElementID'], op2['SoftwareElementID'])
- return True
+ op1['SoftwareElementID'], op2['SoftwareElementID'], msg)
def make_checksum_str(self, csumnum, filename):
"""
@@ -136,23 +135,31 @@ class TestSoftwareFileCheck(common.SoftwareBaseTestCase):
return RE_CHECKSUM.match(subprocess.check_output([
self.hash_num2cmd[csumnum], filename])).group(1).lower()
- def do_check_symlink(self, filepath, inst):
+ def do_check_symlink(self, pkg, filepath, inst):
"""
Assert some details about symlink.
"""
target = os.readlink(filepath)
stats = os.lstat(filepath)
- self.assertEqual(inst["FileType"], pywbem.Uint16(3))
- self.assertEqual(inst["FileUserID"], stats.st_uid)
- self.assertEqual(inst["FileGroupID"], stats.st_gid)
- self.assertEqual(inst["FileMode"], stats.st_mode)
- self.assertEqual(inst["FileSize"], stats.st_size)
- self.assertEqual(inst["LinkTarget"], target)
- self.assertEqual(inst["FileChecksum"],
- "0"*self.hash_num2length[inst["FileChecksumType"]])
- self.assertEqual(inst["LastModificationTime"],
- int(stats.st_mtime))
+ self.assertEqual(pywbem.Uint16(3), inst["FileType"],
+ "Unexpected file type of symlink for %s:%s"%(
+ pkg.name, filepath))
+ self.assertEqual(stats.st_uid, inst["FileUserID"],
+ "Unexpected uid of symlink for %s:%s"%(pkg.name, filepath))
+ self.assertEqual(stats.st_gid, inst["FileGroupID"],
+ "Unexpected gid of symlink for %s:%s"%(pkg.name, filepath))
+ self.assertEqual(stats.st_mode, inst["FileMode"],
+ "Unexpected mode of symlink for %s:%s" %(pkg.name, filepath))
+ self.assertEqual(stats.st_size, inst["FileSize"],
+ "Unexpected size of symlink for %s:%s"%(pkg.name, filepath))
+ self.assertEqual(target, inst["LinkTarget"],
+ "Unexpected size of symlink for %s:%s"%(pkg.name, filepath))
+ self.assertEqual("0"*self.hash_num2length[inst["FileChecksumType"]],
+ inst["FileChecksum"],
+ "Unexpected hash of symlink for %s:%s"%(pkg.name, filepath))
+ self.assertEqual(int(stats.st_mtime), inst["LastModificationTime"],
+ "Unexpected mtime of symlink for %s:%s"%(pkg.name, filepath))
# modify owner
prev_user = inst["FileUserID"]
@@ -160,22 +167,40 @@ class TestSoftwareFileCheck(common.SoftwareBaseTestCase):
#prev_pflags = PassedFlags(*inst["PassedFlags"])
os.lchown(filepath, stats.st_uid + 1, -1)
inst = self.conn.GetInstance(InstanceName=inst.path)
- self.assertEqual(inst["FileUserID"], inst["ExpectedFileUserID"] + 1)
- self.assertEqual(inst["FileUserID"], prev_user + 1)
- self.assertEqual(inst["FileGroupID"], stats.st_gid)
+ self.assertEqual(inst["ExpectedFileUserID"] + 1, inst["FileUserID"],
+ "Unexpected uid of modified symlink for %s:%s"%(
+ pkg.name, filepath))
+ self.assertEqual(prev_user + 1, inst["FileUserID"],
+ "Unexpected uid of modified symlink for %s:%s"%(
+ pkg.name, filepath))
+ self.assertEqual(stats.st_gid, inst["FileGroupID"],
+ "Unexpected gid of modified symlink for %s:%s"%(
+ pkg.name, filepath))
cur_pflags = PassedFlags(*inst["PassedFlags"])
#self.assertGreater(inst["LastModificationTime"], prev_mtime)
- self.assertTrue(cur_pflags.exists)
- self.assertTrue(cur_pflags.type)
- self.assertTrue(cur_pflags.size)
- self.assertTrue(cur_pflags.mode)
- self.assertTrue(cur_pflags.checksum)
- self.assertTrue(cur_pflags.dev)
- self.assertTrue(cur_pflags.ltarget)
- self.assertFalse(cur_pflags.uid)
- self.assertTrue(cur_pflags.gid)
- self.assertTrue(cur_pflags.mtime)
+ self.assertTrue(cur_pflags.exists,
+ "Symlink %s:%s should exist." %(pkg.name, filepath))
+ self.assertTrue(cur_pflags.type,
+ "File type should match for symlink %s:%s"%(pkg.name, filepath))
+ self.assertTrue(cur_pflags.size,
+ "File size should match for symlink %s:%s"%(pkg.name, filepath))
+ self.assertTrue(cur_pflags.mode,
+ "File mode should match for symlink %s:%s"%(pkg.name, filepath))
+ self.assertTrue(cur_pflags.checksum,
+ "File checksum should match for symlink %s:%s"%(
+ pkg.name, filepath))
+ self.assertTrue(cur_pflags.dev,
+ "Device number should match for symlink %s:%s"%(
+ pkg.name, filepath))
+ self.assertTrue(cur_pflags.ltarget,
+ "Link target should match for symlink %s:%s"%(pkg.name, filepath))
+ self.assertFalse(cur_pflags.uid,
+ "Uid should not match for symlink %s:%s"%(pkg.name, filepath))
+ self.assertTrue(cur_pflags.gid,
+ "Gid shoud match for symlink %s:%s"%(pkg.name, filepath))
+ self.assertTrue(cur_pflags.mtime,
+ "Mtime should match for symlink %s:%s"%(pkg.name, filepath))
# modify link_target
os.remove(filepath)
@@ -188,72 +213,116 @@ class TestSoftwareFileCheck(common.SoftwareBaseTestCase):
self.assertGreater(len(inst["LinkTarget"]),
len(inst["ExpectedLinkTarget"]))
- self.assertTrue(cur_pflags.exists)
- self.assertTrue(cur_pflags.type)
- self.assertFalse(cur_pflags.size)
- self.assertTrue(cur_pflags.mode)
- self.assertTrue(cur_pflags.checksum)
- self.assertTrue(cur_pflags.dev)
- self.assertFalse(cur_pflags.ltarget)
- self.assertTrue(cur_pflags.uid)
- self.assertTrue(cur_pflags.gid)
- self.assertTrue(cur_pflags.mtime)
-
- def do_check_directory(self, filepath, inst):
+ self.assertTrue(cur_pflags.exists,
+ "File %s:%s should exist"%(pkg.name, filepath))
+ self.assertTrue(cur_pflags.type,
+ "File type should match for symlink %s:%s"%(pkg.name, filepath))
+ self.assertFalse(cur_pflags.size,
+ "File size should not match for symlink %s:%s"%(
+ pkg.name, filepath))
+ self.assertTrue(cur_pflags.mode,
+ "File mode should match for symlink %s:%s"%(pkg.name, filepath))
+ self.assertTrue(cur_pflags.checksum,
+ "Checksum should match for symlink %s:%s"%(
+ pkg.name, filepath))
+ self.assertTrue(cur_pflags.dev,
+ "Device numbers should match for symlink %s:%s"%(
+ pkg.name, filepath))
+ self.assertFalse(cur_pflags.ltarget,
+ "Link target should not match for symlink %s:%s"%(
+ pkg.name, filepath))
+ self.assertTrue(cur_pflags.uid,
+ "File uid should match for symlink %s:%s"%(pkg.name, filepath))
+ self.assertTrue(cur_pflags.gid,
+ "File gid should match for symlink %s:%s"%(pkg.name, filepath))
+ self.assertTrue(cur_pflags.mtime,
+ "File mtime should match for symlink %s:%s"%(pkg.name, filepath))
+
+ def do_check_directory(self, pkg, filepath, inst):
"""
Assert some details about directory.
"""
stats = os.lstat(filepath)
- self.assertEqual(inst["FileType"], pywbem.Uint16(2))
- self.assertEqual(inst["FileUserID"], stats.st_uid)
- self.assertEqual(inst["FileGroupID"], stats.st_gid)
- self.assertEqual(inst["FileMode"], stats.st_mode)
- self.assertEqual(inst["FileSize"], stats.st_size)
+ self.assertEqual(pywbem.Uint16(2), inst["FileType"],
+ "Unexpected type for directory %s:%s"%(pkg.name, filepath))
+ self.assertEqual(stats.st_uid, inst["FileUserID"],
+ "Unexpected uid for directory %s:%s"%(pkg.name, filepath))
+ self.assertEqual(stats.st_gid, inst["FileGroupID"],
+ "Unexpected gid for directory %s:%s"%(pkg.name, filepath))
+ self.assertEqual(stats.st_mode, inst["FileMode"],
+ "Unexpected mode for directory %s:%s"%(pkg.name, filepath))
+ self.assertEqual(stats.st_size, inst["FileSize"],
+ "Unexpected size for directory %s:%s"%(pkg.name, filepath))
self.assertIs(inst["LinkTarget"], None)
- self.assertEqual(inst["FileChecksum"],
- "0"*self.hash_num2length[inst["FileChecksumType"]])
- self.assertEqual(inst["LastModificationTime"],
- int(stats.st_mtime))
+ self.assertEqual("0"*self.hash_num2length[inst["FileChecksumType"]],
+ inst["FileChecksum"],
+ "Unexpected checksum for directory %s:%s"%(pkg.name, filepath))
+ self.assertEqual(int(stats.st_mtime), inst["LastModificationTime"],
+ "Unexpected mtime for directory %s:%s"%(pkg.name, filepath))
- def do_check_file(self, filepath, inst):
+ def do_check_file(self, pkg, filepath, inst):
"""
Assert some details about regurar file.
"""
stats = os.lstat(filepath)
- self.assertEqual(inst["FileType"], pywbem.Uint16(1))
- self.assertEqual(inst["FileUserID"], stats.st_uid)
- self.assertEqual(inst["FileGroupID"], stats.st_gid)
- self.assertEqual(inst["FileMode"], stats.st_mode)
- self.assertEqual(inst["FileSize"], stats.st_size)
+ self.assertEqual(pywbem.Uint16(1), inst["FileType"],
+ "Unexpected file type for %s:%s"%(pkg.name, filepath))
+ self.assertEqual(stats.st_uid, inst["FileUserID"],
+ "Unexpected file uid for %s:%s"%(pkg.name, filepath))
+ self.assertEqual(stats.st_gid, inst["FileGroupID"],
+ "Unexpected gid for regular file %s:%s"%(pkg.name, filepath))
+ self.assertEqual(stats.st_mode, inst["FileMode"],
+ "Unexpected mode for reqular file %s:%s"%(pkg.name, filepath))
+ self.assertEqual(stats.st_size, inst["FileSize"],
+ "Unexpected size for reqular file %s:%s"%(pkg.name, filepath))
self.assertIs(inst["LinkTarget"], None)
csum = self.make_checksum_str(inst['FileChecksumType'], filepath)
- self.assertEqual(inst["FileChecksum"].lower(), csum)
- self.assertEqual(inst["ExpectedLastModificationTime"],
- inst["LastModificationTime"])
+ self.assertEqual(csum, inst["FileChecksum"].lower(),
+ "Unexpected checksum for reqular file %s:%s"%(pkg.name, filepath))
self.assertEqual(inst["LastModificationTime"],
- int(stats.st_mtime))
+ inst["ExpectedLastModificationTime"],
+ "Unexpected mtime for reqular file %s:%s"%(pkg.name, filepath))
+ self.assertEqual(int(stats.st_mtime), inst["LastModificationTime"],
+ "Unexpected mtime for reqular file %s:%s"%(pkg.name, filepath))
# make it longer
with open(filepath, "a+") as fobj:
fobj.write("data\n")
inst = self.conn.GetInstance(InstanceName=inst.path)
cur_pflags = PassedFlags(*inst["PassedFlags"])
- self.assertGreater(inst["FileSize"], inst["ExpectedFileSize"])
+ self.assertGreater(inst["FileSize"], inst["ExpectedFileSize"],
+ "File size should be greater, then expected for reqular file"
+ " %s:%s"%(pkg.name, filepath))
self.assertGreater(inst["LastModificationTime"],
- inst["ExpectedLastModificationTime"])
-
- self.assertTrue(cur_pflags.exists)
- self.assertTrue(cur_pflags.type)
- self.assertFalse(cur_pflags.size)
- self.assertTrue(cur_pflags.mode)
- self.assertFalse(cur_pflags.checksum)
- self.assertTrue(cur_pflags.dev)
- self.assertTrue(cur_pflags.ltarget)
- self.assertTrue(cur_pflags.uid)
- self.assertTrue(cur_pflags.gid)
- self.assertFalse(cur_pflags.mtime)
+ inst["ExpectedLastModificationTime"],
+ "Unexpected mtime for reqular file %s:%s"%(pkg.name, filepath))
+
+ self.assertTrue(cur_pflags.exists,
+ "Regular file should exist %s:%s"%(pkg.name, filepath))
+ self.assertTrue(cur_pflags.type,
+ "Type of regular file should match for %s:%s"%(pkg.name, filepath))
+ self.assertFalse(cur_pflags.size,
+ "Size should not match for regular file %s:%s"%(
+ pkg.name, filepath))
+ self.assertTrue(cur_pflags.mode,
+ "Mode should match for regular file %s:%s"%(pkg.name, filepath))
+ self.assertFalse(cur_pflags.checksum,
+ "Checksum should not match for regular file %s:%s"%(
+ pkg.name, filepath))
+ self.assertTrue(cur_pflags.dev,
+ "Device number should match for regular file %s:%s"%(
+ pkg.name, filepath))
+ self.assertTrue(cur_pflags.ltarget,
+ "Link target should match for regular file %s:%s"%(
+ pkg.name, filepath))
+ self.assertTrue(cur_pflags.uid,
+ "File uid should match for %s:%s"%(pkg.name, filepath))
+ self.assertTrue(cur_pflags.gid,
+ "File gid should match for %s:%s"%(pkg.name, filepath))
+ self.assertFalse(cur_pflags.mtime,
+ "File mtime should not match for %s:%s"%(pkg.name, filepath))
# change file type
os.remove(filepath)
@@ -262,30 +331,59 @@ class TestSoftwareFileCheck(common.SoftwareBaseTestCase):
inst["ExpectedFileGroupID"])
inst = self.conn.GetInstance(InstanceName=inst.path)
cur_pflags = PassedFlags(*inst["PassedFlags"])
- self.assertNotEqual(inst["LinkTarget"], inst["ExpectedLinkTarget"])
- self.assertNotEqual(inst["FileSize"], inst["ExpectedFileSize"])
+ self.assertNotEqual(inst["ExpectedLinkTarget"], inst["LinkTarget"],
+ "Link target should not match for %s:%s"%(pkg.name, filepath))
+ self.assertNotEqual(inst["ExpectedFileSize"], inst["FileSize"],
+ "File size should not match for %s:%s"%(pkg.name, filepath))
self.assertGreater(inst["LastModificationTime"],
- inst["ExpectedLastModificationTime"])
- self.assertNotEqual(inst["FileType"], inst["ExpectedFileType"])
- self.assertEqual(inst["FileType"], pywbem.Uint16(3))
-
- self.assertTrue(cur_pflags.exists)
- self.assertFalse(cur_pflags.type)
- self.assertFalse(cur_pflags.size)
- self.assertFalse(cur_pflags.mode)
- self.assertFalse(cur_pflags.checksum)
- self.assertTrue(cur_pflags.dev)
- self.assertFalse(cur_pflags.ltarget)
- self.assertTrue(cur_pflags.uid)
- self.assertTrue(cur_pflags.gid)
- self.assertFalse(cur_pflags.mtime)
+ inst["ExpectedLastModificationTime"],
+ "File mtime should be greater than expected for %s:%s"%(
+ pkg.name, filepath))
+ self.assertNotEqual(inst["ExpectedFileType"], inst["FileType"],
+ "File type should not match for %s:%s"%(pkg.name, filepath))
+ self.assertEqual(pywbem.Uint16(3), inst["FileType"],
+ "File type should match for %s:%s"%(pkg.name, filepath))
+
+ self.assertTrue(cur_pflags.exists,
+ "Regular file %s:%s should exist"%(pkg.name, filepath))
+ self.assertFalse(cur_pflags.type,
+ "Regular file type should not match for %s:%s"%(
+ pkg.name, filepath))
+ self.assertFalse(cur_pflags.size,
+ "Size should not match for regular file %s:%s"%(
+ pkg.name, filepath))
+ self.assertFalse(cur_pflags.mode,
+ "File mode should not match for regular file %s:%s"%(
+ pkg.name, filepath))
+ self.assertFalse(cur_pflags.checksum,
+ "Checksum should not match for regular file %s:%s"%(
+ pkg.name, filepath))
+ self.assertTrue(cur_pflags.dev,
+ "Device should match for regular file %s:%s"%(
+ pkg.name, filepath))
+ self.assertFalse(cur_pflags.ltarget,
+ "Link target should not match for regular file %s:%s"%(
+ pkg.name, filepath))
+ self.assertTrue(cur_pflags.uid,
+ "Regular file's uid should match for %s:%s"%(
+ pkg.name, filepath))
+ self.assertTrue(cur_pflags.gid,
+ "Regular file's gid should match for %s:%s"%(
+ pkg.name, filepath))
+ self.assertFalse(cur_pflags.mtime,
+ "Regular file's mtime should not match for %s:%s"%(
+ pkg.name, filepath))
# remove it
os.remove(filepath)
inst = self.conn.GetInstance(InstanceName=inst.path)
cur_pflags = PassedFlags(*inst["PassedFlags"])
- self.assertEqual(inst["LinkTarget"], inst["ExpectedLinkTarget"])
- self.assertNotEqual(inst["FileSize"], inst["ExpectedFileSize"])
+ self.assertEqual(inst["ExpectedLinkTarget"], inst["LinkTarget"],
+ "Link target does not match for regular file %s:%s"%(
+ pkg.name, filepath))
+ self.assertNotEqual(inst["ExpectedFileSize"], inst["FileSize"],
+ "File size should not match for regular file %s:%s"%(
+ pkg.name, filepath))
self.assertIsNone(inst["LastModificationTime"])
self.assertIsNone(inst["FileType"])
self.assertIsNone(inst["FileChecksum"])
@@ -293,16 +391,35 @@ class TestSoftwareFileCheck(common.SoftwareBaseTestCase):
self.assertIsNone(inst["FileUserID"])
self.assertIsNone(inst["FileGroupID"])
- self.assertFalse(cur_pflags.exists)
- self.assertFalse(cur_pflags.type)
- self.assertFalse(cur_pflags.size)
- self.assertFalse(cur_pflags.mode)
- self.assertFalse(cur_pflags.checksum)
- self.assertFalse(cur_pflags.dev)
- self.assertFalse(cur_pflags.ltarget)
- self.assertFalse(cur_pflags.uid)
- self.assertFalse(cur_pflags.gid)
- self.assertFalse(cur_pflags.mtime)
+ self.assertFalse(cur_pflags.exists,
+ "Regular file %s:%s should not exist"%(pkg.name, filepath))
+ self.assertFalse(cur_pflags.type,
+ "Regular file's type should not match for %s:%s"%(
+ pkg.name, filepath))
+ self.assertFalse(cur_pflags.size,
+ "Regular file's size should not match for %s:%s"%(
+ pkg.name, filepath))
+ self.assertFalse(cur_pflags.mode,
+ "Regular file's mode should not match for %s:%s"%(
+ pkg.name, filepath))
+ self.assertFalse(cur_pflags.checksum,
+ "Regular file's checksum should not match for %s:%s"%(
+ pkg.name, filepath))
+ self.assertFalse(cur_pflags.dev,
+ "Regular file's dev number should not match %s:%s"%(
+ pkg.name, filepath))
+ self.assertFalse(cur_pflags.ltarget,
+ "Regular file's link target should not match for %s:%s"%(
+ pkg.name, filepath))
+ self.assertFalse(cur_pflags.uid,
+ "Regular file's uid should not match for %s:%s"%(
+ pkg.name, filepath))
+ self.assertFalse(cur_pflags.gid,
+ "Regular file's guid should not match for %s:%s"%(
+ pkg.name, filepath))
+ self.assertFalse(cur_pflags.mtime,
+ "Regular file's mtime should not match for %s:%s"%(
+ pkg.name, filepath))
@common.mark_dangerous
def test_get_instance(self):
@@ -316,7 +433,9 @@ class TestSoftwareFileCheck(common.SoftwareBaseTestCase):
common.remove_pkg(pkg.name)
if not common.is_installed(pkg.name):
common.install_pkg(pkg)
- self.assertTrue(common.is_installed(pkg))
+ self.assertTrue(common.is_installed(pkg),
+ "Package %s must be installed"%pkg)
+
for filepath in files:
objpath = self.make_op(pkg, filepath)
@@ -324,27 +443,38 @@ class TestSoftwareFileCheck(common.SoftwareBaseTestCase):
InstanceName=objpath,
LocalOnly=False)
self.assertIsInstance(inst, pywbem.CIMInstance)
- self.assertEqual(inst.path, objpath)
+ self.assertEqual(objpath, inst.path,
+ msg="Object paths of instance must match for %s:%s"%(
+ pkg.name, filepath))
for key in self.KEYS:
if key.lower() == "softwareelementid":
- self.assertEqualSEID(inst[key], objpath[key])
+ self.assertEqualSEID(inst[key], objpath[key],
+ "OP keys should match for %s:%s"%(
+ pkg.name, filepath))
else:
- self.assertEqual(inst[key], objpath[key])
-
- self.assertTrue(inst["FileExists"])
- self.assertEqual(len(inst["PassedFlags"]), 10)
- self.assertTrue(all( filepath is True
- for filepath in inst["PassedFlags"]))
+ self.assertEqual(objpath[key], inst[key],
+ "OP keys should match for %s:%s"%(
+ pkg.name, filepath))
+
+ self.assertTrue(inst["FileExists"],
+ "File %s:%s must exist"%(pkg.name, filepath))
+ self.assertEqual(10, len(inst["PassedFlags"]),
+ "PassedFlags must have constant length")
+ for i, flag in enumerate(inst["PassedFlags"]):
+ self.assertTrue(flag is True,
+ "Flag \"%s\" should all match for file %s:%s"%(
+ inst["PassedFlagsDescriptions"][i], pkg.name, filepath))
for prop in ( "FileType", "FileUserID", "FileGroupID"
, "FileMode", "FileSize", "LinkTarget"
, "FileChecksum", "FileModeFlags"):
- self.assertEqual(inst["Expected"+prop], inst[prop])
+ self.assertEqual(inst["Expected"+prop], inst[prop],
+ "%s should match for %s:%s"%(prop, pkg.name, filepath))
if os.path.islink(filepath):
- self.do_check_symlink(filepath, inst)
+ self.do_check_symlink(pkg, filepath, inst)
elif os.path.isdir(filepath):
- self.do_check_directory(filepath, inst)
+ self.do_check_directory(pkg, filepath, inst)
elif os.path.isfile(filepath):
- self.do_check_file(filepath, inst)
+ self.do_check_file(pkg, filepath, inst)
@common.mark_dangerous
def test_invoke_method(self):
@@ -357,14 +487,17 @@ class TestSoftwareFileCheck(common.SoftwareBaseTestCase):
common.remove_pkg(pkg.name)
if not common.is_installed(pkg.name):
common.install_pkg(pkg)
- self.assertTrue(common.is_installed(pkg))
+ self.assertTrue(common.is_installed(pkg),
+ "Package %s must be installed"%pkg)
for filepath in files:
objpath = self.make_op(pkg, filepath)
(rval, _) = self.conn.InvokeMethod(
MethodName="Invoke",
ObjectName=objpath)
- self.assertEqual(rval, pywbem.Uint32(0))
+ self.assertEqual(pywbem.Uint32(0), rval,
+ msg="InvokeMethod should be successful for %s:%s"%(
+ pkg.name, filepath))
# modify file
if os.path.isfile(filepath):
@@ -374,7 +507,9 @@ class TestSoftwareFileCheck(common.SoftwareBaseTestCase):
(rval, _) = self.conn.InvokeMethod(
MethodName="Invoke",
ObjectName=objpath)
- self.assertEqual(rval, pywbem.Uint32(2))
+ self.assertEqual(pywbem.Uint32(2), rval,
+ "InvokeMethod should not pass for modified file %s:%s"%(
+ pkg.name, filepath))
def suite():
"""For unittest loaders."""