Форум сайта python.su
такая буча у меня ,уже достала.
вот такой висит ассерт:
x = FrameVar('x', self.Int) self.assertEqual(x(), self.Int()) print(x(), self.Int())
<native_types.kInt object at 0x000001AE1FC66A90> $int
Офлайн
LevitanusМетод __eq__() должен возвращать True/False. Возвращение строки - неправильный подход.
Правда, тут есть важный момент: у класса объекта self.Int переопределен метод __eq__, который возвращает строку (механика такая у его применения).
Отредактировано py.user.next (Июль 12, 2018 01:21:43)
Офлайн
py.user.nextвроде бы да, но в этом случае механика работы класса заметно усложнится…
Метод __eq__() должен возвращать True/False
import unittest as t class MyOwnTestCase(t.TestCase): def assertEqual(self, a, b): if isinstance(a == b, bool): return super().assertEqual(a, b) if callable(a): a = a() if callable(b): b = (b) return super().assertEqual(a, b)
Отредактировано Levitanus (Июль 12, 2018 02:21:00)
Офлайн
LevitanusТы его неправильно спроектировал, из-за этого имеешь теперь кучу проблем. Учись проектировать, тесты просто выявили твою ошибку.
вроде бы да, но в этом случае механика работы класса заметно усложнится…
LevitanusТы просто пытаешься надеть сапог на голову.
В принципе, почему бы и не что-нибудь в этом роде?
Отредактировано py.user.next (Июль 12, 2018 05:19:24)
Офлайн
py.user.nextну да. переделал
Ты просто пытаешься надеть сапог на голову.
Офлайн