Exemple #1
0
    def test_restore(self):
        config_file = tempfile.NamedTemporaryFile()
        config_path = config_file.name
        config_file.close()

        # Restore after use.
        try:
            config_file = open(config_path, 'w')
            config_file.write(content)
            config_file.close()

            config = utils_config.SectionlessConfig(config_path)
            try:
                # Change the config.
                config['f'] = 'test'
                self.assertEqual(config['f'], 'test')
                del config['e']
            finally:
                config.restore()
        finally:
            final_file = open(config_path)
            try:
                self.assertEqual(final_file.read(),
                                 content)
            finally:
                final_file.close()
            os.remove(config_path)

        # Don't restore after use.
        try:
            config_file = open(config_path, 'w')
            config_file.write(content)
            config_file.close()

            config = utils_config.SectionlessConfig(config_path)

            # Change the config.
            config['f'] = 'test'
            self.assertEqual(config['f'], 'test')
            del config['e']
        finally:
            final_file = open(config_path)
            try:
                self.assertEqual(final_file.read(),
                                 changed_content)
            finally:
                final_file.close()
            os.remove(config_path)
Exemple #2
0
    def test_sync_file(self):
        config_file = tempfile.NamedTemporaryFile()
        config_path = config_file.name
        config_file.close()

        try:
            config_file = open(config_path, 'w')
            config_file.write(content)
            config_file.close()

            config = utils_config.SectionlessConfig(config_path)
            try:
                # Change the config.
                config['f'] = 'test'
                self.assertEqual(config['f'], 'test')
                del config['e']

                # Test the change is applied to target file.
                cur_file = open(config_path)
                try:
                    self.assertEqual(cur_file.read(), changed_content)
                finally:
                    cur_file.close()
            finally:
                config.restore()
        finally:
            os.remove(config_path)
Exemple #3
0
    def test_accessers(self):
        config_file = tempfile.NamedTemporaryFile()
        config_path = config_file.name
        config_file.close()

        try:
            config_file = open(config_path, 'w')
            config_file.write(content)
            config_file.close()

            # Test 'try...finally...' usage.
            config = utils_config.SectionlessConfig(config_path)
            try:
                # Test loader.
                self.assertEqual(len(config), 5)
                self.assertEqual(config['a'], '1')
                self.assertEqual(config['b'], '[hi, there]')
                self.assertEqual(config['c'], 'hello')
                self.assertEqual(config['d'], '"hi, there"')
                self.assertEqual(config['e'], '[hi,\nthere]')

                # Test getter.
                try:
                    config['f']
                except Exception, e:
                    self.assertEqual(utils_config.ConfigNoOptionError,
                                     e.__class__)
                    self.assertTrue('no option' in str(e))

                # Test setter.
                config['f'] = 'test'
                self.assertEqual(config['f'], 'test')

                # Test deleter.
                # delete exist option.
                del config['f']
                # delete non-exist option.
                try:
                    del config['f']
                except Exception, e:
                    self.assertEqual(utils_config.ConfigNoOptionError,
                                     e.__class__)
                    self.assertTrue('no option' in str(e))

                # Test contain.
                self.assertTrue('a' in config)
                self.assertFalse('f' in config)
Exemple #4
0
    def test_specific_accessers(self):
        config_file = tempfile.NamedTemporaryFile()
        config_path = config_file.name
        config_file.close()

        try:
            config_file = open(config_path, 'w')
            config_file.write(content)
            config_file.close()

            config = utils_config.SectionlessConfig(config_path)
            try:
                config.set_string('a', 'Hi')
                self.assertEqual(config['a'], '"Hi"')
                self.assertEqual(config.get_string('a'), 'Hi')
                config['a'] = "'Hi'"
                self.assertEqual(config.get_string('a'), 'Hi')
                config['a'] = 'Hi'
                self.assertRaises(ValueError, config.get_string, 'a')
                config['a'] = '"Hi'
                self.assertRaises(ValueError, config.get_string, 'a')

                config.set_int('a', 15)
                self.assertEqual(config['a'], '15')
                self.assertEqual(config.get_int('a'), 15)
                config.set_int('a', -15)
                self.assertEqual(config.get_int('a'), -15)
                config.set_string('a', 'invalid')
                self.assertRaises(ValueError, config.get_float, 'a')

                config.set_float('a', 15.123)
                self.assertEqual(config['a'], '15.123')
                self.assertEqual(config.get_float('a'), 15.123)
                config.set_string('a', 'invalid')
                self.assertRaises(ValueError, config.get_float, 'a')

                config.set_boolean('a', True)
                self.assertEqual(config['a'], '1')
                self.assertTrue(config.get_boolean('a'))
                config.set_string('a', 'Yes')
                self.assertTrue(config.get_boolean('a'))
                config.set_string('a', 'ON')
                self.assertTrue(config.get_boolean('a'))
                config.set_boolean('a', False)
                self.assertEqual(config['a'], '0')
                self.assertFalse(config.get_boolean('a'))
                config.set_string('a', 'fAlSe')
                self.assertFalse(config.get_boolean('a'))
                config.set_string('a', 'off')
                self.assertFalse(config.get_boolean('a'))
                config.set_string('a', 'invalid')
                self.assertRaises(ValueError, config.get_boolean, 'a')

                config.set_list('a', [15, 'Hello'])
                self.assertEqual(config['a'], '["15", "Hello"]')
                config.set_list('a', [15, 'Hello'])
                self.assertEqual(config.get_list('a'), ["15", "Hello"])
                config['a'] = '[15, \n     "Hello"]'
                self.assertEqual(config.get_list('a'), ["15", "Hello"])
                config['a'] = '[15, "Hi, there"]'
                self.assertEqual(config.get_list('a'), ["15", "Hi, there"])
            finally:
                config.restore()
        finally:
            os.remove(config_path)
Exemple #5
0
                try:
                    del config['f']
                except Exception, e:
                    self.assertEqual(utils_config.ConfigNoOptionError,
                                     e.__class__)
                    self.assertTrue('no option' in str(e))

                # Test contain.
                self.assertTrue('a' in config)
                self.assertFalse('f' in config)

            finally:
                config.restore()

            # Test 'with' usage.
            with utils_config.SectionlessConfig(config_path) as config:
                # Test loader.
                self.assertEqual(len(config), 5)
                self.assertEqual(config['a'], '1')
                self.assertEqual(config['b'], '[hi, there]')
                self.assertEqual(config['c'], 'hello')
                self.assertEqual(config['d'], '"hi, there"')
                self.assertEqual(config['e'], '[hi,\nthere]')

                # Test getter.
                try:
                    config['f']
                except Exception, e:
                    self.assertEqual(utils_config.ConfigNoOptionError,
                                     e.__class__)
                    self.assertTrue('no option' in str(e))