diff options
author | Stephen Gallagher <sgallagh@redhat.com> | 2009-12-09 06:51:01 -0500 |
---|---|---|
committer | Stephen Gallagher <sgallagh@redhat.com> | 2009-12-09 10:05:10 -0500 |
commit | 6c99ad10b6b9eb043995764608c0a28d76cdd9b2 (patch) | |
tree | c89f0427f4833e2307853071b0618f78a217eb61 | |
parent | a50194d27f6c38fcc147c5480b1c0f4b7309301e (diff) | |
download | sssd-6c99ad10b6b9eb043995764608c0a28d76cdd9b2.tar.gz sssd-6c99ad10b6b9eb043995764608c0a28d76cdd9b2.tar.xz sssd-6c99ad10b6b9eb043995764608c0a28d76cdd9b2.zip |
SSSDConfig API: fix deactivate_domain()
deactivate_domain() would crash if it attempted to deactivate an
already-inactive domain
-rw-r--r-- | server/config/SSSDConfig.py | 5 | ||||
-rw-r--r-- | server/config/SSSDConfigTest.py | 70 |
2 files changed, 73 insertions, 2 deletions
diff --git a/server/config/SSSDConfig.py b/server/config/SSSDConfig.py index 3a9ab4b4e..f00824d59 100644 --- a/server/config/SSSDConfig.py +++ b/server/config/SSSDConfig.py @@ -1343,8 +1343,9 @@ class SSSDConfig(SSSDChangeConf): if domain_dict.has_key(''): del domain_dict[''] - # Add a new key for the domain being activated - del domain_dict[name] + # Remove the unwanted domain from the lest + if domain_dict.has_key(name): + del domain_dict[name] # Write out the joined keys self.set('sssd','domains', ", ".join(domain_dict.keys())) diff --git a/server/config/SSSDConfigTest.py b/server/config/SSSDConfigTest.py index 973ef07a4..0d42d8a67 100644 --- a/server/config/SSSDConfigTest.py +++ b/server/config/SSSDConfigTest.py @@ -1247,6 +1247,76 @@ class SSSDConfigTestSSSDConfig(unittest.TestCase): sssdconfig = SSSDConfig.SSSDConfig("etc/sssd.api.conf", "etc/sssd.api.d") + domain_name = 'PROXY' + + # Negative test - Not initialized + self.assertRaises(SSSDConfig.NotInitializedError, + sssdconfig.activate_domain, domain_name) + + sssdconfig.import_config("testconfigs/sssd-valid.conf") + + # Positive test - Activate an inactive domain + self.assertTrue(domain_name in sssdconfig.list_domains()) + self.assertFalse(domain_name in sssdconfig.list_active_domains()) + self.assertTrue(domain_name in sssdconfig.list_inactive_domains()) + + sssdconfig.activate_domain('PROXY') + self.assertTrue(domain_name in sssdconfig.list_domains()) + self.assertTrue(domain_name in sssdconfig.list_active_domains()) + self.assertFalse(domain_name in sssdconfig.list_inactive_domains()) + + # Positive test - Activate an active domain + # This should succeed + sssdconfig.activate_domain('PROXY') + self.assertTrue(domain_name in sssdconfig.list_domains()) + self.assertTrue(domain_name in sssdconfig.list_active_domains()) + self.assertFalse(domain_name in sssdconfig.list_inactive_domains()) + + # Negative test - Invalid domain name + self.assertRaises(SSSDConfig.NoDomainError, + sssdconfig.activate_domain, 'nosuchdomain') + + # Negative test - Invalid domain name type + self.assertRaises(SSSDConfig.NoDomainError, + sssdconfig.activate_domain, self) + + def testDeactivateDomain(self): + sssdconfig = SSSDConfig.SSSDConfig("etc/sssd.api.conf", + "etc/sssd.api.d") + + domain_name = 'IPA' + + # Negative test - Not initialized + self.assertRaises(SSSDConfig.NotInitializedError, + sssdconfig.activate_domain, domain_name) + + sssdconfig.import_config("testconfigs/sssd-valid.conf") + + # Positive test -Deactivate an active domain + self.assertTrue(domain_name in sssdconfig.list_domains()) + self.assertTrue(domain_name in sssdconfig.list_active_domains()) + self.assertFalse(domain_name in sssdconfig.list_inactive_domains()) + + sssdconfig.deactivate_domain(domain_name) + self.assertTrue(domain_name in sssdconfig.list_domains()) + self.assertFalse(domain_name in sssdconfig.list_active_domains()) + self.assertTrue(domain_name in sssdconfig.list_inactive_domains()) + + # Positive test - Deactivate an inactive domain + # This should succeed + sssdconfig.deactivate_domain(domain_name) + self.assertTrue(domain_name in sssdconfig.list_domains()) + self.assertFalse(domain_name in sssdconfig.list_active_domains()) + self.assertTrue(domain_name in sssdconfig.list_inactive_domains()) + + # Negative test - Invalid domain name + self.assertRaises(SSSDConfig.NoDomainError, + sssdconfig.activate_domain, 'nosuchdomain') + + # Negative test - Invalid domain name type + self.assertRaises(SSSDConfig.NoDomainError, + sssdconfig.activate_domain, self) + if __name__ == "__main__": error = 0 |