Metadata-Version: 1.1
Name: django-easysettings
Version: 1.1
Summary: Easy app-specific settings for Django
Home-page: http://github.com/SmileyChris/django-easysettings
Author: Chris Beaven
Author-email: smileychris@gmail.com
License: UNKNOWN
Description: ===================
        django-easysettings
        ===================
        
        Easy app-specific settings for Django.
        
        
        Installation
        ============
        
        To install, run: ``pip install django-easysettings``
        
        
        Usage
        =====
        
        Create a ``conf.py`` file within your app's directory, adding attributes for
        the default values of your app-specific settings. They will be overridden by
        any project setting that is provided.
        
        For example::
        
            from easysettings import AppSettings
        
        
            class Settings(AppSettings):
                MYAPP_WIDGETS = ('foo', 'bar')
        
        
            settings = Settings()
        
        
        Then in your app, rather than `from django.conf import settings`, use
        `from myapp.conf import settings`. For example::
        
            from myapp.conf import settings
        
        
            def dashboard(request):
                data = {}
                for widget in settings.MYAPP_WIDGETS:
                    data[widget] = render_widget(widget)
                if settings.DEBUG:
                    data['debug_mode'] = True
                # ...
        
        
        Isolating Settings when Testing
        -------------------------------
        
        You can force your app's tests to use the default project settings rather than
        any value in the project's ``settings`` configuration module.
        
        Just set ``settings.isolated = True``.
        
        For example, you could use a base test class to do this::
        
            class BaseTest(TestCase):
        
                def setUp(self):
                    """
                    Isolate all application specific settings.
                    """
                    output = super(BaseTest, self).setUp()
                    settings.isolated = True
                    return output
        
                def tearDown(self):
                    """
                    Restore settings to their original state.
                    """
                    settings.isolated = False
                    settings.revert()
                    return super(BaseTest, self).tearDown()
        
        As also shown in the example above, you can revert any changes made by calling
        ``settings.revert()``.
        
Platform: any
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Web Environment
Classifier: Framework :: Django
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
Classifier: Topic :: Software Development :: Libraries :: Python Modules
