devtools/testlib.py
changeset 5121 a63d7886fcf5
parent 5082 d6fd82a5a4e8
parent 5102 04c84959cd85
child 5159 2543cfa5d54a
--- a/devtools/testlib.py	Tue Mar 30 14:32:03 2010 +0200
+++ b/devtools/testlib.py	Wed Mar 31 15:39:09 2010 +0200
@@ -14,6 +14,7 @@
 import re
 from urllib import unquote
 from math import log
+from contextlib import contextmanager
 
 import simplejson
 
@@ -357,6 +358,15 @@
     def entity(self, rql, args=None, eidkey=None, req=None):
         return self.execute(rql, args, eidkey, req=req).get_entity(0, 0)
 
+    @contextmanager
+    def temporary_appobjects(self, *appobjects):
+        self.vreg._loadedmods.setdefault(self.__module__, {})
+        for obj in appobjects:
+            self.vreg.register(obj)
+        yield
+        for obj in appobjects:
+            self.vreg.unregister(obj)
+
     # vregistry inspection utilities ###########################################
 
     def pviews(self, req, rset):