Как импортировать приложение Flask в тестовый файл, чтобы выполнить unittest - PullRequest
0 голосов
/ 10 июля 2019

Я пытаюсь импортировать приложение из колбы, чтобы выполнить unittest, но у меня проблемы с импортом:

Описание ошибки: Traceback (последний вызов был последним): файл "tests.py",строка 4, из файла приложения для импорта приложения "/home/master/Workspaces/eduCAT/faq-test/api/app.py", строка 4, из вопроса импорта из .models, QuestionSchema, Message, MessageSchema ImportError: попытка относительного импортас неизвестным родительским пакетом

У меня есть дерево файлов со всеми файлами в одной папке, как это:

Folder [api]

-> __init__.py

-> app.py

-> models.py

-> test.py

-> config.py

API работает хорошо с флеш-бег , но когда я пытаюсь импортировать приложение в test.py , я получаю эту ошибку.

Импорт: app.py

from flask import jsonify, request
from .models import Question, QuestionSchema, Message, MessageSchema
from api import app, db

Импорт: __ init __. Py

from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask_marshmallow import Marshmallow


app = Flask(__name__)
app.config.from_object('api.config')

db = SQLAlchemy(app)
ma = Marshmallow(app)

Импорт: models.py

from api import db, ma

И вкл test.py

import os
import unittest

from app import app

Импорт, который я уже пробовал на test.py : импорт:

from app import app

ошибка:

Traceback (большинство получателейне вызывать последний): файл "tests.py", строка 4, из файла импорта приложения. Файл "/home/master/Workspaces/eduCAT/faq-test/api/app.py", строка 4, из файла импорта .models.Question, QuestionSchema, Message, MessageSchema ImportError: попытка относительного импорта без известного родительского пакета

import:

from .app import app

ошибка:

Traceback (последний вызов был последним): файл "tests.py", строка 4, из приложения импорта .app ModuleNotFoundError: нет модуля с именем ' main .app';' main ' не является пакетом

import:

from api import app

ошибка:

Traceback (последний вызов последнего): Файл «tests.py», строка 4, из приложения для импорта api ModuleNotFoundError: Нет модуля с именем «api»

Я застрял в этом тесте.

Редактировать Полный код

app.py - https://dpaste.de/JgEi

__ init__.py - https://dpaste.de/A9sG

models.py - https://dpaste.de/xEx4

config.py - https://dpaste.de/o8pS

test.py - https://dpaste.de/nGrF

1 Ответ

0 голосов
/ 10 июля 2019

вам нужно исправить некоторые операции импорта кода ...

пример для импорта объектов из init .py вы используете

из.импортировать приложение, db

или создать пакет с именем app и ввести init .py внутри

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...