nixpkgs/pkgs/development/python-modules/fluidasserts/default.nix
2020-01-16 15:50:16 -08:00

188 lines
4.0 KiB
Nix

{ buildPythonPackage
, fetchPypi
, isPy37
, lib
# pythonPackages
, aiohttp
, androguard
, azure-identity
, azure-keyvault-keys
, azure-keyvault-secrets
, azure-mgmt-compute
, azure-mgmt-keyvault
, azure-mgmt-network
, azure-mgmt-storage
, azure-mgmt-web
, azure-storage-file
, bandit
, bcrypt
, beautifulsoup4
, boto3
, cfn-flip
, cython
, dnspython
, colorama
, configobj
, defusedxml
, GitPython
, google_api_python_client
, kubernetes
, ldap3
, mixpanel
, mysql-connector
, names
, ntplib
, oyaml
, paramiko
, pillow
, psycopg2
, pycrypto
, pygments
, pyjks
, pynacl
, pyopenssl
, pypdf2
, pysmb
, python_magic
, pytz
, requirements-detector
, selenium
, tlslite-ng
, viewstate
# pythonPackages to test the derivation
, pytest
}:
buildPythonPackage rec {
pname = "fluidasserts";
version = "20.1.22554";
disabled = !isPy37;
src = fetchPypi {
inherit pname version;
extension = "zip";
sha256 = "0j7zppwingi9m58z51phy40d69jlskx1vgyz1gj9miqhbjfdymhi";
};
patchPhase = ''
# Version mismatches between current FluidAsserts and Nixpkgs
substituteInPlace ./setup.py \
--replace 'tlslite-ng==0.8.0-alpha29' 'tlslite-ng==0.7.5' \
--replace 'boto3==1.10.17' 'boto3==1.10.1' \
--replace 'cfn-flip==1.2.2' 'cfn-flip==1.1.0.post1' \
--replace 'azure-mgmt-storage==7.1.0' 'azure-mgmt-storage==7.0.0' \
# Functionality that will be not present for the momment
# but that we'll work to add in the future
# Just a minimal portion of fluidasserts use this
substituteInPlace ./setup.py \
--replace "'azure-storage-file-share==12.0.0'," "" \
--replace "'pymssql==2.1.4'," "" \
--replace "'pytesseract==0.3.0'," "" \
--replace "'pywinrm==0.4.1'," "" \
'';
propagatedBuildInputs = [
# pythonPackages
aiohttp
androguard
azure-identity
azure-keyvault-keys
azure-keyvault-secrets
azure-mgmt-compute
azure-mgmt-keyvault
azure-mgmt-network
azure-mgmt-storage
azure-mgmt-web
azure-storage-file
bandit
bcrypt
beautifulsoup4
boto3
cfn-flip
cython
dnspython
colorama
configobj
defusedxml
GitPython
google_api_python_client
kubernetes
ldap3
mixpanel
mysql-connector
names
ntplib
oyaml
paramiko
pillow
psycopg2
pycrypto
pygments
pyjks
pynacl
pyopenssl
pypdf2
pysmb
python_magic
pytz
requirements-detector
selenium
tlslite-ng
viewstate
];
checkInputs = [
pytest
];
checkPhase = ''
# This file launches mock docker containers and servers
# let's remove it to create a custom test environment
rm test/conftest.py
pytest \
test/test_cloud_aws_cloudformation_cloudfront.py \
test/test_cloud_aws_cloudformation_dynamodb.py \
test/test_cloud_aws_cloudformation_ec2.py \
test/test_cloud_aws_cloudformation_elb.py \
test/test_cloud_aws_cloudformation_elb2.py \
test/test_cloud_aws_cloudformation_fsx.py \
test/test_cloud_aws_cloudformation_iam.py \
test/test_cloud_aws_cloudformation_kms.py \
test/test_cloud_aws_cloudformation_rds.py \
test/test_cloud_aws_cloudformation_s3.py \
test/test_cloud_aws_cloudformation_secretsmanager.py \
test/test_format_apk.py \
test/test_format_file.py \
test/test_format_jks.py \
test/test_format_jwt.py \
test/test_format_pdf.py \
test/test_format_pkcs12.py \
test/test_format_string.py \
test/test_helper_asynchronous.py \
test/test_helper_crypto.py \
test/test_lang_core.py \
test/test_lang_csharp.py \
test/test_lang_docker.py \
test/test_lang_dotnetconfig.py \
test/test_lang_html.py \
test/test_lang_php.py \
test/test_lang_python.py \
test/test_lang_rpgle.py \
'';
meta = with lib; {
description = "Assertion Library for Security Assumptions";
homepage = "https://gitlab.com/fluidattacks/asserts";
license = licenses.mpl20;
maintainers = with maintainers; [
kamadorueda
];
};
}