From da29e723b7b9eaaf82a1f7a369fd264e1d64a7fe Mon Sep 17 00:00:00 2001 From: Emiliano Deustua Date: Sun, 9 Jun 2024 11:50:44 -0500 Subject: [PATCH] tests: Add property tests and fix mypy --- src/pytest_checklist/pointer.py | 3 +++ tests/test_pointer.py | 18 +++++++++++++----- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/src/pytest_checklist/pointer.py b/src/pytest_checklist/pointer.py index a003ab4..245606f 100644 --- a/src/pytest_checklist/pointer.py +++ b/src/pytest_checklist/pointer.py @@ -14,6 +14,9 @@ def resolve_target_pointer(target: Callable[..., Any] | property) -> Pointer: # NOTE: currently only supports functions and properties if isinstance(target, property): + if target.fget is None: + raise ValueError("Property getter must be set") + module = target.fget.__module__ qualname = target.fget.__qualname__ else: diff --git a/tests/test_pointer.py b/tests/test_pointer.py index 7b55f8a..669ec23 100644 --- a/tests/test_pointer.py +++ b/tests/test_pointer.py @@ -1,10 +1,7 @@ import pytest -from pytest_checklist.pointer import ( - resolve_pointer_mark_target, - resolve_target_pointer, - Pointer, -) +from pytest_checklist.pointer import (Pointer, resolve_pointer_mark_target, + resolve_target_pointer) pointer = pytest.mark.pointer @@ -13,6 +10,12 @@ def func_target(): pass +class PropertyTarget: + @property + def property_target(self): + pass + + @pointer(target=resolve_target_pointer) def test_resolve_target_pointer(): @@ -21,6 +24,11 @@ def test_resolve_target_pointer(): "tests.test_pointer.func_target", ) + assert resolve_target_pointer(PropertyTarget.property_target) == Pointer( + PropertyTarget.property_target, + "tests.test_pointer.PropertyTarget.property_target", + ) + @pointer(target=resolve_pointer_mark_target) def test_resolve_pointer_mark_target():