示例#1
0
def do_cb(message):
    """
    Функция, находящая курс валюты от текущей даты в ЦБ
    :param message: сообщение пользователя
    :return: информация о курсе за текующую дату
    """
    chat_id = message.chat.id
    Logs.log_message(message)
    try:
        text = str(message.text).lower()
        result = re.findall(r'доллар|евр|фунт|иен|', text)
        result += re.findall(r'\d*-\d*-\d*', text)
        result = list(filter(lambda a: a != '', result))

        if len(result) == 2:
            date_format = "%d-%m-%Y"
            date = datetime.strptime(result[1], date_format)

            text = 'Центробанк\n' + f'{date.strftime(date_format)}\n'
            bank = CbBank(date)

            if result[0] == 'доллар':
                rate_usd = bank.get_rates_usd()
                Logs.log_message(
                    bot.send_message(
                        chat_id,
                        text + f'{rate_usd.name}\n{rate_usd.rate} руб.'))
            if result[0] == 'евр':
                rate_eur = bank.get_rates_eur()
                Logs.log_message(
                    bot.send_message(
                        chat_id,
                        text + f'{rate_eur.name}\n{rate_eur.rate}руб.'))
            if result[0] == 'фунт':
                rate_gbp = bank.get_rates_gbp()
                Logs.log_message(
                    bot.send_message(
                        chat_id,
                        text + f'{rate_gbp.name}\n{rate_gbp.rate}руб.'))
            if result[0] == 'иен':
                rate_jpy = bank.get_rates_jpy()
                Logs.log_message(
                    bot.send_message(
                        chat_id,
                        text + f'{rate_jpy.name}\n{rate_jpy.rate}руб.'))
        else:
            Logs.log_message(
                bot.send_message(
                    chat_id,
                    'Прости, но ты ввел команду неправильно. За это Вася тебя не любит'
                ))

    except CentralBankError:
        Logs.log_exceptions(CentralBankError)
        Logs.log_message(
            bot.send_message(
                chat_id,
                'По данной дате ничего не найдено, так как вы вышли за пределы. Соблюдай пределы, или встретишь Васю'
            ))
    except ValueError:
        Logs.log_exceptions(ValueError)
        Logs.log_message(
            bot.send_message(
                chat_id,
                'Вы ввели невалидную дату. За такое Вася и обидеться может'))
    except IndexError:
        Logs.log_exceptions(IndexError)
        Logs.log_message(
            bot.send_message(
                chat_id,
                'Пожалуйста введите /cb *Валюты на русском языке* *ДЕНЬ-МЕСЯЦ-ГОД*. Нужно больше крылышек из КФС.'
            ))
示例#2
0
 def test_get_rates_eur_rate_3(self):
     bank_3 = CbBank(datetime.date(2020, 5, 30))
     eur = bank_3.get_rates_eur()
     self.assertEqual(78.5489, eur.rate)
示例#3
0
 def test_get_rates_eur_error(self):
     bank_4 = CbBank(datetime.date(1950, 1, 27))
     with self.assertRaises(CentralBankError):
         bank_4.get_rates_eur()
示例#4
0
 def test_get_rates_eur_curr_name_3(self):
     bank_3 = CbBank(datetime.date(2020, 5, 30))
     eur = bank_3.get_rates_eur()
     self.assertEqual('EUR', eur.name)
示例#5
0
 def test_get_rates_eur_rate_2(self):
     bank_2 = CbBank(datetime.date(2015, 7, 27))
     eur = bank_2.get_rates_eur()
     self.assertEqual(63.6090, eur.rate)
示例#6
0
 def test_get_rates_eur_curr_name_2(self):
     bank_2 = CbBank(datetime.date(2015, 7, 27))
     eur = bank_2.get_rates_eur()
     self.assertEqual('EUR', eur.name)
示例#7
0
 def test_get_rates_eur_rate_1(self):
     bank_1 = CbBank(datetime.date(2002, 3, 2))
     eur = bank_1.get_rates_eur()
     self.assertEqual(26.8343, eur.rate)
示例#8
0
 def test_get_rates_eur_curr_name_1(self):
     bank_1 = CbBank(datetime.date(2002, 3, 2))
     eur = bank_1.get_rates_eur()
     self.assertEqual('EUR', eur.name)