Skip to content

Скрипт для получения логов со стороннего ресурса

Notifications You must be signed in to change notification settings

Interligo/script-to-get-logs

Repository files navigation

Тестовое задание

GRAFFIT. Тестовое задание на Python разрабочика. Март 2021 г.

Python 3.8 Tests

Задачи:

  1. Реализовать HTTP запрос на сервис получения логов и разбор ответа. Дата логов — параметр;
  2. Реализовать сортировку полученного ответа по дате создания записи. Необходимо самому реализовать алгоритм сортировки, не пользуясь встроенными в Python функциями, а также сторонними модулями. Сложность Вашего алгоритма должна быть меньше, чем O(n2);
  3. Спроектировать схему базы данных для хранения полученных логов;
  4. Реализовать запись в спроектированную БД полученных логов;
  5. Написать 2-3 модульных теста, используя любую из известных Вам библиотек, для тестирования данных в логах. При написании тестов использовать mock объект;
  6. Реализовать обработку возможных исключений;
  7. Выбрать любой разработанный Вами метод и реализовать логирование факта его вызова;
  8. Класс должен иметь точку входа — публичный метод, принимающий дату логов в качестве аргумента;
  9. Сделать краткое описание того, на что, как Вы считаете, в Вашем решении стоит обратить внимание.

Краткое описание скрипта:

Учитывая запрет на использование встроенных функций сортировки, остановил свой выбор на быстрой сортировке, поскольку считаю её наиболее приемлимой для такой задачи.

Из-за удобства и быстроты развертывания выбрал SQLite и unittest. С тестами можно ознакомиться в файле tests.py.

Логгирование настроено на запись логов в файл script_logs.txt. На мой взгляд, записывается вся важная информация о работе скрипта.

Точка входа, классически, расположена в файле main.py, где одноименная функция, в свою очередь, открывает доступ к методу make_analysis класса LogsAnalyzer.

Установка и использование:

  • Клонировать этот репозиторий;
  • Установить зависимости и виртуальное окружение;
  • Запустить main.py и указать дату.

About

Скрипт для получения логов со стороннего ресурса

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages