[devel] Python2 policy: тесты в подпакетах

Vitaly Lipatov lav на altlinux.ru
Пт Окт 30 03:25:43 MSK 2020


У нас бесконечно устарело python policy. Как минимум, оно требует 
обновления в связи с python3.

Но я хотел бы выяснить, зачем было рекомендовано запаковывать тесты:
> Рекомендуется запаковывать тесты и примеры (содержимое каталогов 
> %python_sitelibdir/*/test* и %python_sitelibdir/*/example*) в отдельный 
> пакет (с одним из суффиксов: -devel, -tests, .tests, -testing, 
> -examples).
https://www.altlinux.org/Python_Policy

У нас для python3 такая статистика по суффиксам test*:
       8 test
     544 tests

Вот эти пакеты-герои, которые просто test:
python3-module-Naked-test - Test for Naked
python3-module-twisted-core-test - Unit tests for Twisted Core (Python 
3)
python3-test - The test modules from the main python 3 package
python3-module-numdifftools-test - Test suite for Numdifftools
python3-module-bunch-test - Test for bunch
python3-module-pytools-test - Test for Pytools (Python 3)
python3-module-nine-test - Test for nine
python3-module-pathod-test - Test for pathod

По моим представлениям, тесты нужны для тестирования самого пакета. 
Возможно, в редких случаях тесты пакета используются в других тестах, но 
в основном паковать тесты не имеет смысла и даже вредно, потому что 
из-за этого возникают незамечаемые зависимости нормальных пакетов от 
тестовых.

Да, пакеты -tests используются при сборке 346 пакетов.
Но в 70 случаях, например, в этот список попал 
python3-module-jsonschema-tests из-за того, что он по ошибке тянется 
пакетом python3-module-jsonschema.

Вот слишком популярные тесты, используемые при сборке:
      90 python3-module-stevedore-tests
      69 python3-module-jsonschema-tests
      28 python3-module-sympy-tests
      28 python3-module-click-tests
      17 python3-module-pygraphviz-tests
      17 python3-module-numexpr-tests
      16 python3-module-pandas-tests
      16 python3-module-numpy-tests


Также выяснилось, что следующие пакеты требуют тестовые (имеют 
установочные зависимости на -tests). В ряде случаев зависимость 
наверняка излишняя.
   python3-module-h5py-2.10.0-alt2:sisyphus+247694.200.3.3 на 1584382664
   
python3-module-graphcanvas-4.1.0-alt1:sisyphus+239534.100.1.1 на 1571643621
   
python3-module-sqlalchemy_monetdb-1.0.0-alt1.1:sisyphus+228373.1000.2.3 на 1556720798
   
python3-module-greentest-1.4.0-alt2:sisyphus+245000.21776.79.1 на 1583233340
   
python3-module-numexpr-1:2.6.2-alt4:sisyphus+245000.26700.79.1 на 1583243505
   
python3-module-pygraphviz-1.5-alt3:sisyphus+245000.6200.84.1 на 1583632822
   python3-module-Chaco-4.8.0-alt2:sisyphus+247694.400.3.3 на 1584382930
   python3-module-blosc-1.5.1-alt3:sisyphus+245000.27700.79.1 на 1583245296
   
python3-module-infrae.testbrowser-2.0.2-alt3:sisyphus+245390.200.1.1 на 1580717877
   
python3-module-scikits.statsmodels-1:0.11.1-alt1:sisyphus+256803.2200.7.1 на 1598543643
   python3-module-pandas-1.1.1-alt2:sisyphus+257610.300.8.1 на 1599840378
   python3-module-dask-2.10.1-alt1:sisyphus+245499.40.2.1 на 1580904835
   python3-module-xarray-0.15.0-alt1:sisyphus+245497.20.3.1 на 1580858418
   
python3-module-silx-examples-0.10.1-alt1:sisyphus+245000.54200.84.1 на 1583666545
   
python3-module-appier_extras-0.19.4-alt1:sisyphus+231292.200.1.1 на 1559406746
   
python3-module-testrepository-0.0.20-alt2:sisyphus+227532.1300.1.3 на 1555940636
   python3-module-testtools-2.3.0-alt2:sisyphus+227976.100.1.2 на 1555992585
   
