feat: обновления парсеров, тестов и миграций
Some checks failed
CI/CD Pipeline / Run Tests (push) Failing after 37s
CI/CD Pipeline / Code Quality Checks (push) Failing after 43s
CI/CD Pipeline / Build & Push Images (push) Has been skipped
CI/CD Pipeline / Deploy (dev) (push) Has been skipped
CI/CD Pipeline / Deploy (prod) (push) Has been skipped
CI/CD Pipeline / Code Quality Checks (pull_request) Failing after 0s
CI/CD Pipeline / Run Tests (pull_request) Failing after 0s
CI/CD Pipeline / Build & Push Images (pull_request) Has been skipped
CI/CD Pipeline / Deploy (dev) (pull_request) Has been skipped
CI/CD Pipeline / Deploy (prod) (pull_request) Has been skipped
Some checks failed
CI/CD Pipeline / Run Tests (push) Failing after 37s
CI/CD Pipeline / Code Quality Checks (push) Failing after 43s
CI/CD Pipeline / Build & Push Images (push) Has been skipped
CI/CD Pipeline / Deploy (dev) (push) Has been skipped
CI/CD Pipeline / Deploy (prod) (push) Has been skipped
CI/CD Pipeline / Code Quality Checks (pull_request) Failing after 0s
CI/CD Pipeline / Run Tests (pull_request) Failing after 0s
CI/CD Pipeline / Build & Push Images (pull_request) Has been skipped
CI/CD Pipeline / Deploy (dev) (pull_request) Has been skipped
CI/CD Pipeline / Deploy (prod) (pull_request) Has been skipped
- Обновлены клиенты парсеров (checko, fns, minpromtorg, proverki, zakupki) - Добавлены новые миграции для моделей - Расширено покрытие тестами - Обновлены конфигурации и настройки проекта - Добавлены утилиты для тестирования Co-Authored-By: Warp <agent@warp.dev>
This commit is contained in:
@@ -5,6 +5,8 @@ from apps.core.services import (
|
||||
BulkOperationsMixin,
|
||||
QueryOptimizerMixin,
|
||||
)
|
||||
from django.contrib.auth import get_user_model
|
||||
from django.db.models import OuterRef
|
||||
from django.test import TestCase
|
||||
from faker import Faker
|
||||
|
||||
@@ -65,6 +67,41 @@ class QueryOptimizerMixinTest(TestCase):
|
||||
self.assertEqual(QueryOptimizerMixin.default_only, [])
|
||||
self.assertEqual(QueryOptimizerMixin.default_defer, [])
|
||||
|
||||
def test_optimizer_methods_execute(self):
|
||||
User = get_user_model()
|
||||
|
||||
class UserService(QueryOptimizerMixin):
|
||||
model = User
|
||||
prefetch_related = ["groups"]
|
||||
default_only = ["id", "email"]
|
||||
default_defer = ["password"]
|
||||
|
||||
qs = UserService.get_optimized_queryset()
|
||||
self.assertIsNotNone(qs)
|
||||
|
||||
qs_no_opts = UserService.apply_optimizations(
|
||||
User.objects.all(),
|
||||
include_select=False,
|
||||
include_prefetch=False,
|
||||
include_only=False,
|
||||
include_defer=False,
|
||||
)
|
||||
self.assertIsNotNone(qs_no_opts)
|
||||
|
||||
qs_list = UserService.get_list_queryset()
|
||||
qs_detail = UserService.get_detail_queryset()
|
||||
self.assertIsNotNone(qs_list)
|
||||
self.assertIsNotNone(qs_detail)
|
||||
|
||||
qs_counts = UserService.with_counts(User.objects.all(), "groups")
|
||||
self.assertIsNotNone(qs_counts)
|
||||
|
||||
qs_exists = UserService.with_exists(
|
||||
User.objects.all(),
|
||||
has_self=User.objects.filter(pk=OuterRef("pk")),
|
||||
)
|
||||
self.assertIsNotNone(qs_exists)
|
||||
|
||||
|
||||
class BulkOperationsIntegrationTest(TestCase):
|
||||
"""Интеграционные тесты для bulk операций с BackgroundJob."""
|
||||
|
||||
Reference in New Issue
Block a user