Приложение предназначено для передачи смс сообщений посредством сервиса отправки на основании информации переданной приложению в коммандной строке.
Количество передаваемых сообщений может быть произвольное.
Способ передачи сообщений допускает использование библиотек socket или asyncio на выбор (задается в файле конфигурации).
Запуск осуществляется следующей коммандой из каталога приложения:
python main.py parameters (Windows)
Во время работы приложения производится логирование передаваемой на сервер информации и полученных от сервера ответов в файл "client.log".
Для запуска допустимы следующие ключи:
- -s, --sender - телефонный номер отправителя
- -r, --recipient - телефонный номер получателя
- -m, --message - сообщение
- -c, --config - имя файла конфигурации приложения (по умолчанию config.toml)
- -f, --file - имя файла параметров
Файл параметров должен представлять из себя текстовый фай в кодировке utf-8, каждая строка которого имеет вид строки параметров подходящей для передачи сообщений приложению.
Допускается в файле параметров использовать ключ -f для подключения дополнительных файлов параметров.
Допускается, при отсутствии ключей (-s, -r, -m), в качестве параметров использовать строку вида:sender_number recipient_number message для определения передаваемого сообщения.
Если в качестве параметров используются строки содержащие пробелы, то их необходимо экранировать кавычками: "This is message".
Для конфигурации приложения используется файл в формате TOML имеющего следующий вид:
[system]
# Тип библиотеки на основании которой происходит обмен с сервером
# 0 - socket (по умолчанию)
# 1 - asyncio
client_type = 1
[user]
# Имя пользователя. Обязательно к определению.
login = "user"
# Пароль пользователя. Обязательно к определению.
password = "password"
[server]
# Адрес сервера
address = "http://localhost:4010/send_sms"
# Максимальное число открываемых соединений с сервером
# 0 - без ограничений (по умолчанию)
max_connections = 0
# Максимальное время ожидания ответа от сервера в мс
# 0 - без ограничений (по умолчанию)
max_time = 1000
По умолчанию используется файл с именем "config.toml", которое можно изменить через параметр коммандной строки - -c, --config.
Приложение разработано и протестировано с использованием:
- python 3.11.7
- pytest 8.3.5
Тетирование проводилось на базе предложеннного в задании мок-сервера.