From d4b0d1c5cd2b62baba902d6d6ca3bcb4ca3806e1 Mon Sep 17 00:00:00 2001 From: Michal Minar Date: Thu, 8 Aug 2013 12:51:05 +0200 Subject: software: fix test for SoftwareIdentityResource If the repository is enabled, expect repository to be ready. If disabled, allow both OK and Failed states. --- .../test/test_software_identity_resource.py | 32 +++++++++++++++------- 1 file changed, 22 insertions(+), 10 deletions(-) (limited to 'src/software') diff --git a/src/software/test/test_software_identity_resource.py b/src/software/test/test_software_identity_resource.py index d5efdfe..6f642d1 100755 --- a/src/software/test/test_software_identity_resource.py +++ b/src/software/test/test_software_identity_resource.py @@ -79,19 +79,24 @@ class TestSoftwareIdentityResource( self.assertEqual(inst[key], inst.path[key]) self.assertEqual(repo.repoid, inst["Name"]) self.assertIsInstance(inst["AccessContext"], pywbem.Uint16) - if inst["AccessInfo"] is not None: - self.assertIsInstance(inst["AccessInfo"], basestring) + + access_info = inst["AccessInfo"] + if access_info is not None and access_info.endswith('/'): + access_info = access_info[:-1] + if access_info is not None: + self.assertIsInstance(access_info, basestring) if repo.mirror_list: - self.assertEqual(inst["AccessInfo"], repo.mirror_list, + self.assertEqual(access_info, repo.mirror_list, "AccessInfo does not match mirror_list for repo %s" % repo.repoid) elif repo.metalink: - self.assertEqual(inst["AccessInfo"], repo.metalink, + self.assertEqual(access_info, repo.metalink, "AccessInfo does not match metalink for repo %s" % repo.repoid) - elif inst["AccessInfo"] is not None: - self.assertIn(inst["AccessInfo"], repo.base_urls, + elif access_info is not None: + self.assertIn(access_info, repo.base_urls, "AccessInfo missing in base_urls for repo %s" % repo.repoid) + self.assertIsInstance(inst["AvailableRequestedStates"], list) self.assertEqual(repo.name, inst["Caption"]) self.assertIsInstance(inst["Cost"], pywbem.Sint32) @@ -106,22 +111,29 @@ class TestSoftwareIdentityResource( else: self.assertEqual(repo.revision, inst["Generation"], "Generation does not match for repo %s" % repo.repoid) - self.assertEqual(5, inst["HealthState"]) + if repo.status: + self.assertEqual(5, inst["HealthState"]) # OK + self.assertEqual([2], inst["OperationalStatus"]) # OK + self.assertEqual(1, inst["PrimaryStatus"]) # OK + else: + # repo may not be enabled, but still it can be ready + # (which is not documented), so let's check both posibilities + self.assertIn(inst["HealthState"], [5, 20]) # OK, Major Failure + self.assertIn(inst["OperationalStatus"], [[2], [6]]) # [OK], [Error] + self.assertIn(inst["PrimaryStatus"], [1, 3]) # OK, Error self.assertIsInstance(inst["GPGCheck"], bool) self.assertEqual(200, inst["InfoFormat"]) self.assertEqual("LMI:LMI_SoftwareIdentityResource:"+repo.repoid, inst["InstanceID"]) - if repo.mirror_list is None and repo.metalink is None: + if repo.mirror_list is None: self.assertIsNone(inst["MirrorList"]) else: self.assertEqual( repo.metalink if repo.metalink else repo.mirror_list, inst["MirrorList"]) - self.assertEqual([2], inst["OperationalStatus"]) self.assertIsInstance(inst["OtherAccessContext"], basestring) #self.assertEqual(repo.pkg_count, inst["PackageCount"], #"PackageCount does not match for repo %s" % repo.repoid) - self.assertEqual(1, inst["PrimaryStatus"]) self.assertIsInstance(inst["RepoGPGCheck"], bool) self.assertEqual(2 if repo.status else 3, inst["RequestedState"]) self.assertEqual(1, inst["ResourceType"]) -- cgit