104 lines
3.8 KiB
Python
104 lines
3.8 KiB
Python
# DRF Rack
|
|
# Библиотека классов расширений для Django REST Framework
|
|
#
|
|
# Автор: Николай В. Анохин <n.anokhin@xeaf.net>
|
|
# Все права защищены. Лицензия: 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)
|