* Re: [newbies] Запуск python-module-tests и %add_findreq_skiplist tests/
@ 2024-09-23 6:58 ` Ivan A. Melnikov
0 siblings, 0 replies; only message in thread
From: Ivan A. Melnikov @ 2024-09-23 6:58 UTC (permalink / raw)
To: devel@ where you _can_ ask
On Mon, Sep 23, 2024 at 02:35:35AM GMT, Александр Лубягин wrote:
> Скомпилировал модуль perceval. Он предназначен для fetching`а содержимого
> страниц
> социальных сетей/репозиториев/т.д. Мне он нужен для пакета определения
> гендера (пола) damegender, прогонки его тестов по соц.сетям.
>
> Питоновский модуль работы с соц.сетями perceval содержит подкаталог
> /usr/lib/python3/site-packages/perceval/tests/
>
> Для тестирования (которое требует read-write прав на подкаталог
> tests/data/)
> я копирую: cp -a /usr/lib/python3/site-packages/perceval/tests/ .
> Затем:
> cd tests
> python3 -m pytest ../tests/
> ... 999 passed, 2110 warnings in 60.54s ...
>
> Вроде бы всё ок, ошибок нет. Импорт модулей проходит так, как задумывал
> автор, не надо делать export PYTHONPATH=$PYTHONPATH:<dir>
То есть смотрите, по задумке автора, эти тесты не должны запускаться
из %python3_sitelibdir или %python3_sitelibdir_noarch, они должны
запусаться из текущего каталога и нужны только разработчику для
разработки. Тогда зачем они в пакете? Убрать из пакета файлы, которые
не нужны, и даже вредны для его работы -- это одна из обязанностей
(и ответственностей) мейнтейнера.
> Но для того, чтобы в зависимости не попали файлы
> tests/base.py
> tests/mocked_package/__init__.py и т.д.
> ошибка: Неудовлетворенные зависимости:
> python3(base) < 0 нужен для
> python3-module-perceval-tests-1.0.6-alt1.noarch
> python3(mocked_package) < 0 нужен для
> python3-module-perceval-tests-1.0.6-alt1.noarch
> python3(mocked_package.backend) < 0 нужен для
> python3-module-perceval-tests-1.0.6-alt1.noarch
> python3(mocked_package.nested_package) < 0 нужен для
> python3-module-perceval-tests-1.0.6-alt1.noarch
> python3(mocked_package.nested_package.nested_backend_b) < 0 нужен для
> python3-module-perceval-tests-1.0.6-alt1.noarch
> python3(mocked_package.nested_package.nested_backend_c) < 0 нужен для
> python3-module-perceval-tests-1.0.6-alt1.noarch
Опять же, такие зависимости появляются, потому что в тестах используется
форма import statement, не предполагающая их использование как модуля.
> я добавляю в .spec строку:
> %add_findreq_skiplist %python3_sitelibdir_noarch/%pypi_name/tests/*
>
> Корректно ли так делать (спек с макросом %add_findreq_skiplist)?
В общем случае я бы рекомендовал такие варианты, в порядке приоритета:
1. Поправить исходники, чтобы таких зависимостей не возникало. Что-то
вроде замены `import foo` на `from . import foo`.
2. Точечно выкинуть ненужные зависимости при помощи %filter_from_requires
В принципе, можно и так, как сделали Вы, но тогда есть шанс, что
при обновлении Вы упустите что-нибудь важное.
Однако в данном случае моя рекомендация однозначна: резать. Если тесты
по каким-то причинам жалко, положите их в %_docdir. В виде тарбола;)
В любом случае это не модули питона, так что класть из в sitelibdir
не стоит.
--
wbr,
iv m.
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2024-09-23 6:58 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-09-23 6:58 ` [newbies] Запуск python-module-tests и %add_findreq_skiplist tests/ Ivan A. Melnikov
devel@ where you _can_ ask
This inbox may be cloned and mirrored by anyone:
git clone --mirror http://lore.altlinux.org/devel-newbies/0 devel-newbies/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 devel-newbies devel-newbies/ http://lore.altlinux.org/devel-newbies \
devel-newbies@lists.altlinux.org devel-newbies@lists.altlinux.ru devel-newbies@lists.altlinux.com
public-inbox-index devel-newbies
Example config snippet for mirrors.
Newsgroup available over NNTP:
nntp://lore.altlinux.org/org.altlinux.lists.devel-newbies
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git