Repository navigation
Conversation
EvgrafovMichail
left a comment
There was a problem hiding this comment.
В целом, аккуратное решение. Единственное замечание - неправильное использование match-case. Не раскрыли весь потенциал конструкции
| return None | ||
|
|
||
|
|
||
| def update_product( |
There was a problem hiding this comment.
Вы забыли проверить строку на пустоту после нормализации имени. Отсюда ошибка в нескольких тестах, т.к. имя товара " " после нормализации станет "" и будет записано в БД, как корректное.
| command = words[0] | ||
|
|
||
| match command: | ||
| case "help" if len(words) == 1: |
There was a problem hiding this comment.
При таком подходе вы не получаете никакого преимущества от использования конструкции match-case. Суть match-case как раз в том, что вы можете проверять не только значения, но и структуру данных. Например, проверка того, что на вход передана коллекция, состоящая из одного элемента "help", выглядит так:
case ["help"]:
...А проверка того, что на вход передана команда "create" с нужным числом аргументов, будет выглядеть так:
case ["create", *name_parts, price, quantity]:
...А вы используете match-case, как if-elif. Отсюда очень много дублирующейся логики проверок (проверка размера len(words) == 1).
Это нарушение критерия S1. Минус балл
| case "create" if len(words) >= 4: | ||
| name = " ".join(words[1:-2]) | ||
| price = Decimal(words[-2]) | ||
| quantity = int(words[-1]) |
There was a problem hiding this comment.
Нарушение критерия S3. Минус балл
No description provided.