python3-module-pallets-sphinx-themes-1.1.3-alt2:sisyphus+242803.100.1.1 на 1576141249
   python3-module-flask-1.1.1-alt1:sisyphus+236914.300.4.1 на 1567169521
   python3-module-mailman3-3.2.2-alt2:sisyphus+233553.300.1.1 на 1561975698
   python3-module-numba-0.51.2-alt1:sisyphus+259194.200.1.1 на 1601903259
   
python3-module-jsonschema-3.2.0-alt1:sisyphus+254429.700.1.1 на 1593798463
   python3-module-xlutils-2.0.0-alt2:sisyphus+244055.240.3.1 на 1578662159
   python3-module-mdp-3.5-alt1:sisyphus+240461.200.1.1 на 1573206274
   
python3-module-oslo.versionedobjects-2.0.2-alt1:sisyphus+253719.2500.3.1 на 1592658301
   
openstack-ironic-common-1:15.0.0-alt1:sisyphus+253530.600.3.1 на 1592440913
   python3-module-falcon-1.4.1-alt1:sisyphus+228348.100.2.1 на 1556629111
   
python3-module-stevedore-1.32.0-alt1:sisyphus+252870.2540.8.1 на 1591619880
   python3-module-theano-1.0.5-alt1:sisyphus+256803.1600.3.1 на 1598456025
   python3-module-sympy-1:1.6.1-alt1:sisyphus+254668.400.6.1 на 1597133252

Например, в python3-module-jsonschema был запакован каталог benchmarks, 
использующий тесты, поэтому он их тянул.

Или в пакет borg был упакован testsuite, нужный только на этапе 
сборочных тестов, и опять же, тянул за собой тесты.

И последнее — следующие модули тащат за собой python3-module-pytest, 
хотя вряд ли он им нужен:
   
python3-module-pyannotate-1.2.0-alt1:sisyphus+260350.100.1.1 на 1603565173
   python3-module-soupsieve-2.0-alt1 на 1591873207
   python3-module-smpplib-2.1.0-alt1 на 1591873871
   python3-module-Flask-Script-2.0.6-alt1 на 1591874781
   borg-1.1.13-alt2:sisyphus+260657.100.1.1 на 1604014819
   
python3-module-hypothesis-5.37.3-alt1:sisyphus+255737.4640.19.1 на 1603374308
   python3-module-tox-3.20.1-alt1:sisyphus+260250.100.2.1 на 1603460131
   python3-module-translate-3.1.1-alt1:sisyphus+258948.100.1.1 на 1601484536
   python3-module-spyder-4.0.1-alt1:sisyphus+245364.4.7.1 на 1580852815
   python3-module-xarray-0.15.0-alt1:sisyphus+245497.20.3.1 на 1580858418
   python3-module-weasyprint-47-alt1:sisyphus+233460.340.4.1 на 1561830382
   
python3-module-validictory-1.1.2-alt1:sisyphus+255445.340.2.1 на 1595853021
   python3-module-trio-0.10.0-alt1:sisyphus+227470.1400.1.1 на 1555687900
   python3-module-tinycss2-1.0.2-alt1:sisyphus+252631.100.1.1 на 1591000665
   python3-module-testlink-0.8.1-alt2:sisyphus+240051.100.1.1 на 1572523725
   
python3-module-testfixtures-6.14.1-alt1:sisyphus+255737.5400.19.1 на 1603374514
   python3-module-sniffio-1.0.0-alt1:sisyphus+227470.500.1.1 на 1555687422
   python3-module-seaborn-0.10.1-alt1:sisyphus+256803.1500.3.1 на 1598455842
   python3-module-remoto-1.1.4-alt1:sisyphus+246578.200.1.1 на 1582029865
   
