feat: add parser source dashboard and scheduling
Some checks failed
CI/CD Pipeline / Code Quality Checks (pull_request) Failing after 9s
CI/CD Pipeline / Run Tests (pull_request) Failing after 48s
CI/CD Pipeline / Build Docker Images (pull_request) Has been skipped
CI/CD Pipeline / Push to Gitea Registry (pull_request) Has been skipped

This commit is contained in:
2026-04-27 23:36:28 +02:00
parent 199d871923
commit c9b350da1e
96 changed files with 15014 additions and 268 deletions

View File

@@ -1,7 +1,7 @@
"""Tests for core services"""
from apps.core.exceptions import NotFoundError
from apps.core.services import BaseService
from apps.core.services import BaseService, BulkOperationsMixin
from django.contrib.auth import get_user_model
from django.test import TestCase
@@ -14,6 +14,12 @@ class UserTestService(BaseService[User]):
model = User
class UserBulkTestService(BulkOperationsMixin, BaseService[User]):
"""Test bulk service using User model"""
model = User
class BaseServiceTest(TestCase):
"""Tests for BaseService"""
@@ -21,7 +27,7 @@ class BaseServiceTest(TestCase):
self.user = User.objects.create_user(
username="testuser",
email="test@example.com",
password="testpass123",
password="testpass123", # noqa: S106
)
def test_get_by_id_success(self):
@@ -53,7 +59,7 @@ class BaseServiceTest(TestCase):
User.objects.create_user(
username="testuser2",
email="test2@example.com",
password="testpass123",
password="testpass123", # noqa: S106
)
result = UserTestService.get_all()
@@ -101,3 +107,24 @@ class BaseServiceTest(TestCase):
UserTestService.delete(self.user)
self.assertFalse(User.objects.filter(pk=user_pk).exists())
class BulkOperationsMixinTest(TestCase):
"""Tests for bulk operation helpers."""
def test_bulk_create_rejects_update_conflicts_on_django_3(self):
"""Test Django 4-only bulk upsert API is not exposed as working."""
instances = [
User(
username="bulk-user",
email="bulk@example.com",
)
]
with self.assertRaises(NotImplementedError):
UserBulkTestService.bulk_create_chunked(
instances,
update_conflicts=True,
update_fields=["email"],
unique_fields=["username"],
)