diff --git a/src/bmconfigparser.py b/src/bmconfigparser.py index 0a2ec558..dc26783d 100644 --- a/src/bmconfigparser.py +++ b/src/bmconfigparser.py @@ -154,6 +154,21 @@ class BMConfigParser(SafeConfigParser): return False return True + def search_addresses(self, address, searched_text): + """Return the searched label of MyAddress""" + return [x for x in [self.get(address, 'label').lower(), + address.lower()] if searched_text in x] + + def disable_address(self, address): + """"Disabling the specific Address""" + self.set(str(address), 'enabled', 'false') + self.save() + + def enable_address(self, address): + """"Enabling the specific Address""" + self.set(address, 'enabled', 'true') + self.save() + if not getattr(BMConfigParser, 'read_file', False): BMConfigParser.read_file = BMConfigParser.readfp diff --git a/src/tests/test_config_address.py b/src/tests/test_config_address.py new file mode 100644 index 00000000..b76df7ec --- /dev/null +++ b/src/tests/test_config_address.py @@ -0,0 +1,57 @@ +""" +Various tests to Enable and Disable the identity +""" + +import unittest +from six import StringIO +from six.moves import configparser +from pybitmessage.bmconfigparser import BMConfigParser + + +address_obj = """[BM-enabled_identity] +label = Test_address_1 +enabled = true + +[BM-disabled_identity] +label = Test_address_2 +enabled = false +""" + + +# pylint: disable=protected-access +class TestAddressEnableDisable(unittest.TestCase): + """A test case for bmconfigparser""" + + def setUp(self): + self.config = BMConfigParser() + self.config.read_file(StringIO(address_obj)) + + def test_enable_enabled_identity(self): + """Test enabling already enabled identity""" + self.config.enable_address('BM-enabled_identity') + self.assertEqual(self.config.safeGet('BM-enabled_identity', 'enabled'), 'true') + + def test_enable_disabled_identity(self): + """Test enabling the Disabled identity""" + self.config.enable_address('BM-disabled_identity') + self.assertEqual(self.config.safeGet('BM-disabled_identity', 'enabled'), 'true') + + def test_enable_non_existent_identity(self): + """Test enable non-existent address""" + with self.assertRaises(configparser.NoSectionError): + self.config.enable_address('non_existent_address') + + def test_disable_disabled_identity(self): + """Test disabling already disabled identity""" + self.config.disable_address('BM-disabled_identity') + self.assertEqual(self.config.safeGet('BM-disabled_identity', 'enabled'), 'false') + + def test_disable_enabled_identity(self): + """Test Disabling the Enabled identity""" + self.config.disable_address('BM-enabled_identity') + self.assertEqual(self.config.safeGet('BM-enabled_identity', 'enabled'), 'false') + + def test_disable_non_existent_identity(self): + """Test dsiable non-existent address""" + with self.assertRaises(configparser.NoSectionError): + self.config.disable_address('non_existent_address')