-
Notifications
You must be signed in to change notification settings - Fork 0
/
exсeptions.py
42 lines (32 loc) · 1.56 KB
/
exсeptions.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
class ConnectionError(Exception):
"""Ошибка при запросе к API Домашки"""
class HomeworkStatusError(Exception):
"""Ошибка в статусе домашней работы."""
def __init__(self, homework):
self.homework = homework
status = homework.get('status', True)
homework_name = homework.get('homework_name', True)
if status and homework_name:
self.message = f'В homework нет ключей status и homework_name'
elif status:
self.message = f'В homework нет ключа status.'
elif homework_name:
self.message = f'В homework нет ключа homework_name.'
def __str__(self):
return f'{self.message} homework: {self.homework}'
class MessageError(Exception):
"""Ошибка при отправке сообщения в Телеграм."""
class ResponseFormatError(Exception):
"""Определяет тип ошибки в ответе API."""
def __init__(self, response):
self.response = response
if response.get('code') == 'not_authenticated':
self.message = response['message']
elif response.get('code') == 'UnknownError':
self.message = f'{response.get("error")}'
elif 'homeworks' not in response:
self.message = f'Не найден ключ homeworks.'
else:
self.message = f'Неожиданный ответ API.'
def __str__(self):
return f'{self.message}. Проверьте ответ API: {self.response}'