ModuleNotFoundError: нет модуля с именем " "Python

Программы на Python
Гость
ModuleNotFoundError: нет модуля с именем " "

Сообщение Гость »


Вот контекст:
Я работаю над Django. Я начал кодировать функции, но остановился, чтобы настроить первые модульные тесты.
Я хотел протестировать свой класс CustomUser, расположенный в JoBooking.models.py в файле test_models.py. JoBooking — это приложение, которое я создал в своем проекте Django.
Поэтому я выполнил импорт из JoParis.JoBookings.models import CustomUser.
Когда я запускаю python Manage.py Test или pytest в терминале, я столкнулся с этой ошибкой: ModuleNotFoundError: Нет модуля с именем «JoParis.JoBooking»
Я настроил приложение (JoBooking) в settings.py. .. но ничего не работает.
Файлы init.py присутствуют в пакетах.
Я провел простой тест, чтобы проверить, соответствует ли URL-адрес мое приложение возвращает ответ HTTP 200, и тест работает, но мне нужно удалить импорт из JoParis.JoBookings.models import CustomUser. Итак, тестовый файл найден, но проблема связана с импортом, когда я хочу протестировать свои модели.
Я застрял. Я не понимаю эту ошибку. ModuleNotFoundError: модуль не назван. Просто объясните мне, что это за ошибка, пожалуйста. Спасибо
В test_models.py

Код: Выделить всё

from django.test import TestCase
from ...JoBooking.models import CustomUser

# test inscription avec données valides et obligatoires
class TestCreateUser(TestCase):
def test_create_user(self):
user = CustomUser.objects.create_user(
email='usertest@mail.com',
password='password',
username='',
first_name='user',
last_name='test',
is_superuser=False,
is_staff=False
)
assert CustomUser.objects.filter(email='usertest@mail.com').exists()  # verifie si dans la BDD
assert user.first_name == 'user'
assert user.last_name == 'test'
assert user.is_superuser is False  # verifie si attribut par défaut pris en compte
assert user.is_staff is False

# test inscription  avec données non valides
# test connexion user avec True data
# test connexion user avec False data

# test qui verifie  http response = 200
class TestUrl(TestCase):
def test_my_view(self):
response = self.client.get('http://127.0.0.1:8000/')
self.assertEqual(response.status_code, 200)
in setting.py

Код: Выделить всё

from pathlib import Path
import os

# Build paths inside the project like this: BASE_DIR / 'subdir'.
BASE_DIR = Path(__file__).resolve().parent.parent

# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/5.0/howto/deployment/checklist/

# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = x

# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True

ALLOWED_HOSTS = []

# Application definition

INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'JoBooking',
]

MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

ROOT_URLCONF = 'JoParis.urls'

TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, "JoBooking/templates/JoBooking")],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]

WSGI_APPLICATION = 'JoParis.wsgi.application'

# Database
# https://docs.djangoproject.com/en/5.0/ref/settings/#databases

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'OPTIONS': {
"read_default_file": 'C:\\Users\\murhe\\OneDrive\\Bureau\\EXAM JO\\my.cnf.txt',
},
}
}

# Password validation
# https://docs.djangoproject.com/en/5.0/ref/settings/#auth-password-validators

AUTH_PASSWORD_VALIDATORS = [
{
'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
},
{
'NAME':  'django.contrib.auth.password_validation.NumericPasswordValidator',
},
]

# Интернационализация
# https://docs.djangoproject.com/en/ 5.0/topics/i18n/

LANGUAGE_CODE = 'fr-fr'

TIME_ZONE = 'UTC'

USE_I18N = True
< br />USE_TZ = True

# Статические файлы (CSS, JavaScript, изображения)
# https://docs.djangoproject.com/en/5.0/howto/static-files/< br />
STATIC_URL = '/static/'

# Тип поля первичного ключа по умолчанию
# https://docs.djangoproject.com/en/5.0/ref/settings /#default-auto-field

DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'

AUTH_USER_MODEL = 'JoBooking.CustomUser'

AUTHENTICATION_BACKENDS = [
'django.contrib.auth.backends.ModelBackend',
'JoBooking.authbackends.EmailAuthBackend',
]
Сообщение об ошибке
: (venv) PS C:\Users\murhe\PycharmProjects\StudiProject\JoParis> pytest
=============== =============================================== ==== начинается тестовая сессия ========================================= ===========================
платформа win32 -- Python 3.11.1, pytest-8.0.1, pluggy-1.4 .0
django: версия: 5.0.2, настройки: JoParis.settings (из ini)
корневой каталог: C:\Users\murhe\PycharmProjects\StudiProject\JoParis
файл конфигурации: pytest.ini
Плагины: django-4.8.0
собрано 0 элементов / 2 ошибки
================= =============================================== ========= ОШИБКИ ====================================== ===================================
________________________________________________________ ОШИБКА при сборе JoBooking/tests/test_models. py _________________________________________________________
ImportError при импорте тестового модуля 'C:\Users\murhe\PycharmProjects\StudiProject\JoParis\JoBooking\tests\test_models.py'.
Подсказка: убедитесь, что ваши тестовые модули/пакеты имеют действительный Python имена.
Traceback:
......\AppData\Local\Programs\Python\Python311\Lib\importlib_init_.py:126: в import_module
return _bootstrap.gcd_import(name[level:], package, level)
E ModuleNotFoundError: Нет модуля с именем «JoParis.JoBooking»
_________________________________________________________ ОШИБКА при сборе JoBooking/tests/test_views.py _________________________________________________________
Ошибка импорта при импорте тестового модуля «C:\Users\murhe\PycharmProjects\StudiProject\JoParis\JoBooking\tests\test_views.py».
Подсказка: убедитесь, что ваши тестовые модули/пакеты имеют допустимые имена Python.
Обратная трассировка:
......\AppData\Local\Programs\Python\Python311\Lib\importlib_init.py:126: в import_module< br />return bootstrap.gcd_import(name[level:], package, level)
E ModuleNotFoundError: нет модуля с именем «JoParis.JoBooking»
======= =============================================== =============== Сводка предупреждений =============================== =====================================
..\venv\Lib\ site-packages_pytest\config_init.py:1396
C:\Users\murhe\PycharmProjects\StudiProject\venv\Lib\site-packages_pytest\config_init< /em>.py:1396: PytestConfigWarning: Неизвестный параметр конфигурации: PYTHONPATH

Код: Выделить всё

self._warn_or_fail_if_strict(f"Unknown config option: {key}\n")
-- Docs: https://docs.pytest.org/en/stable/how-t ... nings.html
==================================================================== short test summary info =====================================================================
ERROR JoBooking/tests/test_models.py
ERROR JoBooking/tests/test_views.py
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Interrupted: 2 errors during collection !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
================================================================== 1 warning, 2 errors in 0.68s ===============


Источник: https://stackoverflow.com/questions/781 ... dule-named

Вернуться в «Python»