Как получить доступ к QSettings вне среды QGIS? - PullRequest
0 голосов
/ 02 мая 2019

Фон

Я разрабатываю достаточно большой плагин для 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 и сталкивался с той же проблемой? Если так, то я был бы благодарен, если бы нашел решение, которое вы придумали.

...