Как смоделировать функцию переключения без подключения к Launch Darkly? - PullRequest
0 голосов
/ 03 июня 2019

У меня новая строка кода, которая должна быть окружена переключателем функций. Поскольку это служба (приложение Flask), которая при запуске запускает все свои соединения и соответствующую интеграцию с внешними источниками - у меня нет экземпляра LaunchDarkly, запускаемого при выполнении юнит-тестов.

Есть ли простой способ смоделировать и предопределить функцию переключения для юнит-тестов / интеграционных тестов в Python? Я использую pytest для написания юнит-тестов.

Пример моего кода:

if FeatureToggle.is_enabled("my-feature-toggle-name"):
     *my code logic*

метод is_enabled() impl:

@staticmethod
def is_enabled(flag_name: str, user_key: str=None, custom_params: dict=None) -> bool:
    if user_key is None:
        user_key = 'defaut_user_key'

    return FeatureToggle.ld_client.variation(flag_name, {"key": user_key, "custom": custom_params}, False)

При запуске приложения FeatureToggle.ld_client запускается с подходящим API-ключом для темного запуска, а затем позволяет мне использовать их метод variation().
Я понимаю, что могу изменить свой метод is_enabled(), чтобы он возвращал предопределенное значение, когда нет экземпляра ld_client, но я ищу более элегантный способ сделать это.

Спасибо!

1 Ответ

0 голосов
/ 05 июня 2019

Так что после расследования и консультирования моих коллег это можно сделать с помощью библиотеки unittest.mock .

Я обновлю ответ, когда у меня будет полностью рабочее решение

...