Implement a pytest plugin to help with testing
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 35/100
Piste de recherche
Commencez par lire la discussion sur pytest-plugin dans PR #5108 ainsi que les exemples de fixture et de context-manager demandés dans cette issue. Le travail est considéré comme terminé lorsqu’une fixture pytest réutilisable ou un context-manager remplace is_feature_enabled, get_flag et get_feature_value pour les valeurs de Flag fournies dans le périmètre du test.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
As part of some work in the core Flagsmith repository, we found that there isn't currently a good, generic solution for mocking the flagsmith client to return a given value for a flag at a given time. The ideal implementation as I see it would be to build a fixture that can be used as a context manager, or a function that looks something like this:
def my_test_function(set_flags: FlagsmithSetFlagsFixture) -> None:
with override_flagsmith(flags=[Flag(name="foo", enabled=True, value="foobar")]):
# in here, any calls to Flags.is_feature_enabled,Flags.get_flag and Flags.get_feature_value
# for the feature "foo" will return the values provided as an argument to override_flagsmith
...
def my_other_test_function(set_flags: FlagsmithSetFlagsFixture) -> None:
set_flags(flags=[Flag(name="foo", enabled=True, value="foobar")])
# For the remainder of this test, any calls to Flags.is_feature_enabled,Flags.get_flag
# and Flags.get_feature_value for the feature "foo" will return the values provided as
# an argument to override_flagsmith
See PR here for more context / discussions
- Langage dominant
- Python
- Étoiles
- 24
- Forks
- 12
- Merge moyen
- 4 j 18 h
- PR mergées (30 j)
- 7
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Aucun modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de Flagsmith/flagsmith-python-client
-
Difficulté 3/5 1-2 jours Accessibilité débutants 68/100
-
Difficulté 3/5 1-2 jours Accessibilité débutants 65/100
-
Dependency DashboardOuverte
Difficulté 4/5 3-5 jours Accessibilité débutants 35/100
-
Difficulté 3/5 1-2 jours Accessibilité débutants 68/100
-
Performance regression: v5 is 2–7× slower than v3.8.0 for local evaluationPeut-être à nouveau libre @khvn26 l’a pris il y a 157 jours, et aucune pull request n’est ouverte. Ouverte
Flagsmith/flagsmith-python-client#198 · 1 commentaire · 2 personnes assignées ·
Toutes les issues de Flagsmith/flagsmith-python-client
Issues similaires
-
#bug
Difficulté 1/5 Moins d'une heure Accessibilité débutants 92/100
apache/superset#44923 · 1 commentaire ·
Les mainteneurs répondent en général sous 2 jours
-
Difficulté 2/5 1-3 heures Accessibilité débutants 84/100
lawndoc/stack-back#123 ·
-
Add: EntuneOuverte
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
AbdelStark/awesome-typesafe-jev#187 ·
Les mainteneurs répondent en général sous 1 jour
-
bug good first issue
Difficulté 2/5 1-3 heures Accessibilité débutants 88/100
repowise-dev/repowise#2966 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 84/100
Les mainteneurs répondent en général sous 2 jours