devel@ where you _can_ ask
 help / color / mirror / Atom feed
* 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