The unit tests for this package require the tests directory to be on the PYTHONPATH. We also can switch to pytest to run most of the TestOutputJson test cases, explicitly disabling the few that require network access.
80 lines
1.4 KiB
Nix
80 lines
1.4 KiB
Nix
{ lib
|
|
, buildPythonPackage
|
|
, fetchFromGitHub
|
|
, importlib-metadata
|
|
, jsonschema
|
|
, lxml
|
|
, packageurl-python
|
|
, poetry-core
|
|
, pytestCheckHook
|
|
, python
|
|
, pythonOlder
|
|
, requirements-parser
|
|
, sortedcontainers
|
|
, setuptools
|
|
, toml
|
|
, types-setuptools
|
|
, types-toml
|
|
, xmldiff
|
|
}:
|
|
|
|
buildPythonPackage rec {
|
|
pname = "cyclonedx-python-lib";
|
|
version = "2.7.1";
|
|
format = "pyproject";
|
|
|
|
disabled = pythonOlder "3.9";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "CycloneDX";
|
|
repo = pname;
|
|
rev = "refs/tags/v${version}";
|
|
hash = "sha256-c/KhoJOa121/h0n0GUazjUFChnUo05ThD+fuZXc5/Pk=";
|
|
};
|
|
|
|
nativeBuildInputs = [
|
|
poetry-core
|
|
];
|
|
|
|
propagatedBuildInputs = [
|
|
importlib-metadata
|
|
packageurl-python
|
|
requirements-parser
|
|
setuptools
|
|
sortedcontainers
|
|
toml
|
|
types-setuptools
|
|
types-toml
|
|
];
|
|
|
|
checkInputs = [
|
|
pytestCheckHook
|
|
jsonschema
|
|
lxml
|
|
xmldiff
|
|
];
|
|
|
|
pythonImportsCheck = [
|
|
"cyclonedx"
|
|
];
|
|
|
|
preCheck = ''
|
|
export PYTHONPATH=tests''${PYTHONPATH+:$PYTHONPATH}
|
|
'';
|
|
|
|
pytestFlagsArray = [ "tests/" ];
|
|
|
|
disabledTests = [
|
|
# These tests require network access.
|
|
"test_bom_v1_3_with_metadata_component"
|
|
"test_bom_v1_4_with_metadata_component"
|
|
];
|
|
|
|
meta = with lib; {
|
|
description = "Python library for generating CycloneDX SBOMs";
|
|
homepage = "https://github.com/CycloneDX/cyclonedx-python-lib";
|
|
license = with licenses; [ asl20 ];
|
|
maintainers = with maintainers; [ fab ];
|
|
};
|
|
}
|