Esempio n. 1
0
    def test__import_settings(self):
        settings_loader = SettingsLoader()
        application = 'app'
        group = 'local'
        storage = Storage()
        self.assertEqual(storage.keys(), [])  # Initialized storage is empty
        settings_loader.import_settings(group, storage)
        # No config file, storage unchanged
        self.assertEqual(storage.keys(), [])

        f_text = '/tmp/settings_loader_config.txt'

        # Test defaults and section overrides
        text = \
            """
[web2py]
auth.username = admin
auth.version = '3.33'
mail.username = mailer
mail.version = '4.44'
username = jimk
version = '1.11'

[app]
auth.version = '5.55'
mail.version = '6.66'
version = '2.22'
email = [email protected]
"""
        _config_file_from_text(f_text, text)
        settings_loader.config_file = f_text
        settings_loader.application = application

        settings_loader.get_settings()
        settings_loader.import_settings('zzz', storage)
        # Group has no settings, storage unchanged
        self.assertEqual(storage.keys(), [])
        settings_loader.import_settings(group, storage)
        self.assertEqual(sorted(storage.keys()), ['email', 'username',
                         'version'])

        # Group has settings, storage changed

        self.assertEqual(storage['email'], '*****@*****.**')
        self.assertEqual(storage['username'], 'jimk')
        self.assertEqual(storage['version'], '2.22')

        os.unlink(f_text)
        return