Skip to content

Vitaliy951/pythonProject6

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Описание проекта

Данный проект возник из домашнего задания:

  • Создайте новые ветки в вашем репозитории для работы по 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'

Работа с Git и GitHub

  • Домашка сдана через pull request из ветки домашней работы в ветку develop.

  • Создан GitHub-репозиторий. В репозитории на GitHub есть ветки main и develop . Разработка велась в ветке с префиксом feature.

  • Соблюдается точечность коммитов

    • в pull request более 2 коммитов.
    • В репозитории есть оформленный по правилам README-файл с описанием проекта.
    • В коммиты не добавлены игнорируемые файлы.

Используйте библиотеку pytest и напишите тесты для существующего кода проекта. Ниже приведены примеры тест-кейсов. Вы можете использовать их или реализовать свои.


Покрытие тестами

Примеры тест-кейсов для существующего функционала

Модуль masks

Функция get_mask_card_number:

  • Тестирование правильности маскирования номера карты.
    • Проверка работы функции на различных входных форматах номеров карт, включая граничные случаи и нестандартные длины номеров.
    • Проверка, что функция корректно обрабатывает входные строки, где отсутствует номер карты.

Функция get_mask_account:

  • Тестирование правильности маскирования номера счета.
    • Проверка работы функции с различными форматами и длинами номеров счетов.
    • Проверка, что функция корректно обрабатывает входные данные, где номер счета меньше ожидаемой длины.

Модуль widget

Функция mask_account_card:

  • Тесты для проверки, что функция корректно распознает и применяет нужный тип маскировки в зависимости от типа входных данных (карта или счет). Параметризованные тесты с разными типами карт и счетов для проверки универсальности функции. Тестирование функции на обработку некорректных входных данных и проверка ее устойчивости к ошибкам.

Функция get_date:

  • Тестирование правильности преобразования даты. Проверка работы функции на различных входных форматах даты, включая граничные случаи и нестандартные строки с датами. Проверка, что функция корректно обрабатывает входные строки, где отсутствует дата.

Модуль processing

Функция filter_by_state:

  • Тестирование фильтрации списка словарей по заданному статусу state.

  • Проверка работы функции при отсутствии словарей с указанным статусом state в списке.

  • Параметризация тестов для различных возможных значений статуса state.

Функция sort_by_date:

  • Тестирование сортировки списка словарей по датам в порядке убывания и возрастания. Проверка корректности сортировки при одинаковых датах. Тесты на работу функции с некорректными или нестандартными форматами дат.

Общие аспекты тестирования

  • Фикстуры.

    • Для всех тестов создайте фикстуры, которые предоставят тестовые данные для списков словарей, включая различные случаи и комбинации state и date.


  • Покрытие тестами.

    • Убедитесь, что все ветви кода и исключения, которые могут быть сгенерированы вашими функциями, тестируются.

    • Примените фикстуры для создания необходимых входных данных для тестов. Используйте параметризацию в тестах для обеспечения тестирования функциональности с различными входными данными, избегайте дублирования кода. Добейтесь покрытия тестами не менее 80% кода.


About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages