Фон
Я разрабатываю достаточно большой плагин для QGIS ( v. 2.18.28 , но я не думаю, что версия так важна), и я хотел бы сделать некоторые юниты тестируют его с pytest .
Дело в том, что даже при наличии правильного интерпретатора, правильного PYTHONPATH и т. Д., Некоторые объекты все еще недоступны вне работающей среды QGIS. QSettings является одним из них, и он вызывает сбой половины моих тестов, потому что мой тестированный код использует настройки, сохраненные там.
Например, QSettings().value('some/eacom4/MySeacom/path')
вернет пустую строку вместо ее значения в тестовой среде (как предоставляет Pycharm). Он ничего не выбрасывает, но его поведение по-прежнему неприемлемо.
Вопрос
Как получить доступ к QSettings вне QGIS?
Вещи, которые я пробовал
Классический from qgis.PyQt.QtCore import QSettings
не работает, поэтому Я попытался смоделировать его с помощью пользовательского класса, и он отлично работает в тестовом коде, но не доступен в тестированном коде без его изменения. Однако я хочу изменить как можно меньше тестируемого кода для обходного пути тестирования и убедиться, что он по-прежнему работает нормально на производстве (иначе говоря, вызывая настоящий QSettings ).
Кто-нибудь проводил тестирование на плагине QGIS и сталкивался с той же проблемой?
Если так, то я был бы благодарен, если бы нашел решение, которое вы придумали.