From c9a51de674ef655539f13bf6e3d409bd4e62abf1 Mon Sep 17 00:00:00 2001 From: Alex Hall Date: Fri, 26 Apr 2019 09:32:45 +0200 Subject: [PATCH] Test arbitrary expression evaluation. --- tests/test_pysnooper.py | 17 ++++++++++++----- tests/utils.py | 4 ++-- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/tests/test_pysnooper.py b/tests/test_pysnooper.py index dbac6a9..1913540 100644 --- a/tests/test_pysnooper.py +++ b/tests/test_pysnooper.py @@ -52,7 +52,11 @@ def test_variables(): def square(self): self.x **= 2 - @pysnooper.snoop(variables=('foo.x', 'io')) + @pysnooper.snoop(variables=( + 'foo.x', + 'io.__name__', + 'len(foo.__dict__["x"] * "abc")', + )) def my_function(): foo = Foo() for i in range(2): @@ -66,20 +70,23 @@ def test_variables(): assert_output( output, ( - VariableEntry(), - VariableEntry(), + VariableEntry('Foo'), + VariableEntry('io.__name__', 'io'), CallEntry('def my_function():'), LineEntry('foo = Foo()'), - VariableEntry(), - VariableEntry(), + VariableEntry('foo'), + VariableEntry('foo.x', '2'), + VariableEntry('len(foo.__dict__["x"] * "abc")', 6), LineEntry(), VariableEntry('i', '0'), LineEntry(), VariableEntry('foo.x', '4'), + VariableEntry('len(foo.__dict__["x"] * "abc")', 12), LineEntry(), VariableEntry('i', '1'), LineEntry(), VariableEntry('foo.x', '16'), + VariableEntry('len(foo.__dict__["x"] * "abc")', 48), LineEntry(), ReturnEntry(), ReturnValueEntry('None') diff --git a/tests/utils.py b/tests/utils.py index 1979534..e1a6ae0 100644 --- a/tests/utils.py +++ b/tests/utils.py @@ -100,7 +100,7 @@ class VariableEntry(_BaseValueEntry): return self._check_stage(stage) _content_pattern = re.compile( - r"""^(?P[^ ]+) = (?P.+)$""" + r"""^(?P.+?) = (?P.+)$""" ) def _check_content(self, content): @@ -120,7 +120,7 @@ class VariableEntry(_BaseValueEntry): def _check_value(self, value): if self.value is not None: - return value == self.value + return value == str(self.value) elif self.value_regex is not None: return self.value_regex.match(value) else: