Traceback (most recent call last): File "/usr/lib64/python3/site-packages/borg/archiver.py", line 81, in <module> from .selftest import selftest File "/usr/lib64/python3/site-packages/borg/selftest.py", line 21, in <module> from .testsuite.hashindex import HashIndexDataTestCase, HashIndexRefcountingTestCase, HashIndexTestCase ModuleNotFoundError: No module named 'borg.testsuite' Command exited with non-zero status 2
Дмитрий, мне кажется, что стоит вырезать выполнение этого теста selfttest.py в рантайме, проследив, что он выполняется после сборки пакета. Это тест на правильность упаковки: «to discover issues with the way Borg was compiled or packaged and also bugs in Borg itself.» Я не думаю, что нужно тянуть unittest, и выполнять юнит-тесты при запуске программы. Это чересчур.
(Ответ для Vitaly Lipatov на комментарий #1) > Дмитрий, мне кажется, что стоит вырезать выполнение этого теста selfttest.py > в рантайме, проследив, что он выполняется после сборки пакета. > > Это тест на правильность упаковки: > «to discover issues with the way Borg was compiled or packaged and also bugs > in Borg itself.» > > Я не думаю, что нужно тянуть unittest, и выполнять юнит-тесты при запуске > программы. Это чересчур. Думаю, Вы правы. Постараюсь реализовать. Выпилить тест оказалось достаточно просто, а вот реализовать его выполнение только после сборки, пока в процессе.
(Ответ для Dmitriy D. Shadrinov на комментарий #2) > (Ответ для Vitaly Lipatov на комментарий #1) > > Дмитрий, мне кажется, что стоит вырезать выполнение этого теста selfttest.py > > в рантайме, проследив, что он выполняется после сборки пакета. > > > > Это тест на правильность упаковки: > > «to discover issues with the way Borg was compiled or packaged and also bugs > > in Borg itself.» > > > > Я не думаю, что нужно тянуть unittest, и выполнять юнит-тесты при запуске > > программы. Это чересчур. > > Думаю, Вы правы. Постараюсь реализовать. Выпилить тест оказалось достаточно > просто, а вот реализовать его выполнение только после сборки, пока в > процессе. Спасибо большое!
Меня начинают терзать сомнения, что это скромное описание соответсвует действительности (to discover issues with the way Borg was compiled or packaged and also bugs in Borg itself). По факту каталог testsuite содержит кучу кода, который проверяет вовсе не только установку и упаковку. Боюсь, решение выпилить этот модуль было слегка поспешным.
Но как быть в таком случае? Что делать если этот модуль все-таки нужен?
(Ответ для Dmitriy D. Shadrinov на комментарий #4) > Меня начинают терзать сомнения, что это скромное описание соответсвует > действительности (to discover issues with the way Borg was compiled or > packaged and also bugs in Borg itself). > > По факту каталог testsuite содержит кучу кода, который проверяет вовсе не > только установку и упаковку. Боюсь, решение выпилить этот модуль было слегка > поспешным. Не очень понял, в чём проблема. Да, testsuite это тесты borg, их нужно выполнять в секции %check при сборке. Делать пакет зависящем от тестов — это неправильно. > * Fri Dec 04 2020 Dmitriy D. Shadrinov <shadrinov@altlinux.org> 1.1.14-alt3 > - restored selftest.py and testsuite module Не очень понял аргументацию.
Можно удалить вызов selftest из def prerun_checks(self, logger, is_serve): if not is_serve: # this is the borg *client*, we need to check the python: check_python() check_extension_modules() selftest(logger)
(Ответ для Vitaly Lipatov на комментарий #6) > (Ответ для Dmitriy D. Shadrinov на комментарий #4) > > Меня начинают терзать сомнения, что это скромное описание соответсвует > > действительности (to discover issues with the way Borg was compiled or > > packaged and also bugs in Borg itself). > > > > По факту каталог testsuite содержит кучу кода, который проверяет вовсе не > > только установку и упаковку. Боюсь, решение выпилить этот модуль было слегка > > поспешным. > Не очень понял, в чём проблема. Да, testsuite это тесты borg, их нужно > выполнять в секции > %check при сборке. > > Делать пакет зависящем от тестов — это неправильно. > > > * Fri Dec 04 2020 Dmitriy D. Shadrinov <shadrinov@altlinux.org> 1.1.14-alt3 > > - restored selftest.py and testsuite module > Не очень понял аргументацию. в testsuite я обнаружил такой например модуль: upgrader.py, а в нем функции: def repo_valid(path): """ utility function to check if borg can open a repository :param path: the path to the repository :returns: if borg can check the repository """ def key_valid(path): """ check that the new keyfile is alright :param path: the path to the key file :returns: if the file starts with the borg magic string """ и прочие модули, которые тестируют валидность не столько самого borg, сколько состояние репозитория, валидность ключей, особенностей операционных систем. или, например: platform.py def test_access_acl(self): def test_non_ascii_acl(self): Есть основания полагать что большинство этих тестов проверяют не сборку, а особенности работы в системе, состояние репозитория и прочее.
(In reply to Vitaly Lipatov from comment #6) > (Ответ для Dmitriy D. Shadrinov на комментарий #4) > > Меня начинают терзать сомнения, что это скромное описание соответсвует > > действительности (to discover issues with the way Borg was compiled or > > packaged and also bugs in Borg itself). > > > > По факту каталог testsuite содержит кучу кода, который проверяет вовсе не > > только установку и упаковку. Боюсь, решение выпилить этот модуль было слегка > > поспешным. > Не очень понял, в чём проблема. Да, testsuite это тесты borg, их нужно > выполнять в секции > %check при сборке. > > Делать пакет зависящем от тестов — это неправильно. > > > * Fri Dec 04 2020 Dmitriy D. Shadrinov <shadrinov@altlinux.org> 1.1.14-alt3 > > - restored selftest.py and testsuite module > Не очень понял аргументацию. Давайте не доводить до абсолюта. В данном конкретном случае оправдана зависимость пакета от этих самых тестов в рантайме. Я активный пользователь этого пакета, я за то, чтобы он использовал всевозможные проверки в рантайме, какие посчитает нужным.
(Ответ для Vladimir D. Seleznev на комментарий #9) ... > Давайте не доводить до абсолюта. В данном конкретном случае оправдана > зависимость пакета от этих самых тестов в рантайме. Я активный пользователь > этого пакета, я за то, чтобы он использовал всевозможные проверки в > рантайме, какие посчитает нужным. В CentOS 8 borgbackup-1.1.14 не требует pytest и unittest. Возможно, нам нужно отключить требование этих модулей и волки будут сыты и овцы целы? (Ответ для Dmitriy Shadrinov на комментарий #8) ... > Есть основания полагать что большинство этих тестов проверяют не сборку, а > особенности работы в системе, состояние репозитория и прочее. Убедительно. Вас не затруднит проверить, действительно ли при выполнении нужны pytest и unittest?