Пример #1
0
def get_currency_test(text: str):
    """
    Функция поиска конкретной валюты в конкретном городе
    :param text: сообщение пользователя
    :return: курс валюты
    """
    result = re.findall(r'доллар|евр|юан|фунт|иен|', text)
    result += re.findall(
        r'благовещенск|архангельск|астрахан|белгород|брянск|владимир|волгоград|вологд|воронеж|иванов|иркутск|'
        r'калининград|калуг|петропавловс|кемерово|киров|костром|курган|курск|санкт-петербург|липецк|магадан|'
        r'москв|мурманск|нижн|велик|новосибирск|омск|оренбург|пенз|перм|псков|ростов|рязан|самар|саратов|'
        r'южн|екатеринбург|смоленск|тамбов|тул|тюмен|ульяновск|челябинск|чит|ярославл|майкоп|горно-алтайск|'
        r'уф|улан-уде|махачкал|биробиджан|нальчик|элист|черкесск|петрозавосдск|сыктывкар|симферопол|йошкар-ол|'
        r'саранск|якутск|владикавказ|казан|кызыл|ижевск|абакан|грозн|чебоксар|барнаул|краснодар|красноярск|'
        r'владивосток|ставропол|хабаровск|нарьян-мар|ханты-мансийск|анадыр|салехард',
        text)
    result = list(filter(lambda a: a != '', result))

    if len(result) == 2:
        curr_url = ''
        for currency_key, currency_value in currencies.items():
            if currency_key.lower().find(result[0]) > -1:
                curr_url = currency_value
                text = currency_key + '\n'
                break

        city_url = ''
        for city_key, city_value in cities.items():
            if city_key.lower().find(result[1]) > -1:
                city_url = city_value
                text += 'г.' + city_key + '\n'
                break

        try:
            myFin = Myfin(curr_url, city_url)
            banks = myFin.get_rate()

            if len(banks) >= 5:
                banks = banks[0:5]
                for bank in banks:
                    text += f'{bank.bank_name}\nПокупка: {bank.rate_buy} руб.\n' \
                            f'Продажа: {bank.rate_sell} руб.\n\n'
            elif len(banks) == 0:
                text += 'Видимо эта валюты не присутствует в городе. Вася съел все крылышки за эти деньги'
            else:
                for bank in banks:
                    text += f'{bank.bank_name}\nПокупка: {bank.rate_buy} руб.\n' \
                            f'Продажа: {bank.rate_sell} руб.\n\n'

            return text
        except MyFinBankError:
            Logs.log_exceptions(MyFinBankError)
            text = 'Произошла неизвестная ошибка. Вася приносит прощение'
            return text
    else:
        text = 'Прости, но я ничего не нашел. Зато Вася нашел баскет с крылышками.'
        return text
Пример #2
0
 def test_myFin_constructor_error(self):
     with self.assertRaises(MyFinBankError):
         bank = Myfin('tvybuniomv', 'ctyvubioiuvyd6f7g')
Пример #3
0
 def test_get_rate_cny_bank_name_type(self):
     bank_1 = Myfin('cny', 'moskva')
     for bank in bank_1.get_rate():
         self.assertTrue(isinstance(bank.bank_name, str))
Пример #4
0
 def test_get_rate_cny_rate_sell_type(self):
     bank_1 = Myfin('cny', 'moskva')
     for bank in bank_1.get_rate():
         self.assertTrue(isinstance(bank.rate_sell, float))
Пример #5
0
 def test_get_rate_jpy_rate_buy_type(self):
     bank_1 = Myfin('jpy', 'moskva')
     for bank in bank_1.get_rate():
         self.assertTrue(isinstance(bank.rate_buy, float))