From 426907eafbba7738cf33374a33c3c7aed67dadce Mon Sep 17 00:00:00 2001 From: holger krekel Date: Sat, 7 Dec 2013 16:39:53 +0100 Subject: [PATCH] radically simplify eq/neq with nodes by just using Pythons builtin "is" relationship. The need for comparing two separately instantiated nodes seems to be historic (related to an already-gone mode of pytest-xdist which would re-collect nodes) and not actually needed anymore. --- _pytest/main.py | 12 +----------- _pytest/python.py | 18 ------------------ testing/python/collect.py | 16 ++-------------- 3 files changed, 3 insertions(+), 43 deletions(-) diff --git a/_pytest/main.py b/_pytest/main.py index 75cb487e4..9c7266bfc 100644 --- a/_pytest/main.py +++ b/_pytest/main.py @@ -272,21 +272,11 @@ class Node(object): self._nodeid = x = self._makeid() return x - def _makeid(self): return self.parent.nodeid + "::" + self.name - def __eq__(self, other): - if not isinstance(other, Node): - return False - return (self.__class__ == other.__class__ and - self.name == other.name and self.parent == other.parent) - - def __ne__(self, other): - return not self == other - def __hash__(self): - return hash((self.name, self.parent)) + return hash(self.nodeid) def setup(self): pass diff --git a/_pytest/python.py b/_pytest/python.py index 51f887063..dd818859e 100644 --- a/_pytest/python.py +++ b/_pytest/python.py @@ -1087,24 +1087,6 @@ class Function(FunctionMixin, pytest.Item, FuncargnamesCompatAttr): super(Function, self).setup() fillfixtures(self) - def __eq__(self, other): - try: - return (self.name == other.name and - self._args == other._args and - self.parent == other.parent and - self.obj == other.obj and - getattr(self, '_genid', None) == - getattr(other, '_genid', None) - ) - except AttributeError: - pass - return False - - def __ne__(self, other): - return not self == other - - def __hash__(self): - return hash((self.parent, self.name)) scope2props = dict(session=()) scope2props["module"] = ("fspath", "module") diff --git a/testing/python/collect.py b/testing/python/collect.py index 9d7958428..ac3892db3 100644 --- a/testing/python/collect.py +++ b/testing/python/collect.py @@ -287,22 +287,10 @@ class TestFunction: pass f1 = pytest.Function(name="name", parent=session, config=config, args=(1,), callobj=func1) + assert f1 == f1 f2 = pytest.Function(name="name",config=config, - args=(1,), callobj=func2, parent=session) - assert not f1 == f2 + callobj=func2, parent=session) assert f1 != f2 - f3 = pytest.Function(name="name", parent=session, config=config, - args=(1,2), callobj=func2) - assert not f3 == f2 - assert f3 != f2 - - assert not f3 == f1 - assert f3 != f1 - - f1_b = pytest.Function(name="name", parent=session, config=config, - args=(1,), callobj=func1) - assert f1 == f1_b - assert not f1 != f1_b def test_issue197_parametrize_emptyset(self, testdir): testdir.makepyfile("""