У меня был медведь времени, выяснив это, и это действительно подслушивало меня, поэтому я подумал, что отправлю это здесь, если кто-то столкнется с той же проблемой...
(и ответ настолько прост, что он болит: -)
Проблема
Ядро проблемы заключается в том, что иногда, не всегда, когда речь идет о светильниках в PyTest, которые возвращают объекты, когда вы используете эти приборы в тесте в PyCharm, вы не получаете подсказок автозаполнения. Если у вас есть объекты с большим количеством методов, которые вы хотите ссылаться при написании теста, это может добавить много накладных расходов и неудобств в процесс написания теста.
Вот простой пример, иллюстрирующий проблему:
Скажем, у меня есть класс "event_manager", который живет в:
location.game.events
Допустим, что в моем файле conftest.py(стандартная вещь PyTest для незнакомого) у меня есть приспособление, которое возвращает экземпляр этого класса:
from location.game.events import event_manager
...
@pytest.fixture(scope="module")
def event_mgr():
"""Creates a new instance of event generate for use in tests"""
return event_manager()
У меня иногда возникали проблемы (но не всегда - я не могу понять, почему) с такими классами, где автозаполнение не будет работать должным образом в тестовом коде, где я использую прибор, например
def test_tc10657(self, evt_mgr):
"""Generates a Regmod and expects filemod to be searchable on server"""
evt_mgr.(This does not offer autocomplete hints when you type ".")
Итак, ответ на самом деле довольно прост, как только вы просматриваете тип намека на PyCharm: http://www.jetbrains.com/help/pycharm/2016.1/type-hinting-in-pycharm.html
Здесь, как исправить вышеуказанный тестовый код, чтобы автозаполнение работало правильно:
from location.game.events import event_manager
...
def test_tc10657(self, evt_mgr: event_manager):
"""Generates a Regmod and expects filemod to be searchable on server"""
evt_mgr.(This DOES offer hints when you type "." Yay!)
Обратите внимание, как я явно ввожу прибор в качестве входного параметра типа event_manager.