devel@ where you _can_ ask
 help / color / mirror / Atom feed
From: "Ivan A. Melnikov" <iv@altlinux.org>
To: "devel@ where you _can_ ask" <devel-newbies@lists.altlinux.org>
Subject: Re: [newbies] Запуск python-module-tests и %add_findreq_skiplist tests/
Date: Mon, 23 Sep 2024 10:58:52 +0400
Message-ID: <te6a3x6aekmo7wjmbl2yfumnsgcnhkbuxamb2rtgoglu4suqng@tddbp4xavq3s> (raw)
In-Reply-To: <42431727047356@mail.yandex.ru>

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.


           reply	other threads:[~2024-09-23  6:58 UTC|newest]

Thread overview: expand[flat|nested]  mbox.gz  Atom feed
 [parent not found: <42431727047356@mail.yandex.ru>]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=te6a3x6aekmo7wjmbl2yfumnsgcnhkbuxamb2rtgoglu4suqng@tddbp4xavq3s \
    --to=iv@altlinux.org \
    --cc=devel-newbies@lists.altlinux.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

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