Skip to content

Conversation

@pvktk
Copy link
Owner

@pvktk pvktk commented Apr 12, 2018

Архитектура, с которой мне пришлось работать, в общем то достаточно удобная. Во все команды передается окружение с текущей рабочей директорией, поэтому изменять достаточно было только его. У команд интерфейс понятный и я достаточно быстро разобрался как дописать свои команды.
Однако мне кажется, что у команд можно было бы сделать по одному методу вместо двух run() и set_args(). Также, возможно, получилось бы избавиться от двойного механизма обработки ошибок (сейчас это исключения и коды возврата).

Copy link

@yurii-litvinov yurii-litvinov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Надо ещё краткое ревью на архитектуру товарища


self.cli.process_input('cd ~')
result = self.cli.process_input('ls cd_ls_test')
self.assertEqual(result.get_output(), 'dir2\ndir1\n')

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Лучше на несколько тестов разбить

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

И под виндой не работает из-за переводов строк

if len(self.args) < 1:
arg = '~'
else:
arg = self.args[0]

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Желательно ещё проверять, что их не больше, чем надо, и сообщать пользователю об ошибке. А то будет как в анекдотах про Linux: rm -rf *.out -> rm -rf * .out

else:
head, res = os.path.split(ls_path)
else:
res = '"'+ls_path+'" not exists'

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Пробелов не хватает :)


rv = 0
if os.path.isdir(abs_path):
env.set_cwd(abs_path)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Неплохо бы нормализовать путь, иначе

> cd ../..
directory "C:\Students\504\CD-LS\pvktk-SD/cli\../.." set

И потом

> pwd
C:\Students\504\CD-LS\pvktk-SD/cli\../..

Так если долго ходить по файловой системе, всё сломается.

Кроссплатформенный перенос строки
Нормализация пути
Разбиты тесты
Copy link

@yurii-litvinov yurii-litvinov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Тесты на ls всё равно не работают, там проблема с переносами строк (\r\n vs \n). В остальном же всё ок, так что зачтена

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants