Добавлены тесты для Environment
This commit is contained in:
103
net/xeaf/rack/tests/utils/_model_utils_mocks.py
Normal file
103
net/xeaf/rack/tests/utils/_model_utils_mocks.py
Normal file
@@ -0,0 +1,103 @@
|
||||
# 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)
|
||||
Reference in New Issue
Block a user