aboutsummaryrefslogtreecommitdiffstats
path: root/tests/utils.py
diff options
context:
space:
mode:
authorCezar Pendarovski2014-08-25 17:28:22 +0200
committerCezar Pendarovski2014-08-25 17:28:22 +0200
commitf6cbd88618553c394b5c62761ec1506e903de267 (patch)
tree6e557dbb3ccb2ce7f864efe78658ca2a44937282 /tests/utils.py
parent4d582fd9ffcb6ec28247e95b63134c00cc131780 (diff)
parent21a0a826bba3df01e72ea8b0390e05d50cf9a854 (diff)
downloaddjango-rest-framework-f6cbd88618553c394b5c62761ec1506e903de267.tar.bz2
Merge remote-tracking branch 'upstream/master' into fix-1719
Conflicts: rest_framework/templates/rest_framework/base.html
Diffstat (limited to 'tests/utils.py')
-rw-r--r--tests/utils.py25
1 files changed, 25 insertions, 0 deletions
diff --git a/tests/utils.py b/tests/utils.py
new file mode 100644
index 00000000..28be81bd
--- /dev/null
+++ b/tests/utils.py
@@ -0,0 +1,25 @@
+from contextlib import contextmanager
+from django.utils import six
+from rest_framework.settings import api_settings
+
+
+@contextmanager
+def temporary_setting(setting, value, module=None):
+ """
+ Temporarily change value of setting for test.
+
+ Optionally reload given module, useful when module uses value of setting on
+ import.
+ """
+ original_value = getattr(api_settings, setting)
+ setattr(api_settings, setting, value)
+
+ if module is not None:
+ six.moves.reload_module(module)
+
+ yield
+
+ setattr(api_settings, setting, original_value)
+
+ if module is not None:
+ six.moves.reload_module(module)