Yueh-Shun Li 76e2a397c2 treewide: pytestFlagsArray -> pytestFlags and join flag and option argument
This treewide change targets Python packages
that specifies pytest flags with pytestFlagsArray,
and whose flags cannot be consructed by other pytestCheckHook-honoured arguments.

Use the __structuredAttrs-agnostic argument pytestFlags
instead of the deprecated pytestFlagsArray.

For flags with option arguments,
join each flag and their option argument into a single command-line argument
following POSIX Utility Argument Syntax[1]
for easier overriding (remove/replace).

Examples:

* [ "-W" "ignore:message:WarningClass" ] ->
  [ "-Wignore:message:WarningClass" ]

* [ "--reruns" "3" ] ->
  [ "--reruns=3" ]

[1]: https://pubs.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap12.html
2025-06-16 01:02:16 +08:00

121 lines
2.3 KiB
Nix

{
lib,
buildPythonPackage,
fetchFromGitHub,
# build-system
poetry-core,
# dependencies
apscheduler,
bitstring,
cffi,
ecdsa,
monero,
pypng,
pyqrcode,
pyramid,
pyramid-jinja2,
pysocks,
pytz,
requests,
tzlocal,
waitress,
yoyo-migrations,
# tests
pytestCheckHook,
webtest,
}:
buildPythonPackage rec {
pname = "cypherpunkpay";
version = "1.0.16";
pyproject = true;
src = fetchFromGitHub {
owner = "CypherpunkPay";
repo = "CypherpunkPay";
tag = "v${version}";
hash = "sha256-X0DB0PVwR0gRnt3jixFzglWAOPKBMvqTOG6pK6OJ03w=";
};
pythonRelaxDeps = [
"bitstring"
"cffi"
"ecdsa"
"pypng"
"tzlocal"
"yoyo-migrations"
"waitress"
];
build-system = [
poetry-core
];
dependencies = [
apscheduler
bitstring
cffi
ecdsa
monero
pypng
pyqrcode
pyramid
pyramid-jinja2
pysocks
pytz
requests
tzlocal
waitress
yoyo-migrations
];
nativeCheckInputs = [
pytestCheckHook
webtest
];
pytestFlags = [
"-Wignore::DeprecationWarning"
];
disabledTestPaths = [
# performance test
"tests/unit/tools/pbkdf2_test.py"
# tests require network connection
"tests/network/explorers/bitcoin"
"tests/network/monero/monero_address_transactions_db_test.py"
"tests/network/net/http_client"
"tests/network/prices"
# tests require bitcoind running
"tests/network/full_node_clients"
# tests require lnd running
"tests/network/ln"
# tests require tor running
"tests/network/monero/monero_test.py"
"tests/network/net/tor_client"
"tests/network/usecases/calc_monero_address_credits_uc_test.py"
"tests/network/usecases/fetch_monero_txs_from_open_node_uc_test.py"
# tests require the full environment running
"tests/acceptance/views"
"tests/acceptance/views_admin"
"tests/acceptance/views_donations"
"tests/acceptance/views_dummystore"
];
pythonImportsCheck = [ "cypherpunkpay" ];
meta = {
description = "Modern self-hosted software for accepting Bitcoin";
homepage = "https://github.com/CypherpunkPay/CypherpunkPay";
changelog = "https://github.com/CypherpunkPay/CypherpunkPay/releases/tag/v${version}";
license = with lib.licenses; [
mit # or
unlicense
];
maintainers = with lib.maintainers; [ prusnak ];
};
}