Данный проект возник из домашнего задания:
- Создайте новые ветки в вашем репозитории для работы по GitFlow. Создайте новый репозиторий на GitHub, который будет использоваться для хранения и совместной работы над вашим проектом. Залейте содержимое вашего локального репозитория в созданный репозиторий на GitHub, используя команды git add , git commit и git push 1.
-
В директории src вашего проекта создайте модуль processing , который будет содержать новые функции обработки данных.
-
В модуле processing напишите функцию filter_by_state , которая принимает список словарей и опционально значение для ключа state (по умолчанию 'EXECUTED').
-
Функция возвращает новый список словарей, содержащий только те словари, у которых ключ state соответствует указанному значению.
- В модуле напишите функцию sort_by_date , которая принимает список словарей и необязательный параметр, задающий порядок сортировки (по умолчанию — убывание). Функция должна возвращать новый список, отсортированный по дате ( date ).
- Выход функции (сортировка по убыванию, т. е. сначала самые последние операции) [{'id': 41428829, 'state': 'EXECUTED', 'date': '2019-07-03T18:35:29.512364'}, {'id': 615064591, 'state': 'CANCELED', 'date': '2018-10-14T08:21:33.419441'}, {'id': 594226727, 'state': 'CANCELED', 'date': '2018-09-12T21:27:25.241689'}, {'id': 939719570, 'state': 'EXECUTED', 'date': '2018-06-30T02:08:58.425572'}]
- [{'id': 41428829, 'state': 'EXECUTED', 'date': '2019-07-03T18:35:29.512364'}, {'id': 939719570, 'state': 'EXECUTED', 'date': '2018-06-30T02:08:58.425572'}, {'id': 594226727, 'state': 'CANCELED', 'date': '2018-09-12T21:27:25.241689'}, {'id': 615064591, 'state': 'CANCELED', 'date': '2018-10-14T08:21:33.419441'}]
- Функция принимает на вход список словарей с данными о банковских операциях и параметр state , возвращает новый список, содержащий только те словари, у которых ключ state содержит переданное в функцию значение. Параметр state функции имеет значение по умолчанию 'EXECUTED'.
- Функция принимает на вход список словарей и параметр порядка сортировки, возвращает новый список, в котором исходные словари отсортированы по дате. Параметр порядка сортировки функции имеет значение по умолчанию 'True'
-
Домашка сдана через pull request из ветки домашней работы в ветку develop.
-
Создан GitHub-репозиторий. В репозитории на GitHub есть ветки main и develop . Разработка велась в ветке с префиксом feature.
-
Соблюдается точечность коммитов
- в pull request более 2 коммитов.
- В репозитории есть оформленный по правилам README-файл с описанием проекта.
- В коммиты не добавлены игнорируемые файлы.
Используйте библиотеку pytest и напишите тесты для существующего кода проекта. Ниже приведены примеры тест-кейсов. Вы можете использовать их или реализовать свои.
Примеры тест-кейсов для существующего функционала
- Тестирование правильности маскирования номера карты.
- Проверка работы функции на различных входных форматах номеров карт, включая граничные случаи и нестандартные длины номеров.
- Проверка, что функция корректно обрабатывает входные строки, где отсутствует номер карты.
- Тестирование правильности маскирования номера счета.
- Проверка работы функции с различными форматами и длинами номеров счетов.
- Проверка, что функция корректно обрабатывает входные данные, где номер счета меньше ожидаемой длины.
- Тесты для проверки, что функция корректно распознает и применяет нужный тип маскировки в зависимости от типа входных данных (карта или счет). Параметризованные тесты с разными типами карт и счетов для проверки универсальности функции. Тестирование функции на обработку некорректных входных данных и проверка ее устойчивости к ошибкам.
- Тестирование правильности преобразования даты. Проверка работы функции на различных входных форматах даты, включая граничные случаи и нестандартные строки с датами. Проверка, что функция корректно обрабатывает входные строки, где отсутствует дата.
-
Тестирование фильтрации списка словарей по заданному статусу state.
-
Проверка работы функции при отсутствии словарей с указанным статусом state в списке.
-
Параметризация тестов для различных возможных значений статуса state.
- Тестирование сортировки списка словарей по датам в порядке убывания и возрастания. Проверка корректности сортировки при одинаковых датах. Тесты на работу функции с некорректными или нестандартными форматами дат.
-
Фикстуры.
- Для всех тестов создайте фикстуры, которые предоставят тестовые данные для списков словарей, включая различные случаи и комбинации state и date.
-
Покрытие тестами.
-
Убедитесь, что все ветви кода и исключения, которые могут быть сгенерированы вашими функциями, тестируются.
-
Примените фикстуры для создания необходимых входных данных для тестов. Используйте параметризацию в тестах для обеспечения тестирования функциональности с различными входными данными, избегайте дублирования кода. Добейтесь покрытия тестами не менее 80% кода.
-