# ttoolly
[![Build Status](https://travis-ci.org/pefremova/ttoolly.svg?branch=django1.10)](https://travis-ci.org/pefremova/ttoolly) [![Coverage Status](https://coveralls.io/repos/github/pefremova/ttoolly/badge.svg?branch=django1.10)](https://coveralls.io/github/pefremova/ttoolly?branch=django1.10)
Django test tools. Django >= 1.8
Наборы стандартных проверок для Django-форм
Пример теста <a href="/tests/tests_for_project.py">tests/tests_for_project.py</a>
### Описание тестовых классов и их параметров для описания форм
__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 | [] | не переопределять (хранит значения ошибок для текущего теста) | |
|files | [] | список файлов в текущем тесте (используется для закрытия файлов в конце каждого теста) | f = open(filename); self.fields.append(f) |
|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') |
| datetime_fields | () | Названия полей, содержащих datetime| datetime_fields = ('field1', 'field2') |
| digital_fields| None | Названия полей, содержащих числа | digital_fields = ('field1', 'field2') | Позитивные: Максимальные, минимальные числовые значения<br>Негативные: Значения больше максимального, меньше минимального, строки |
| 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 | Названия полей, выводящихся на форме редак