Skip to content

LouiMilvus/test_task_library

Repository files navigation

Библиотечная система (Library System)

Это приложение представляет собой простую библиотечную систему для добавления, удаления и поиска книг, а также обновления статуса книги (например, "в наличии" или "выдана"). Приложение использует Python и Docker для контейнеризации, а также юнит-тесты для проверки функционала.

Структура проекта

test_task_library/
├── Dockerfile # Docker образ для приложения
├── book.py # Класс Book и перечисление BookStatus
├── library.py # Класс Library
├── main.py # Основное приложение
├── storage.json # Файл для хранения данных
└── tests/
----├── __init__.py # Делает папку tests модулем

----├── test_book.py # Тесты для класса Book

----└── test_library.py # Тесты для класса Library

Файлы проекта

  • book.py: Содержит класс Book с аттрибутами, такими как ID, название, автор, год издания и статус. Также включает перечисление BookStatus для отображения статусов книги.

  • library.py: Содержит класс Library, который управляет книгами, включая методы для добавления, удаления, поиска, вывода списка книг и изменения статуса.

  • main.py: Главный исполняемый файл программы, который реализует интерфейс командной строки для взаимодействия с пользователем.

  • storage.json: Файл, в котором сохраняется информация о книгах в формате JSON. Он монтируется в контейнер для хранения данных.

  • requirements.txt: Содержит список всех зависимостей, необходимых для работы приложения, включая библиотеки для тестирования и работы с Python.

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

Как собрать Docker образ

  1. Убедитесь, что у вас установлен Docker: Прежде чем продолжить, убедитесь, что Docker установлен и запущен на вашей машине. Для этого можно проверить с помощью команды:

    docker --version
  2. Соберите Docker образ: Перейдите в директорию проекта, где находится файл Dockerfile, и выполните следующую команду для сборки Docker образа:

    docker build -t library_app

Эта команда создаст Docker образ с именем library_app.

  1. Проверьте собранный образ: После успешной сборки можно проверить, что образ создан, с помощью команды:

    docker images

Как запустить программу

Чтобы запустить приложение в Docker контейнере, выполните следующую команду:

docker run -it --rm -v path_to_work_directory/test_task_library/storage.json:/app/storage.json library_app

Этот командный запуск монтирует файл storage.json из вашего проекта на хосте в контейнер. Когда приложение запускается, оно будет использовать этот файл для чтения и записи данных о книгах.

Взаимодействие с приложением

После запуска контейнера в командной строке будет отображаться меню, через которое можно выполнять различные действия с книгами:

  1. Добавить книгу
  2. Удалить книгу
  3. Найти книгу
  4. Показать все книги
  5. Изменить статус книги
  6. Выход Введите соответствующий номер действия и следуйте инструкциям.

Как запустить тесты

Для запуска тестов, которые находятся в папке tests/, выполните команду:

docker run --rm -v path_to_work_directory/test_task_library:/app library_app pytest

Эта команда запустит тесты внутри контейнера с использованием pytest. Все тесты должны пройти успешно, если функциональность библиотеки работает корректно.

Зависимости

В файле requirements.txt содержатся все необходимые библиотеки для запуска проекта и тестов. Для установки зависимостей используйте следующую команду:

pip install -r requirements.txt

Если вы запускаете проект внутри контейнера, Docker автоматически установит все зависимости при сборке образа.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published