Bug 37483 - Выполнить обработку ошибок от hardlinkpy для негативных сценариев (нет доступа, прерывание)
Summary: Выполнить обработку ошибок от hardlinkpy для негативных сценариев (нет доступ...
Status: NEW
Alias: None
Product: Sisyphus
Classification: Development
Component: hardlinkpy (show other bugs)
Version: unstable
Hardware: all Linux
: P3 minor
Assignee: Антон Мидюков
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2019-11-13 16:57 MSK by Vera Blagoveschenskaya
Modified: 2019-11-14 17:55 MSK (History)
6 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Vera Blagoveschenskaya 2019-11-13 16:57:01 MSK
hardlinkpy-0.0.20180725-alt1.noarch

1) Выполнить команду
hardlinkpy -n /
(dry-run)

или 
2) Прервать выполнение команды hardlinkpy (натравить hardlinkpy на большой каталог и нажать ctrl+c)

Результат: в выводе ошибки вида
Traceback (most recent call last):
  File "/usr/bin/hardlinkpy", line 492, in <module>
    main()
  File "/usr/bin/hardlinkpy", line 487, in main
    hardlink_identical_files(directories, pathname, options)
  File "/usr/bin/hardlinkpy", line 262, in hardlink_identical_files
    options):
  File "/usr/bin/hardlinkpy", line 148, in are_files_hardlinkable
    result = are_file_contents_equal(filename1, filename2, options)
  File "/usr/bin/hardlinkpy", line 136, in are_file_contents_equal
    return filecmp.cmp(filename1, filename2, shallow=False)
  File "/usr/lib64/python3.7/filecmp.py", line 62, in cmp
    outcome = _do_cmp(f1, f2)
  File "/usr/lib64/python3.7/filecmp.py", line 75, in _do_cmp
    with open(f1, 'rb') as fp1, open(f2, 'rb') as fp2:
PermissionError: [Errno 13] Permission denied: '//sys/module/sr_mod/uevent'

^CTraceback (most recent call last):
  File "/usr/bin/hardlinkpy", line 492, in <module>
    main()
  File "/usr/bin/hardlinkpy", line 487, in main
    hardlink_identical_files(directories, pathname, options)
  File "/usr/bin/hardlinkpy", line 262, in hardlink_identical_files
    options):
  File "/usr/bin/hardlinkpy", line 148, in are_files_hardlinkable
    result = are_file_contents_equal(filename1, filename2, options)
  File "/usr/bin/hardlinkpy", line 136, in are_file_contents_equal
    return filecmp.cmp(filename1, filename2, shallow=False)
  File "/usr/lib64/python3.7/filecmp.py", line 62, in cmp
    outcome = _do_cmp(f1, f2)
  File "/usr/lib64/python3.7/filecmp.py", line 78, in _do_cmp
    b2 = fp2.read(bufsize)
KeyboardInterrupt

Ожидаемый результат: считаю, что данные негативные сценарии нужно обрабатывать (не вываливать в консоль названия функций и номера строк, а выводить нормальные пользовательские сообщения).
Comment 1 Michael Shigorin 2019-11-14 14:52:49 MSK
Для питона это типа нормально.
Comment 2 Anton Farygin 2019-11-14 17:55:55 MSK
На самом деле нет. В питоне можно легко сделать обработку таких ошибок, их интерпретацию и вывод в человеческом формате.