From bf960d6a15feffff26dff782a876cb0b6e7dd935 Mon Sep 17 00:00:00 2001 From: Stephen Gallagher Date: Fri, 3 Aug 2012 12:12:17 -0400 Subject: SSSDConfig: Fix nonfunctional SSSDDomain.remove_provider() Also adds a regression test to the unit test suite. https://fedorahosted.org/sssd/ticket/1388 --- src/config/SSSDConfig/__init__.py.in | 5 +++++ src/config/SSSDConfigTest.py | 5 +++++ 2 files changed, 10 insertions(+) (limited to 'src') diff --git a/src/config/SSSDConfig/__init__.py.in b/src/config/SSSDConfig/__init__.py.in index 32613543..b90a8e10 100644 --- a/src/config/SSSDConfig/__init__.py.in +++ b/src/config/SSSDConfig/__init__.py.in @@ -1254,6 +1254,11 @@ class SSSDDomain(SSSDConfigObject): if self.options.has_key(option): del self.options[option] + # Remove this provider from the option list + option = '%s_provider' % provider_type + if self.options.has_key(option): + del self.options[option] + self.providers.remove((provider, provider_type)) class SSSDConfig(SSSDChangeConf): diff --git a/src/config/SSSDConfigTest.py b/src/config/SSSDConfigTest.py index eefbe786..b03223f4 100755 --- a/src/config/SSSDConfigTest.py +++ b/src/config/SSSDConfigTest.py @@ -957,6 +957,7 @@ class SSSDConfigTestSSSDDomain(unittest.TestCase): # Remove the local ID provider and add an LDAP one # LDAP ID providers can also use the krb5_realm domain.remove_provider('id') + self.assertFalse(domain.options.has_key('id_provider')) domain.add_provider('ldap', 'id') @@ -981,6 +982,7 @@ class SSSDConfigTestSSSDDomain(unittest.TestCase): # Remove the auth domain and verify that the options # revert to the backup_list domain.remove_provider('auth') + self.assertFalse(domain.options.has_key('auth_provider')) options = domain.list_options() self.assertTrue(type(options) == dict, @@ -1003,14 +1005,17 @@ class SSSDConfigTestSSSDDomain(unittest.TestCase): # Test removing nonexistent provider - Real domain.remove_provider('id') + self.assertFalse(domain.options.has_key('id_provider')) # Test removing nonexistent provider - Bad backend type # Should pass without complaint domain.remove_provider('id') + self.assertFalse(domain.options.has_key('id_provider')) # Test removing nonexistent provider - Bad provider type # Should pass without complaint domain.remove_provider('nosuchprovider') + self.assertFalse(domain.options.has_key('nosuchprovider_provider')) def testGetOption(self): domain = SSSDConfig.SSSDDomain('sssd', self.schema) -- cgit