darrenburns / ward

Ward is a modern test framework for Python with a focus on productivity and readability.
https://ward.readthedocs.io
MIT License
1.21k stars 53 forks source link

Call test from other module #375

Open WolfDWyc opened 11 months ago

WolfDWyc commented 11 months ago

I noticed this behavior:

# a.py

def make_tests(a, b)

    @test("{a} + {b} = {b} + {a}")
    def _(a=a, b=b):
        assert a + b == b + a

    @test("{a} * 2 == {a} + {a}")
    def _(a=a):
       assert a * 2 == a + a
# b.py
make_tests(2, 3)
make_tests(4, 8)

Doesn't detect the tests.

It appears to be caused by this line in testing.py:

        is_home_module: bool = "." not in module_name
        if is_test_module_name(module_name) and is_home_module:

@darrenburns I'm wondering what's the reason for this? Why do the tests have to be declared in the home module?

Is there any other way to do this?