devtools/testlib.py
branchstable
changeset 5102 04c84959cd85
parent 5055 14906474c55d
child 5121 a63d7886fcf5
child 5128 e5d300d75519
--- a/devtools/testlib.py	Wed Mar 31 12:21:39 2010 +0200
+++ b/devtools/testlib.py	Wed Mar 31 12:26:07 2010 +0200
@@ -12,6 +12,7 @@
 import re
 from urllib import unquote
 from math import log
+from contextlib import contextmanager
 
 import simplejson
 
@@ -354,6 +355,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):