/
eup
/
tg_curs
Обзор
Документация
Войти
/
eup
/
tg_curs
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
test_bot.py
51 строка
2 KB
eup
Create: .env.example, .env.txt, bot.py, README.md, test_bot.py
07 июн 2026, 12:00
Верифицирован
07 июн 2026, 12:00
0c87280
Код
Авторство
О чём код?
import unittest from decimal import Decimal from bot import CurrencyRate, convert, normalize_code, parse_cbr_xml SAMPLE_XML = """<?xml version="1.0" encoding="windows-1251"?> <ValCurs Date="03.06.2026" name="Foreign Currency Market"> <Valute ID="R01235"> <NumCode>840</NumCode> <CharCode>USD</CharCode> <Nominal>1</Nominal> <Name>Доллар США</Name> <Value>80,0000</Value> </Valute> <Valute ID="R01239"> <NumCode>978</NumCode> <CharCode>EUR</CharCode> <Nominal>1</Nominal> <Name>Евро</Name> <Value>88,0000</Value> </Valute> </ValCurs> """.encode("utf-8") class CurrencyBotTest(unittest.TestCase): def test_parse_cbr_xml_adds_rub_and_rates(self): rates, date = parse_cbr_xml(SAMPLE_XML) self.assertEqual(date, "03.06.2026") self.assertEqual(rates["RUB"].rub_per_unit, Decimal("1")) self.assertEqual(rates["USD"].rub_per_unit, Decimal("80.0000")) def test_convert_between_currencies(self): rates = { "RUB": CurrencyRate("RUB", "Российский рубль", 1, Decimal("1")), "USD": CurrencyRate("USD", "Доллар США", 1, Decimal("80")), "EUR": CurrencyRate("EUR", "Евро", 1, Decimal("88")), } self.assertEqual(convert(Decimal("100"), "USD", "RUB", rates), Decimal("8000")) self.assertEqual(convert(Decimal("8800"), "RUB", "EUR", rates), Decimal("100")) def test_normalize_code_uses_aliases(self): self.assertEqual(normalize_code("доллар"), "USD") self.assertEqual(normalize_code("rur"), "RUB") if __name__ == "__main__": unittest.main()