# DRF Rack # Библиотека классов расширений для Django REST Framework # # Автор: Николай В. Анохин # Все права защищены. Лицензия: MIT """ Описание mock-классов для тестов ModelUtils """ from django.db import models from django.db.models import Model class TestSampleModel(Model): """ Вспомогательный mock-класс модели для тестирования методов ModelUtils. Предназначен для сценариев, где data является экземпляром модели. Имитирует базовую модель Django с полями id, name и description. """ class Meta: app_label = "test_app" managed = False id = models.IntegerField(primary_key=True, default=1) name = models.CharField(max_length=100, default="test_name") description = models.CharField(max_length=255, default="test_description") def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) class TestEmptyModel(Model): """ Вспомогательный mock-класс пустой модели для тестирования граничных случаев. Предназначен для сценариев, где модель не содержит полей. """ class Meta: app_label = "test_app" managed = False def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) class TestModelWithExtraFields(Model): """ Вспомогательный mock-класс модели с дополнительными полями. Предназначен для сценариев, где необходимо проверить работу с полями, которые могут отсутствовать в целевом словаре. """ class Meta: app_label = "test_app" managed = False id = models.IntegerField(primary_key=True, default=1) name = models.CharField(max_length=100, default="test_name") email = models.EmailField(max_length=255, default="test@example.com") is_active = models.BooleanField(default=True) def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) class TestModelWithSpecialFields(Model): """ Вспомогательный mock-класс модели с полями специальных типов. Предназначен для проверки корректной обработки полей с None значениями и полей, которые могут быть не установлены. """ class Meta: app_label = "test_app" managed = False id = models.IntegerField(primary_key=True, default=1) nullable_field = models.CharField(max_length=100, null=True, blank=True, default=None) boolean_field = models.BooleanField(default=False) def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) class TestModelWithDifferentFieldTypes(Model): """ Вспомогательный mock-класс модели с полями различных типов. Предназначен для проверки корректной обработки разнотипных полей. """ class Meta: app_label = "test_app" managed = False id = models.IntegerField(primary_key=True, default=1) integer_field = models.IntegerField(default=0) float_field = models.FloatField(default=0.0) text_field = models.TextField(default="") boolean_field = models.BooleanField(default=False) date_field = models.DateField(null=True, blank=True) datetime_field = models.DateTimeField(null=True, blank=True)