def enable(self): # Keep this code at the beginning to leave the settings unchanged # in case it raises an exception because INSTALLED_APPS is invalid. if 'INSTALLED_APPS' in self.options: try: apps.set_installed_apps(self.options['INSTALLED_APPS']) except Exception: apps.unset_installed_apps() raise override = UserSettingsHolder(settings._wrapped) for key, new_value in self.options.items(): setattr(override, key, new_value) self.wrapped = settings._wrapped settings._wrapped = override for key, new_value in self.options.items(): try: setting_changed.send( sender=settings._wrapped.__class__, setting=key, value=new_value, enter=True, ) except Exception as exc: self.enable_exception = exc self.disable()
def disable(self): self.settings._wrapped = self.wrapped del self.wrapped for key in self.options: new_value = getattr(self.settings, key, None) setting_changed.send(sender=self.settings._wrapped.__class__, setting=key, value=new_value, enter=False)
def enable(self): override = UserSettingsHolder(settings._wrapped) for key, new_value in self.options.items(): setattr(override, key, new_value) settings._wrapped = override for key, new_value in self.options.items(): setting_changed.send(sender=settings._wrapped.__class__, setting=key, value=new_value)
def disable(self): settings._wrapped = self.wrapped for key in self.options: new_value = getattr(settings, key, None) setting_changed.send(sender=settings._wrapped.__class__, setting=key, value=new_value)
def _pre_setup(self): """Performs any pre-test setup. This includes: * If the class has an 'available_apps' attribute, restricting the app registry to these applications, then firing post_migrate -- it must run with the correct set of applications for the test case. * If the class has a 'fixtures' attribute, installing these fixtures. """ super(TransactionTestCase, self)._pre_setup() if self.available_apps is not None: apps.set_available_apps(self.available_apps) setting_changed.send(sender=settings._wrapped.__class__, setting='INSTALLED_APPS', value=self.available_apps, enter=True) for db_name in self._databases_names(include_mirrors=False): flush.Command.emit_post_migrate(verbosity=0, interactive=False, database=db_name) try: self._fixture_setup() except Exception: if self.available_apps is not None: apps.unset_available_apps() setting_changed.send(sender=settings._wrapped.__class__, setting='INSTALLED_APPS', value=settings.INSTALLED_APPS, enter=False) raise
def _post_teardown(self): """Performs any post-test things. This includes: * Flushing the contents of the database, to leave a clean slate. If the class has an 'available_apps' attribute, post_migrate isn't fired. * Force-closing the connection, so the next test gets a clean cursor. """ try: self._fixture_teardown() super(TransactionTestCase, self)._post_teardown() # Some DB cursors include SQL statements as part of cursor # creation. If you have a test that does rollback, the effect of # these statements is lost, which can effect the operation of # tests (e.g., losing a timezone setting causing objects to be # created with the wrong time). To make sure this doesn't happen, # get a clean connection at the start of every test. for conn in connections.all(): conn.close() finally: if self.available_apps is not None: apps.unset_available_apps() setting_changed.send(sender=settings._wrapped.__class__, setting='INSTALLED_APPS', value=settings.INSTALLED_APPS, enter=False)
def _pre_setup(self): """Performs any pre-test setup. This includes: * If the class has an 'available_apps' attribute, restricting the app registry to these applications, then firing post_migrate -- it must run with the correct set of applications for the test case. * If the class has a 'fixtures' attribute, installing these fixtures. """ super(TransactionTestCase, self)._pre_setup() if self.available_apps is not None: apps.set_available_apps(self.available_apps) setting_changed.send(sender=settings._wrapped.__class__, setting='INSTALLED_APPS', value=self.available_apps, enter=True) for db_name in self._databases_names(include_mirrors=False): flush.Command.emit_post_migrate(verbosity=0, interactive=False, database=db_name) try: self._fixture_setup() except Exception: if self.available_apps is not None: apps.unset_available_apps() setting_changed.send(sender=settings._wrapped.__class__, setting='INSTALLED_APPS', value=settings.INSTALLED_APPS, enter=False) raise
def enable(self): # Keep this code at the beginning to leave the settings unchanged # in case it raises an exception because INSTALLED_APPS is invalid. if 'INSTALLED_APPS' in self.options: try: apps.set_installed_apps(self.options['INSTALLED_APPS']) except Exception: apps.unset_installed_apps() raise override = UserSettingsHolder(settings._wrapped) for key, new_value in self.options.items(): setattr(override, key, new_value) # 保存原有的配置 self.wrapped = settings._wrapped settings._wrapped = override for key, new_value in self.options.items(): setting_changed.send( sender=settings._wrapped.__class__, setting=key, value=new_value, enter=True)
def _post_teardown(self): """Performs any post-test things. This includes: * Flushing the contents of the database, to leave a clean slate. If the class has an 'available_apps' attribute, post_migrate isn't fired. * Force-closing the connection, so the next test gets a clean cursor. """ try: self._fixture_teardown() super(TransactionTestCase, self)._post_teardown() # Some DB cursors include SQL statements as part of cursor # creation. If you have a test that does rollback, the effect of # these statements is lost, which can effect the operation of # tests (e.g., losing a timezone setting causing objects to be # created with the wrong time). To make sure this doesn't happen, # get a clean connection at the start of every test. for conn in connections.all(): conn.close() finally: if self.available_apps is not None: apps.unset_available_apps() setting_changed.send(sender=settings._wrapped.__class__, setting='INSTALLED_APPS', value=settings.INSTALLED_APPS, enter=False)
def __init__(self, prefix): """ Loads our settings from django.conf.settings, applying defaults for any that are omitted. """ self.prefix = prefix from django.conf import settings if hasattr(settings, 'CONCURRENCY_SANITY_CHECK'): warnings.warn( 'Starting from concurrency 0.7 `CONCURRENCY_SANITY_CHECK` has no effect and will be removed in 0.8' ) if hasattr(Model, '_do_update'): self.defaults['PROTOCOL'] = 2 for name, default in self.defaults.items(): if name != 'SANITY_CHECK': prefix_name = (self.prefix + '_' + name).upper() value = getattr(settings, prefix_name, default) self._set_attr(prefix_name, value) setattr(settings, prefix_name, value) setting_changed.send(self.__class__, setting=prefix_name, value=value, enter=True) setting_changed.connect(self._handler)
def disable(self): if "INSTALLED_APPS" in self.options: apps.unset_installed_apps() settings._wrapped = self.wrapped del self.wrapped for key in self.options: new_value = getattr(settings, key, None) setting_changed.send(sender=settings._wrapped.__class__, setting=key, value=new_value, enter=False)
def enable(self): override = UserSettingsHolder(settings._wrapped) for key, new_value in self.options.items(): setattr(override, key, new_value) settings._wrapped = override for key, new_value in self.options.items(): setting_changed.send(sender=settings._wrapped.__class__, setting=key, value=new_value)
def disable(self): if 'INSTALLED_APPS' in self.options: apps.unset_installed_apps() settings._wrapped = self.wrapped del self.wrapped for key in self.options: new_value = getattr(settings, key, None) setting_changed.send(sender=settings._wrapped.__class__, setting=key, value=new_value, enter=False)
def setUp(self): super(DiskCacheTests, self).setUp() self.dirname = tempfile.mkdtemp() # Cache location cannot be modified through override_settings / modify_settings, # hence settings are manipulated directly here and the setting_changed signal # is triggered manually. for cache_params in settings.CACHES.values(): cache_params.update({'LOCATION': self.dirname}) setting_changed.send(self.__class__, setting='CACHES', enter=False)
def setUp(self): super(DiskCacheTests, self).setUp() self.dirname = tempfile.mkdtemp() # Cache location cannot be modified through override_settings / modify_settings, # hence settings are manipulated directly here and the setting_changed signal # is triggered manually. for cache_params in settings.CACHES.values(): cache_params.update({'LOCATION': self.dirname}) setting_changed.send(self.__class__, setting='CACHES', enter=False)
def add_test_template_dir(self, name='tests-templates'): template_dir = self.get_test_data_path(name) settings.TEMPLATES[0]['DIRS'].append(template_dir) setting_changed.send(sender=self.__class__, setting='TEMPLATES', value=settings.TEMPLATES, enter=True) def cleanup_test_template_dir(): settings.TEMPLATES[0]['DIRS'].remove(template_dir) setting_changed.send(sender=self.__class__, setting='TEMPLATES', value=settings.TEMPLATES, enter=False) self.addCleanup(cleanup_test_template_dir)
def enable(self): # Save previous value of djangocms_versioning_enabled and then set to False self._prev_versioning_enabled = self.navigation_config.djangocms_versioning_enabled self.navigation_config.djangocms_versioning_enabled = False # Make sure NAVIGATION_VERSIONING_ENABLED setting is False settings_override = UserSettingsHolder(settings._wrapped) settings_override.NAVIGATION_VERSIONING_ENABLED = False self.wrapped = settings._wrapped settings._wrapped = settings_override setting_changed.send( sender=settings._wrapped.__class__, setting='NAVIGATION_VERSIONING_ENABLED', value=False, enter=True) super().enable()
def __init__(self, prefix): """ Loads our settings from django.conf.settings, applying defaults for any that are omitted. """ self.prefix = prefix from django.conf import settings for name, default in self.defaults.items(): prefix_name = (self.prefix + '_' + name).upper() value = getattr(settings, prefix_name, default) self._set_attr(prefix_name, value) setattr(settings, prefix_name, value) setting_changed.send(self.__class__, setting=prefix_name, value=value, enter=True) setting_changed.connect(self._handler)
def __init__(self, prefix): """ Loads our settings from django.conf.settings, applying defaults for any that are omitted. """ self.prefix = prefix from django.conf import settings for name, default in self.defaults.items(): prefix_name = (self.prefix + '_' + name).upper() value = getattr(settings, prefix_name, default) self._set_attr(prefix_name, value) setattr(settings, prefix_name, value) setting_changed.send(self, setting=prefix_name, value=value) setting_changed.connect(self._handler)
def __init__(self, prefix): """ Loads our settings from django.conf.settings, applying defaults for any that are omitted. """ self.prefix = prefix from django.conf import settings for name, default in self.defaults.items(): prefix_name = (self.prefix + '_' + name).upper() value = getattr(settings, prefix_name, default) self._set_attr(prefix_name, value) setattr(settings, prefix_name, value) setting_changed.send(self.__class__, setting=prefix_name, value=value, enter=True) setting_changed.connect(self._handler) if not os.path.isdir(self.CACHE): raise ImproperlyConfigured('%s is not a valid directory. Please change `settings.GEO_CACHE` value or create it', self.CACHE)
def __init__(self, prefix): """ Loads our settings from django.conf.settings, applying defaults for any that are omitted. """ self.prefix = prefix from django.conf import settings for name, default in self.defaults.items(): prefix_name = (self.prefix + '_' + name).upper() value = getattr(settings, prefix_name, default) self._set_attr(prefix_name, value) setattr(settings, prefix_name, value) setting_changed.send(self.__class__, setting=prefix_name, value=value, enter=True) setting_changed.connect(self._handler) if not os.path.isdir(self.CACHE): raise ImproperlyConfigured( '%s is not a valid directory. Please change `settings.GEO_CACHE` value or create it', self.CACHE)
def __init__(self, prefix): """ Loads our settings from django.conf.settings, applying defaults for any that are omitted. """ self.prefix = prefix from django.conf import settings if hasattr(settings, 'CONCURRENCY_SANITY_CHECK'): warnings.warn( 'Starting from concurrency 0.7 `CONCURRENCY_SANITY_CHECK` has no effect and will be removed in 0.8') if hasattr(Model, '_do_update'): self.defaults['PROTOCOL'] = 2 for name, default in self.defaults.items(): if name != 'SANITY_CHECK': prefix_name = (self.prefix + '_' + name).upper() value = getattr(settings, prefix_name, default) self._set_attr(prefix_name, value) setattr(settings, prefix_name, value) setting_changed.send(self.__class__, setting=prefix_name, value=value, enter=True) setting_changed.connect(self._handler)
def __setattr__(self, name, value): UserSettingsHolder.__setattr__(self, name, value) setting_changed.send(sender=self.__class__, setting=name, value=value)
def cleanup_test_template_dir(): settings.TEMPLATES[0]['DIRS'].remove(template_dir) setting_changed.send(sender=self.__class__, setting='TEMPLATES', value=settings.TEMPLATES, enter=False)
import logging