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()