С Новым годом! Форум программистов, компьютерный форум, киберфорум
Python: Django
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 25.04.2022
Сообщений: 18

Django PyTest

06.04.2023, 10:33. Показов 2714. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Относительно недавно начал изучать Django, вчера добрался до pytest. Однако столкнулся с непредвиденной ошибкой, в интернете решения тоже, к сожалению, не нашел. Ошибка возникает еще ДО запуска теста при импорте модулей. Сама ошибка:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Traceback (most recent call last):
  File "C:\py_web_proj\ecommerce\core\tests\factories.py", line 2, in <module>
    from core.store.models import Category
  File "C:\py_web_proj\ecommerce\core\store\models.py", line 3, in <module>
    from mptt.models import MPTTModel, TreeForeignKey
  File "C:\py_web_proj\ecommerce\venv\lib\site-packages\mptt\models.py", line 15, in <module>
    from mptt.fields import TreeForeignKey, TreeManyToManyField, TreeOneToOneField
  File "C:\py_web_proj\ecommerce\venv\lib\site-packages\mptt\fields.py", line 6, in <module>
    from mptt.forms import TreeNodeChoiceField, TreeNodeMultipleChoiceField
  File "C:\py_web_proj\ecommerce\venv\lib\site-packages\mptt\forms.py", line 11, in <module>
    from mptt.settings import DEFAULT_LEVEL_INDICATOR
  File "C:\py_web_proj\ecommerce\venv\lib\site-packages\mptt\settings.py", line 5, in <module>
    DEFAULT_LEVEL_INDICATOR = getattr(settings, "MPTT_DEFAULT_LEVEL_INDICATOR", "---")
  File "C:\py_web_proj\ecommerce\venv\lib\site-packages\django\conf\__init__.py", line 92, in __getattr__
    self._setup(name)
  File "C:\py_web_proj\ecommerce\venv\lib\site-packages\django\conf\__init__.py", line 72, in _setup
    raise ImproperlyConfigured(
django.core.exceptions.ImproperlyConfigured: Requested setting MPTT_DEFAULT_LEVEL_INDICATOR, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.

Часть кода моделей, из-за которого, предположительно, может появляться ошибка(файл models в приложении store):

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
from django.db import models
from django.urls import reverse
from mptt.models import MPTTModel, TreeForeignKey
from django.utils.translation import gettext_lazy as _
from django.conf import settings
 
 
class Category(MPTTModel):
    """
    Category Table implimented with MPTT.
    """
 
    name = models.CharField(
        verbose_name=_("Category Name"),
        help_text=_("Required and unique"),
        max_length=255,
        unique=True,
    )
    slug = models.SlugField(verbose_name=_("Category safe URL"), max_length=255, unique=True)
    parent = TreeForeignKey("self", on_delete=models.CASCADE, null=True, blank=True, related_name="children")
    is_active = models.BooleanField(default=True)
 
    class MPTTMeta:
        order_insertion_by = ["name"]
 
    class Meta:
        verbose_name = _("Category")
        verbose_name_plural = _("Categories")
 
    def get_absolute_url(self):
        return reverse("store:category_list", args=[self.slug])
 
    def __str__(self):
        return self.name
 
 
class ProductType(models.Model):
    """
    ProductType Table will provide a list of the different types
    of products that are for sale.
    """
 
    name = models.CharField(verbose_name=_("Product Name"), help_text=_("Required"), max_length=255, unique=True)
    is_active = models.BooleanField(default=True)
 
    class Meta:
        verbose_name = _("Product Type")
        verbose_name_plural = _("Product Types")
 
    def __str__(self):
        return self.name

Файл conftest.py, расположенный в корневом каталоге:

Python
1
2
3
4
5
6
7
8
9
10
11
import pytest
from pytest_factoryboy import register
from tests.factories import CategoryFactory
 
register(CategoryFactory)
 
 
@pytest.fixture
def product_category(db, category_factory):
    category = category_factory.create()
    return category

файл test_store_model, расположенный в пакете tests, в приложении store:

Python
1
2
3
4
5
import pytest
 
 
def test_store_category_string(product_category):
    assert product_category.__str__() == 'django'

файл factories.py, расположенный в корневой директории core, в пакете tests:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
import factory
from store.models import Category
from faker import Faker
 
fake = Faker()
 
 
class CategoryFactory(factory.django.DjangoModelFactory):
    class Meta:
        model = Category
 
    name = 'django'
    slug = 'django'

дерево проекта:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
C:.
├───.pytest_cache
│   └───v
│       └───cache
├───account
│   ├───migrations
│   │   └───__pycache__
│   └───__pycache__
├───basket
│   ├───migrations
│   │   └───__pycache__
│   └───__pycache__
├───core
│   └───__pycache__
├───htmlcov
├───orders
│   ├───migrations
│   │   └───__pycache__
│   └───__pycache__
├───payment
│   ├───migrations
│   │   └───__pycache__
│   └───__pycache__
├───store
│   ├───migrations
│   │   └───__pycache__
│   ├───static
│   │   └───store
│   │       ├───css
│   │       ├───img
│   │       └───js
│   ├───templates
│   │   ├───account
│   │   │   ├───registration
│   │   │   └───user
│   │   ├───payment
│   │   └───store
│   │       ├───basket
│   │       └───products
│   ├───tests
│   │   └───__pycache__
│   └───__pycache__
├───tests
│   └───__pycache__
└───__pycache__
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.04.2023, 10:33
Ответы с готовыми решениями:

Настроить авторизацию через социальные сети в django с помощью Django Social Auth
Пытаюсь настроить авторизацию через социальные сети в django с помощью Django Social Auth, но вылетаю с ошибкой WrongBackend, не работает...

Ошибка django: DoesNotExist at /catalog/ django
Здравствуйте. Пишу простейший сайт на django. Пока в нем есть верхняя панель навигации и боковое меню слева, содержание которого меняется в...

Как поменялся синтаксис от применения django.conf.urls.url к django.urls.path?
Всем привет! Изучаю Django, действую гайдам. В гайде в urlpatterns пути прописывают через url. Но были старые версии. Как же сейчас...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.04.2023, 10:33
Помогаю со студенческими работами здесь

Django-admin : Имя "django-admin" не распознано как имя командлета, функции, файла сценария или выполняемой программы
Точнее я уже установила Django, но вот что он мне выводит, после того как пишу &quot;django-admin startproject&quot; FirstDjango в Terminal...

pytest FileNotFoundError
file_workers/py def read_from_file(filepath): with open(filepath, 'r') as f_o: return f_o.readlines() ...

Pytest в Pycharm
Помогите разобраться: Нужно написать тест на Pytest в Pysharm, но он выдает ошибку. Вроде догадываюсь что дело в input(), но как нужно...

FastAPI и pytest
Использовал инструкцию https://www.fastapitutorial.com/blog/unit-testing-in-fastapi/ но что-то не взлетело conftest.py: import...

Функция setup и pytest
Приветствую! Собственно ситуация, когда не использую функцию setup() со своим словарем, вложенный кортеж - все работает, тесты...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru