Skip to content

sgsolar/ttoolly

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 

Repository files navigation

ttoolly

Django test tools

Наборы стандартных проверок для Django-форм

Описание тестовых классов и их параметров для описания форм

GlobalTestMixIn

название поля значение по умолчанию описание пример использования
all_unique None не использовать
choice_fields_values {} варианты значений для select, multiselect полей choice_fields_values = {'field1': (value1, value2)}
custom_error_messages {} Кастомные сообщения для определенных полей custom_error_messages = {'field1': {message_type: u"Текст сообщения об ошибке."}}
errors [] не переопределять (хранит значения ошибок для текущего теста)
FILE_FIELDS ('file', 'filename', 'image', 'preview') названия файловых полей
files [] список файлов в текущем тесте (используется для закрытия файлов в конце каждого теста) f = open(filename); self.fields.append(f)
IMAGE_FIELDS ('image', 'preview', 'photo') названия полей изображений
maxDiff None unittest.TestCase.maxDiff
non_field_error_key '_all_' поле, в котором возвращаются общие (не привязанные к конкретному полю) для формы ошибки
unique_fields None список уникальных полей unique_fields = ('field1', ('field2', 'field3'), 'field4')

FormTestMixIn(GlobalTestMixIn)

название поля значение по умолчанию описание пример использования включает проверки
obj None модель, для котороый выполняются все проверки. Является необходимым для запуска любого теста
additional_params {} Дополнительные параметры для всех выполняющихся в тестах запросов additional_params = {'HTTP_X_REQUESTED_WITH': 'XMLHttpRequest'}
all_fields default_params.keys() Список всех полей, которые должны присутствовать на форме. all_fields = ('field1', 'field2') Проверка наличия полей на форме. Все поля заполнены (исключаются указанные в one_of_fields)
all_fields_add all_fields or default_params_add.keys() Список всех полей, которые должны присутствовать на форме создания all_fields_add = ('field1', 'field2')
all_fields_edit all_fields or default_params_edit.keys() Список всех полей, которые должны присутствовать на форме редактирования all_fields_edit = ('field1', 'field2')
choice_fields [] Список select полей choice_fields = ('field1', 'field2') Невалидные значения в полях (строка, число)
choice_fields_add choice_fields Список select полей на форме создания choice_fields_add = ('field1', 'field2')
choice_fields_edit choice_fields Список select полей на форме редактирования choice_fields_edit = ('field1', 'field2')
choice_fields_with_value_in_error [] Список select полей, при вводе невалидного значения в которых сообщение об ошибке содержит введенное значение choice_fields_with_value_in_error = ('field1', 'field2') Невалидные значения в полях (строка, число)
choice_fields_add_with_value_in_error choice_fields_with_value_in_error Список select полей на странице создания, при вводе невалидного значения в которых сообщение об ошибке содержит введенное значение choice_fields_add_with_value_in_error = ('field1', 'field2')
choice_fields_edit_with_value_in_error choice_fields_with_value_in_error Список select полей на странице создания, при вводе невалидного значения в которых сообщение об ошибке содержит введенное значение choice_fields_edit_with_value_in_error = ('field1', 'field2')
default_params {} Параметры по умолчанию, которые используются при создании/редактировании объекта default_params = {'field1': value1, 'field2: value2}
default_params_add default_params Параметры по умолчанию, которые используются при создании объекта default_params_add = {'field1': value1, 'field2: value2}
default_params_edit default_params Параметры по умолчанию, которые используются при редактировании объекта default_params_edit = {'field1': value1, 'field2: value2}
date_fields Ключи из default_params_add, default_params_edit, значения из all_fields_add, all_fields_edit, содержащие в названии 'date' Названия полей, содержащих даты date_fields = ('field1', 'field2')
digital_fields None Названия полей, содержащих числа digital_fields = ('field1', 'field2') Позитивные: Максимальные, минимальные числовые значения
Негативные: Значения больше максимального, меньше минимального, строки
digital_fields_add digital_fields или default_params_add.keys(), для которых значения являются числами и не указаны в choice_fields_add, choice_fields_add_with_value_in_error Названия полей на форме создания, содержащих числа digital_fields_add = ('field1', 'field2')
digital_fields_edit digital_fields или default_params_edit.keys(), для которых значения являются числами и не указаны в choice_fields_edit, choice_fields_edit_with_value_in_error Названия полей на форме редактирования, содержащих числа digital_fields_edit = ('field1', 'field2')
disabled_fields None Названия полей, выводящихся на форме, но недоступных для редактирования disabled_fields = ('field1', 'field2') Наличие полей на форме. Попытка передать значения в недоступных полях при сохранении
disabled_fields_add disabled_fields Названия полей, выводящихся на форме создания, но недоступных для редактирования disabled_fields_add = ('field1', 'field2')
disabled_fields_edit disabled_fields Названия полей, выводящихся на форме редактирования, но недоступных для редактирования disabled_fields_edit = ('field1', 'field2')
email_fields None Названия полей для ввода email email_fields = ('field1', 'field2') Невалидные (строка, не являющаяся email'ом) значения в полях
email_fields_add email_fields или ключи из default_params_add, содержащие в названии 'email' Названия полей для ввода email на форме создания email_fields_add = ('field1', 'field2')
email_fields_edit email_fields или ключи из default_params_edit, содержащие в названии 'email' Названия полей для ввода email на форме редактирования email_fields_edit = ('field1', 'field2')
exclude_from_check [] Названия полей, которые нужно исключить из проверки значений во всех тестах. Актуально, например, для полей, содержащих дату обновления объекта exclude_from_check = ('field1', 'field2')
exclude_from_check_add exclude_from_check Названия полей, которые нужно исключить из проверки значений в тестах создания объекта exclude_from_check_add = ('field1', 'field2')
exclude_from_check_edit exclude_from_check Названия полей, которые нужно исключить из проверки значений в тестах редактирования объекта exclude_from_check_edit = ('field1', 'field2')
filter_params None Названия параметров для фильтрации списка объектов filter_params = ('filter_name1', ('filter_name2', 'any_valid_value'), ) Для тестов должен быть задан также url_list. Проверка с пустым, либо указанным в параметрах значением. Проверка со случайными значениями. В любом случае ожидается ответ 200
hidden_fields None Названия полей, выводящихся на форме в скрытом виде hidden_fields = ('field1', 'field2') Проверка наличия полей на форме
hidden_fields_add hidden_fields Названия полей, выводящихся на форме создания в скрытом виде hidden_fields_add = ('field1', 'field2')
hidden_fields_edit hidden_fields Названия полей, выводящихся на форме редактирования в скрытом виде hidden_fields_edit = ('field1', 'field2')
int_fields None Названия полей, содержащих целые числа int_fields = ('field1', 'field2') см. digital_fields
int_fields_add int_fields или поля из digital_fields_add, для которых значения полей в default_params_add целочисленные Названия полей на форме создания, содержащих целые числа int_fields_add = ('field1', 'field2')
int_fields_edit int_fields или поля из digital_fields_edit, для которых значения полей в default_params_edit целочисленные Названия полей на форме редактирования, содержащих целые числа int_fields_edit = ('field1', 'field2')
max_fields_length [] Список названий полей и максимальной допустимой длины значений (для текстовых) или максимального допустимого значения (для числовых) в них max_fields_length = (('string_field_name', 100), ('digital_field_name', 99999)) Максимальные значения (для файловых полей в тестах редактирования сохранение и проверка выполняется дважды). Значения больше максимальных.
min_fields_length [] Список названий полей и минимальной допустимой длины значений (для текстовых) или минимального допустимого значения (для числовых) в них max_fields_length = (('string_field_name', 5), ('digital_field_name', -1)) Минимальные значения. Значения меньше минимальных
multiselect_fields None Список multiselect полей multiselect_fields = ('field1', 'field2') Невалидные значения (число)
multiselect_fields_add multiselect_fields или default_params_add.keys() если значения для них являются списками Список multiselect полей на форме создания multiselect_fields_add = ('field1', 'field2')
multiselect_fields_edit multiselect_fields или default_params_edit.keys() если значения для них являются списками Список multiselect полей на форме редактирования multiselect_fields_edit = ('field1', 'field2')
one_of_fields None Список наборов полей, которые могут быть заполнены только отдельно друг от друга one_of_fields = (('field1', 'field2'), ('field1', 'field3', 'field4')) Заполнено одно из группы. Одновременно заполненные поля (если связанных полей больше трех, разбиваются также попарно)
one_of_fields_add one_of_fields Список наборов полей, которые могут быть заполнены только отдельно друг от друга на форме создания one_of_fields_add = (('field1', 'field2'), ('field1', 'field3', 'field4'))
one_of_fields_edit one_of_fields Список наборов полей, которые могут быть заполнены только отдельно друг от друга на форме редактирования one_of_fields_edit = (('field1', 'field2'), ('field1', 'field3', 'field4'))
required_fields None Обязательные для заполнения поля. required_fields = ('field1', 'field2') Заполнены только обязательные поля. Одно из обязательных полей (выполняется для всех) не заполнено. Одно из обязательных полей (выполняется для всех) отсутствует
required_fields_add required_fields или default_params_add.keys() Обязательные для заполнения поля на форме создания required_fields_add = ('field1', 'field2')
required_fields_edit required_fields или default_params_edit.keys() Обязательные для заполнения поля на форме редактирования required_fields_edit = ('field1', 'field2')
unique_fields None список уникальных полей unique_fields = ('field1', ('field2', 'field3'), 'field4') Объект с такими полями уже существует. Для текстовых полей проверяется также в uppercase
unique_fields_add unique_fields (учитывается наличие в all_fields_add) Cписок уникальных полей на форме создания unique_fields_add = ('field1', ('field2', 'field3'), 'field4')
unique_fields_edit unique_fields (учитывается наличие в all_fields_edit) Cписок уникальных полей на форме редактирования unique_fields_edit = ('field1', ('field2', 'field3'), 'field4')
url_list URL, на котором находится список объектов, например, в админке. Включает все тесты, связанные со списком url_list = 'modelname:url_name' или url_list = '/path/to/list/'
with_captcha Наличие поля 'captcha' в all_fields или в all_fields_add или в all_fields_edit Используется ли капча на форме. Если True, во всех тестах отправляемые параметры дополняются полями капчи

FormAddTestMixIn(FormTestMixIn)

название поля значение по умолчанию описание пример использования
url_add '' URL, по которому добавляются объекты. Включает все тесты на добавление url_add = 'modelname:url_name_add' или url_add = '/path/to/add/'

FormEditTestMixIn(FormTestMixIn)

название поля значение по умолчанию описание пример использования
url_edit '' URL, по которому редактируются объекты. Включает все тесты на редактирование url_edit = 'modelname:url_name_change' или url_edit = '/path/to/edit/1/' (в этом случае по умолчанию для редактирования будет браться объект с pk=1)

FormDeleteTestMixIn(FormTestMixIn)

название поля значение по умолчанию описание пример использования
url_delete '' URL, по которому удаляются объекты url_delete = 'modelname:url_name_delete' или url_delete = '/path/to/delete/1/'

FormRemoveTestMixIn(FormTestMixIn)

Тесты для объектов, удаление которых происходит в корзину

название поля значение по умолчанию описание пример использования
url_delete '' URL, по которому удаляются объекты url_delete = 'modelname:url_name_remove' или url_delete = '/path/to/remove/1/'
url_recovery '' URL, по которому выполняется восстановление объекта url_recovery = 'modelname:url_name_recovery' или url_recovery = '/path/to/recovery/1/'
url_edit_in_trash '' URL, по которому открывается страница редактирования объекта в корзине url_edit_in_trash = 'modelname:url_name_trash_edit' или url_edit_in_trash = '/path/to/trash/edit/1/'

FileTestMixIn(FormTestMixIn)

название поля значение по умолчанию описание пример использования
file_fields_params {} Параметры файловых полей file_fields_params = {'field_name': {'extensions': ('jpg', 'txt'),
'max_count': 3,
'one_max_size': '3Mb',
'wrong_extensions': ('rar', 'zip'),
'min_width': 200,
'min_height': 100}}

file_fields_params

название поля описание включает проверки
extensions разрешенные расширения Все валидные расширения. Невалидные расширения.
wrong_extensions дополнительные невалидные расширения Добавляет значения для проверки в тесте невалидных расширений
max_count максимальное количество файлов (для полей с множественным выбором файлов) Максимальное число файлов. Число файлов больше максимального
one_max_size максимальный размер файла (одного файла для полей с множественным выбором файлов) Максимальный размер файла. Размер файла больше максимального
min_width минимальная ширина изображения Изображение с минимальной шириной. Изображение с шириной меньше минимальной
min_height минимальная высота изображения Изображение с минимальной высотой. Изображение с высотой меньше минимальной

About

Django test tools

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%