Проверка, которую обходят через extend
Список позиций заказа не должен принимать позицию с количеством меньше 1.
OrderLines унаследован от list, проверка — в append. Но импорт заказов из CSV
добавляет позиции через extend, и в заказы попадают нулевые количества.
Перепишите OrderLines через композицию. Метод add(line) проверяет и добавляет позицию
(неверная — ValueError), add_many(lines) добавляет несколько с той же проверкой.
len(lines) и for line in lines должны работать. Позиция — кортеж (product_id, quantity).
Подсказка 1 из 3
Посчитайте, сколькими способами можно изменить list: append, extend, insert, +=, lines[0] = ...…
Подсказка 2 из 3
Храните список в self._lines, откройте только add, add_many, __len__ и __iter__.
Подсказка 3 из 3
add_many вызывает self.add для каждой позиции — проверка написана один раз.