Код: Выделить всё
backend/
├── app/
│ ├── __init__.py
│ ├── routes/
│ │ ├── dev_routes.py
│ │ └── ...
│ └── models.py
├── tests/
│ ├── __init__.py
│ └── routes/
│ └── test_dev_routes.py
└── main.py
|__ ...
Код: Выделить всё
_______ ERROR collecting tests/routes/test_dev_routes.py ________
ImportError while importing test module '/Users/name/folder/project-name/project/backend/tests/routes/test_dev_routes.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
../../../../miniconda3/lib/python3.10/importlib/__init__.py:126: in import_module
return _bootstrap._gcd_import(name[level:], package, level)
tests/routes/test_dev_routes.py:3: in
from app.routes import dev_routes
E ModuleNotFoundError: No module named 'app'
Код: Выделить всё
import pytest
from flask import Flask, json
from app.routes import dev_routes
from app import create_app, db
from app.models import User, Doctor, Slot, Queue, QueueEntry
@pytest.fixture
def client():
app = Flask(__name__)
app.register_blueprint(dev_routes.api, url_prefix='/api/dev')
app.config['TESTING'] = True
with app.test_client() as client:
with app.app_context():
db.create_all() # Create the database tables
yield client
with app.app_context():
db.drop_all() # Clean up after tests
Файл __init__.py в папке моего приложения выглядит так:
Код: Выделить всё
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask_cors import CORS
db = SQLAlchemy()
_app_instance = None # Singleton instance
def create_app(config_name: str = None):
global _app_instance
if _app_instance is None:
_app_instance = Flask(__name__)
_app_instance.config.from_object('config.Test')
db.init_app(_app_instance)
CORS(_app_instance)
return _app_instance
Я попробовал переместить всю папку с тестами в папку приложения, но это все равно не сработало.
Я пытался сделать что-то вроде импорта backend.app.routes code> куда я поместил файл __init__.py в моей внутренней папке это все равно не сработало.
Подробнее здесь: https://stackoverflow.com/questions/793 ... convention
Мобильная версия