Как смоделировать импорт внутри метода в python - PullRequest
0 голосов
/ 24 сентября 2018

Это довольно простой вопрос.Если у меня есть импорт внутри метода, как я могу издеваться над этим конкретным импортом?Например:

def myFunction(self):
    auth_token_path = self.authTokenPath()
    import json

    if os.path.exists(auth_token_path):
      auth_token = json.load(open(auth_token_path, 'r'))
      return auth_token

Как я могу издеваться над "import json"?Есть ли способ исправить это?Я пытался импортировать данные из моей тестовой функции, но я не думаю, что это правильный способ (и он тоже не работал).

1 Ответ

0 голосов
/ 26 сентября 2018

Чтобы смоделировать эту функцию

def myFunction(self):
auth_token_path = self.authTokenPath()
import json

if os.path.exists(auth_token_path):
  auth_token = json.load(open(auth_token_path, 'r'))
  return auth_token

Все, что нам нужно сделать, это добавить декоратор PATCH (), связанный с функцией импорта, который нужно смоделировать:

@patch('json.load')
def myFunction(self,json):
auth_token_path = self.authTokenPath()
import json

if os.path.exists(auth_token_path):
  auth_token = json.load(open(auth_token_path, 'r'))
  return auth_token
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...