27 lines
2.2 KiB
Python
27 lines
2.2 KiB
Python
import unittest
|
|
from price_policy import reason
|
|
|
|
def item(name, section="gyne-price", item_id=1):
|
|
return {"id": item_id, "name": name, "section": section}
|
|
|
|
class PricePolicyTest(unittest.TestCase):
|
|
def test_consultations_are_preserved(self):
|
|
for name in ("Консультация хирурга", "Консультация врача хирурга (Тест)", "Прием хирурга/ортопеда (Тест)"):
|
|
self.assertIsNone(reason(item(name, "hirurgiya-price")))
|
|
|
|
def test_gynaecological_and_misfiled_operations_are_hidden(self):
|
|
for name in ("Лапароскопическая миомэктомия", "Надвлагалищная ампутация матки (лапараскопия)", "Оперативная коррекция послеоперационного рубца", "Радиоволновая эксцизия ш/м", "Кольпорафия", "Вылущивание кисты шейки матки", "Вагинопластика 3 кат. сложности"):
|
|
self.assertIsNotNone(reason(item(name)))
|
|
self.assertIsNotNone(reason(item("Операция на опухоль спинного мозга", "uzi-price")))
|
|
|
|
def test_nonoperative_prices_are_unchanged(self):
|
|
for name, section in (("Кольпоскопия", "gyne-price"), ("Кардиотокография (КТГ) плода", "gyne-price"), ("УЗИ органов брюшной полости", "uzi-price"), ("Кариес (детям)", "stomatologiya"), ("Керамические коронки", "stomatologiya"), ("Капельница Восстановление после операций", "protsedurny-kabinet"), ("Реабилитация после операции", "lech_bol")):
|
|
self.assertIsNone(reason(item(name, section)))
|
|
|
|
def test_whole_unoffered_cosmetology_section_is_hidden(self):
|
|
self.assertEqual(reason(item("Чистка лица", "kosmetologiya-price")), "cosmetology_not_offered")
|
|
self.assertEqual(reason(item("Ошибочно включённая консультация", "kosmetologiya-price")), "cosmetology_not_offered")
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|