python3-module-pyqtgraph-0.11.0-alt2.rc0:sisyphus+245073.100.2.1 на 1581301999
   python3-module-pyfakefs-3.7.1-alt1:sisyphus+246069.200.1.1 на 1581604472
   python3-module-plumbum-1.6.3-alt2:sisyphus+257359.100.1.1 на 1599157520
   python3-module-openpyxl-2.6.2-alt2:sisyphus+258176.100.1.1 на 1600290668
   python3-module-nibabel-3.1.1-alt1:sisyphus+256803.1200.3.1 на 1598455737
   python3-module-nbclient-0.5.0-alt1:sisyphus+258053.2600.5.1 на 1600242708
   python3-module-miio-0.5.3-alt1:sisyphus+258499.100.1.1 на 1600768674
   python3-module-mando-0.7.0-alt1:sisyphus+255589.100.1.1 на 1596154107
   python3-module-imageio-2.9.0-alt1:sisyphus+256236.200.3.1 на 1597404268
   python3-module-h11-0.9.0-alt1:sisyphus+252379.100.1.1 на 1590695967
   python3-module-gabbi-1.34.0-alt2:sisyphus+249737.100.1.1 на 1586528957
   python3-module-fs-2.4.11-alt2:sisyphus+257603.700.3.2 на 1599686926
   python3-module-flit-2.3.0-alt2:sisyphus+256113.100.1.1 на 1597067357
   python3-module-erf-1.0.1-alt2:sisyphus+257337.100.1.1 на 1599146938
   python3-module-dask-2.10.1-alt1:sisyphus+245499.40.2.1 на 1580904835
   
python3-module-cssselect2-0.2.1-alt1.1:sisyphus+235505.100.1.1 на 1565020851
   python3-module-colorlog-4.2.1-alt1:sisyphus+255462.100.1.1 на 1595872134
   python3-module-cairocffi-1.0.2-alt1:sisyphus+233460.140.4.1 на 1561830232
   
python3-module-async_generator-1.10-alt1:sisyphus+227465.1400.1.2 на 1555756792
   python3-module-aspectlib-1.4.2-alt3:sisyphus+245603.100.1.1 на 1580978574
   python3-module-SQLObject-3.7.3-alt1:sisyphus+242468.40.2.1 на 1575702292
   python3-module-QtAwesome-0.7.2-alt1:sisyphus+255560.100.1.1 на 1596120565
   
python3-module-pytest-watch-4.2.0-alt1:sisyphus+238682.100.1.1 на 1570207452
   
python3-module-pytest-services-2.0.1-alt1:sisyphus+242204.100.1.1 на 1575399642
   python3-module-libcloud-2.5.0-alt1:sisyphus+231298.100.1.1 на 1559408637
   python3-module-iso8601-0.1.11-alt1:sisyphus+227495.1100.1.3 на 1555843037
   python3-module-characteristic-14.3.0-alt1.1.1.1 на 1517660577
   python3-module-ipython-7.18.1-alt2:sisyphus+258220.400.1.1 на 1600330137
   guake-3.7.0-alt1:sisyphus+245894.200.2.1 на 1581507387
   codespell-1.17.1-alt1:sisyphus+252230.100.2.1 на 1590403814
   
python3-module-ceph-common-15.2.5-alt1:sisyphus+258345.300.3.1 на 1600564481
   python3-module-wavelets-1.1.1-alt1:sisyphus+256190.400.1.1 на 1597223583
   
python3-module-scikits.statsmodels-1:0.11.1-alt1:sisyphus+256803.2200.7.1 на 1598543643
   
python3-module-scikit-learn-0.23.2-alt1:sisyphus+256112.500.1.1 на 1597065953
   
python3-module-numpy-testing-1:1.19.1-alt1:sisyphus+256803.200.2.1 на 1598449250
   
python3-module-numdifftools-test-0.9.12-alt2.git20150828.1:sisyphus+249205.100.1.1 на 1585839379
   python3-module-libsass-0.20.1-alt1:sisyphus+257025.100.1.1 на 1598765985
   python3-module-tinycss-0.4.0-alt1:sisyphus+233577.3100.3.2 на 1562121468
   python3-module-ipatests-4.8.9-alt1:sisyphus+257014.1100.9.1 на 1602206763
   python3-module-flaky-3.7.0-alt1:sisyphus+257831.100.1.1 на 1599752523
   python3-module-sybil-1.4.0-alt1:sisyphus+255737.5300.19.1 на 1603374464

-- 
С уважением,
Виталий Липатов,
ALT Linux Team


Подробная информация о списке рассылки Devel