Skip to content

05.1.Classes/orders - неточность в описании/тестах

При тестировании в функции test_order_no_positions объект Order создаётся только по id, но в задании не указано, что у полей должно быть какое-то значение по умолчанию.

Также в этой функции проверяется поведение order_first.positions.append, однако такое использование объекта должно быть недопустимым, т.к. при этом нарушается его целостность. При внешнем изменении positions cost перестанет быть стоимостью товаров в заказе.

В принципе любое внешнее изменение полей data-класса нарушает его целостность, но если хочется проверить append, то я бы предложил 2 варианта:

  1. Сделать cost getter-ом, который высчитывается каждый раз по текущему листу. Минус: не получится сделать have_promo = InitVar
  2. Реализовать метод add_position(self, poistion: Position, have_promo: bool), который будет добавлять новую позицию со своим флагом.