Hypothesis integration
sobolevn opened this issue · 2 comments
Right now we don't test classes
with hypothesis
at all.
But, I have a great idea (at least it seems to me like so) of adding a hypothesis plugin, similar to one we have in returns
: https://github.com/dry-python/returns/blob/master/returns/contrib/hypothesis/laws.py
What should it do?
check_typeclass(typeclass_instance)
will check that for all existing types and protocols some valid return type is produced. For example,@typeclass def some(instance) -> str
must producestr
for allinstance
,protocol
, and supported types and it must produceNotImplementedError
for types that are not supported- Looks like
check_typeclass
must haveallow_instances
,allow_protocols
,allow_unknown
kwbool
arguments to configure what types we actually need in a resulting strategy
It would be a nice companion to our mypy
check.
@Zac-HD do you like it? Maybe you have any other ideas?
Sounds cool!
My only real suggestion is a terminology note: "hypothesis plugin" usually refers to code that Hypothesis invokes via a setuptools
entry point; so maybe call this kind of thing a "hypothesis extension" or "hypothesis integration" or "automatic testing tool"?
"hypothesis integration"
I like that! Thanks for the suggestion 👍