Насмешка над функцией внутри пространства имен Flask-Restful - PullRequest
0 голосов
/ 04 сентября 2018

У меня есть приложение Flask, и я пытаюсь написать для него тестовые наборы (новичок в тестировании) и использую unittest, mock для тестирования.

Я написал POST /invites конечную точку API, и операторы импорта выглядят следующим образом

Файл apis.invites.py

from flask.ext.login import login_required
import flask_login
from flask_restplus import Namespace, Resource, fields, abort
.... # Some other imports
from libs.email_manager import EmailManager
....
....
api = Namespace('invites', description='Invites a user')
....

В моем тестовом примере я пытаюсь смоделировать этот объект EmailManager. Вот как выглядит мой test_invites.py код

@mock.patch('apis.invites.EmailManager')
def test_resend_invite(self, email_manager_mock):
    # testing the endpoint

Но при запуске тестового примера выдается следующая ошибка

Traceback (most recent call last):
  File "/home/daffodil/Desktop/museconnect/venv/local/lib/python2.7/site-packages/mock/mock.py", line 1297, in patched
    arg = patching.__enter__()
  File "/home/daffodil/Desktop/museconnect/venv/local/lib/python2.7/site-packages/mock/mock.py", line 1369, in __enter__
    original, local = self.get_original()
  File "/home/daffodil/Desktop/museconnect/venv/local/lib/python2.7/site-packages/mock/mock.py", line 1343, in get_original
    "%s does not have the attribute %r" % (target, name)
AttributeError: <flask_restplus.namespace.Namespace object at 0x7f598979e050> does not have the attribute 'EmailManager'

Есть идеи, почему я получаю эту ошибку импорта?

...