dry-python / dry-python/classes

Hypothesis integration

Ouverte
#234 2 commentaires 1 réaction 0 personnes assignées Voir sur GitHub
enhancement
Langage dominant
Python
Étoiles
730
Forks
30
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

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 produce `str` for all `instance`, `protocol`, and supported types and it must produce `NotImplementedError` for types that are not supported
- Looks like `check_typeclass` must have `allow_instances`, `allow_protocols`, `allow_unknown` kw `bool` 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?

Guide de contribution

Ouvrir le guide de contribution

Évaluation

Cette issue n'a pas encore été évaluée.

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.