From 6e5f491a42bf6e6c2e4c813eb0f02c2363fab13a Mon Sep 17 00:00:00 2001 From: Ronny Pfannschmidt Date: Mon, 24 Sep 2012 11:26:38 +0200 Subject: [PATCH] get rid of _memoizedcall - we dont really need it anymore --- _pytest/main.py | 22 ---------------------- _pytest/python.py | 6 +++++- _pytest/runner.py | 2 +- 3 files changed, 6 insertions(+), 24 deletions(-) diff --git a/_pytest/main.py b/_pytest/main.py index 002dc59a7..452079762 100644 --- a/_pytest/main.py +++ b/_pytest/main.py @@ -251,24 +251,6 @@ class Node(object): 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 @@ class Collector(Node): 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 --git a/_pytest/python.py b/_pytest/python.py index b2ad05f8a..3276f16ae 100644 --- a/_pytest/python.py +++ b/_pytest/python.py @@ -332,8 +332,12 @@ def transfer_markers(funcobj, cls, mod): 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 --git a/_pytest/runner.py b/_pytest/runner.py index c774835de..fb8366090 100644 --- a/_pytest/runner.py +++ b/_pytest/runner.py @@ -244,7 +244,7 @@ class TeardownErrorReport(BaseReport): 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"