Skip to content

Support test functions that are located inside classes #16

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
smarie opened this issue Nov 15, 2018 · 6 comments
Closed

Support test functions that are located inside classes #16

smarie opened this issue Nov 15, 2018 · 6 comments

Comments

@smarie
Copy link
Owner

smarie commented Nov 15, 2018

ValueError: <function TestClass.test_xxx> uses no argument '________step_name_'

It seems that test functions located inside classes are not supported yet.

@smarie
Copy link
Owner Author

smarie commented Nov 15, 2018

It would be non-trivial to fix this: indeed the way we currently generate the wrappers around test functions is done with a hacked version of decorator to add arguments in the signature, and the only way I found as of today is to prepend the new arguments at the beginning of the positional arguments in the new signature.

When a function is located inside a class, its first argument is 'self' or 'cls', and should remain the first argument, even after our wrapping.

We could however inspect the test functions and detect that it is an instance, class or static method, so that we handle the case specifically.

Let's wait for users actually requiring it :)

@smarie smarie transferred this issue from smarie/python-pytest-harvest Nov 15, 2018
smarie added a commit that referenced this issue Nov 19, 2018
@rplevka
Copy link

rplevka commented Nov 20, 2018

uhm...here i am :D

@smarie
Copy link
Owner Author

smarie commented Nov 20, 2018

Thanks for caring! As of today as I wrote above, this would require a major non-trivial modification.

A workaround is to use the "new" pytest style (i.e. no classes, just plain old functions in separate modules). But I understand that in large projects this might not be satisfying.

I would gladly accept contributions on the topic if anyone feels ready to dig into dynamic code compilation.

@smarie smarie changed the title ValueError: <function TestClass.test_xxx> uses no argument '________step_name_' Support test functions that are located inside classes Dec 13, 2018
@zeburek
Copy link

zeburek commented Oct 28, 2019

Looks like a MUSTHAVE feature

@smarie
Copy link
Owner Author

smarie commented Nov 5, 2019

It seems that this is doable quite easily with current status of the code (now that I rely on makefun do manipulate the signatures). I'll have a look.

@smarie smarie closed this as completed in ab5a140 Nov 5, 2019
@smarie
Copy link
Owner Author

smarie commented Nov 5, 2019

Fixed in 1.7.0 (to be released in a few minutes)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants