Use parametrize instead of TestCase

This commit is contained in:
Dave Halter
2019-07-10 23:22:10 -07:00
parent cef23f44cd
commit 0ec86d5034

View File

@@ -216,35 +216,22 @@ def test_param_endings(Script):
assert [p.description for p in sig.params] == ['param a', 'param b=5', 'param c=""'] assert [p.description for p in sig.params] == ['param a', 'param b=5', 'param c=""']
class TestIsDefinition(TestCase): @pytest.mark.parametrize(
@pytest.fixture(autouse=True) 'code, index, name, is_definition', [
def init(self, environment): ('name', 0, 'name', False),
self.environment = environment ('a = f(x)', 0, 'a', True),
('a = f(x)', 1, 'f', False),
def _def(self, source, index=-1): ('a = f(x)', 2, 'x', False),
return names( ]
dedent(source), )
def test_is_definition(names, code, index, name, is_definition):
d = names(
dedent(code),
references=True, references=True,
all_scopes=True, all_scopes=True,
environment=self.environment
)[index] )[index]
assert d.name == name
def test_name(self): assert d.is_definition() == is_definition
d = self._def('name')
assert d.name == 'name'
assert not d.is_definition()
def test_stmt(self):
src = 'a = f(x)'
d = self._def(src, 0)
assert d.name == 'a'
assert d.is_definition()
d = self._def(src, 1)
assert d.name == 'f'
assert not d.is_definition()
d = self._def(src)
assert d.name == 'x'
assert not d.is_definition()
@pytest.mark.parametrize( @pytest.mark.parametrize(