[py-svn] commit/pytest: RonnyPfannschmidt: get rid of _memoizedcall - we dont really need it anymore

Bitbucket commits-noreply at bitbucket.org
Mon Sep 24 11:27:08 CEST 2012


1 new commit in pytest:


https://bitbucket.org/hpk42/pytest/changeset/cfe628a3d132/
changeset:   cfe628a3d132
user:        RonnyPfannschmidt
date:        2012-09-24 11:26:38
summary:     get rid of _memoizedcall - we dont really need it anymore
affected #:  3 files

diff -r 07e5a98aceca50ad07e99b226baf6dd9d84ce380 -r cfe628a3d13254a5f6ea8a52656f014f0160116c _pytest/main.py
--- a/_pytest/main.py
+++ b/_pytest/main.py
@@ -251,24 +251,6 @@
     def teardown(self):
         pass
 
-    def _memoizedcall(self, attrname, function):
-        exattrname = "_ex_" + attrname
-        failure = getattr(self, exattrname, None)
-        if failure is not None:
-            py.builtin._reraise(failure[0], failure[1], failure[2])
-        if hasattr(self, attrname):
-            return getattr(self, attrname)
-        try:
-            res = function()
-        except py.builtin._sysex:
-            raise
-        except:
-            failure = py.std.sys.exc_info()
-            setattr(self, exattrname, failure)
-            raise
-        setattr(self, attrname, res)
-        return res
-
     def listchain(self):
         """ return list of all parent collectors up to self,
             starting from root of collection tree. """
@@ -345,10 +327,6 @@
             return str(exc.args[0])
         return self._repr_failure_py(excinfo, style="short")
 
-    def _memocollect(self):
-        """ internal helper method to cache results of calling collect(). """
-        return self._memoizedcall('_collected', lambda: list(self.collect()))
-
     def _prunetraceback(self, excinfo):
         if hasattr(self, 'fspath'):
             path = self.fspath


diff -r 07e5a98aceca50ad07e99b226baf6dd9d84ce380 -r cfe628a3d13254a5f6ea8a52656f014f0160116c _pytest/python.py
--- a/_pytest/python.py
+++ b/_pytest/python.py
@@ -332,8 +332,12 @@
 
 class Module(pytest.File, PyCollector):
     """ Collector for test classes and functions. """
+    _obj = None
+
     def _getobj(self):
-        return self._memoizedcall('_obj', self._importtestmodule)
+        if self._obj is None:
+            self._obj = self._importtestmodule()
+        return _obj
 
     def collect(self):
         self.session.funcargmanager._parsefactories(self.obj, self.nodeid)


diff -r 07e5a98aceca50ad07e99b226baf6dd9d84ce380 -r cfe628a3d13254a5f6ea8a52656f014f0160116c _pytest/runner.py
--- a/_pytest/runner.py
+++ b/_pytest/runner.py
@@ -244,7 +244,7 @@
         self.__dict__.update(extra)
 
 def pytest_make_collect_report(collector):
-    call = CallInfo(collector._memocollect, "memocollect")
+    call = CallInfo(lambda: list(collector.collect()), "collect")
     longrepr = None
     if not call.excinfo:
         outcome = "passed"

Repository URL: https://bitbucket.org/hpk42/pytest/

--

This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.



More information about the pytest-commit mailing list