|
|
|
@@ -1,210 +0,0 @@ |
|
|
|
{ buildPythonPackage |
|
|
|
, fetchPypi |
|
|
|
, isPy37 |
|
|
|
, lib |
|
|
|
|
|
|
|
# pythonPackages |
|
|
|
, aiohttp |
|
|
|
, androguard |
|
|
|
, azure-identity |
|
|
|
, azure-keyvault |
|
|
|
, azure-mgmt-compute |
|
|
|
, azure-mgmt-keyvault |
|
|
|
, azure-mgmt-network |
|
|
|
, azure-mgmt-resource |
|
|
|
, azure-mgmt-security |
|
|
|
, azure-mgmt-storage |
|
|
|
, azure-mgmt-sql |
|
|
|
, azure-mgmt-web |
|
|
|
, azure-storage |
|
|
|
, 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 |
|
|
|
, pyhcl |
|
|
|
, pyjks |
|
|
|
, pynacl |
|
|
|
, pyodbc |
|
|
|
, pyopenssl |
|
|
|
, pypdf2 |
|
|
|
, pysmb |
|
|
|
, pytesseract |
|
|
|
, python_magic |
|
|
|
, pytz |
|
|
|
, pywinrm |
|
|
|
, requirements-detector |
|
|
|
, selenium |
|
|
|
, tlslite-ng |
|
|
|
, viewstate |
|
|
|
|
|
|
|
# pythonPackages to test the derivation |
|
|
|
, pytest |
|
|
|
, flask |
|
|
|
, flask-httpauth |
|
|
|
, docker |
|
|
|
}: |
|
|
|
|
|
|
|
buildPythonPackage rec { |
|
|
|
pname = "fluidasserts"; |
|
|
|
version = "20.2.30165"; |
|
|
|
disabled = !isPy37; |
|
|
|
|
|
|
|
src = fetchPypi { |
|
|
|
inherit pname version; |
|
|
|
sha256 = "0wcplzfx89d3c6hvdgag860sl3infqmymy6ly6y6ah77pkc98x15"; |
|
|
|
}; |
|
|
|
|
|
|
|
patchPhase = '' |
|
|
|
# Release packages from their hard pinned versions |
|
|
|
sed -i -E "s/(.*)==.*/\1/g" requirements.txt |
|
|
|
|
|
|
|
# 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 ./requirements.txt \ |
|
|
|
--replace "mitmproxy" "" \ |
|
|
|
|
|
|
|
''; |
|
|
|
|
|
|
|
propagatedBuildInputs = [ |
|
|
|
# pythonPackages |
|
|
|
aiohttp |
|
|
|
androguard |
|
|
|
azure-identity |
|
|
|
azure-keyvault |
|
|
|
azure-mgmt-compute |
|
|
|
azure-mgmt-keyvault |
|
|
|
azure-mgmt-network |
|
|
|
azure-mgmt-resource |
|
|
|
azure-mgmt-security |
|
|
|
azure-mgmt-storage |
|
|
|
azure-mgmt-sql |
|
|
|
azure-mgmt-web |
|
|
|
azure-storage |
|
|
|
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 |
|
|
|
pyhcl |
|
|
|
pyjks |
|
|
|
pynacl |
|
|
|
pyodbc |
|
|
|
pyopenssl |
|
|
|
pypdf2 |
|
|
|
pysmb |
|
|
|
pytesseract |
|
|
|
python_magic |
|
|
|
pytz |
|
|
|
pywinrm |
|
|
|
requirements-detector |
|
|
|
selenium |
|
|
|
tlslite-ng |
|
|
|
viewstate |
|
|
|
]; |
|
|
|
|
|
|
|
configurePhase = '' |
|
|
|
mkdir -p build/config |
|
|
|
touch build/config/README.rst |
|
|
|
''; |
|
|
|
|
|
|
|
checkInputs = [ |
|
|
|
docker |
|
|
|
flask |
|
|
|
flask-httpauth |
|
|
|
pytest |
|
|
|
]; |
|
|
|
|
|
|
|
checkPhase = '' |
|
|
|
# This tests require BWAPP Docker Container |
|
|
|
sed -ie 's/test_a[0-9]//g' ./test/test_proto_http_open.py |
|
|
|
sed -ie 's/test_a[0-9]//g' ./test/test_proto_http_close.py |
|
|
|
|
|
|
|
# This tests require network connectivity |
|
|
|
sed -ie 's/test_is_date_unsyncd//g' ./test/test_proto_http_open.py |
|
|
|
sed -ie 's/test_is_date_unsyncd//g' ./test/test_proto_http_close.py |
|
|
|
|
|
|
|
# Remove impurities |
|
|
|
substituteInPlace ./test/conftest.py \ |
|
|
|
--replace "import wait" "" \ |
|
|
|
--replace "if not os.path.exists(name):" "if os.path.exists(name):" \ |
|
|
|
--replace "from test.mock import graphql_server" "" \ |
|
|
|
--replace "(graphql_server.start, 'MockGraphQLServer', ['proto_graphql'])," "" \ |
|
|
|
|
|
|
|
pytest --asserts-module 'iot' \ |
|
|
|
test/test_iot_phone.py |
|
|
|
|
|
|
|
pytest --asserts-module 'ot' \ |
|
|
|
test/test_ot_powerlogic.py |
|
|
|
|
|
|
|
pytest --asserts-module 'proto_http' \ |
|
|
|
test/test_proto_{http_close,http_open}.py |
|
|
|
|
|
|
|
pytest --asserts-module 'proto_rest' \ |
|
|
|
test/test_proto_rest.py |
|
|
|
|
|
|
|
# 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_terraform_{cloudfront,dynamodb,ebs,ec2,elb}.py \ |
|
|
|
test/test_cloud_aws_terraform_{fsx,iam,kms,rds,s3}.py \ |
|
|
|
test/test_cloud_aws_cloudformation_{cloudfront,dynamodb,ec2,elb,elb2}.py \ |
|
|
|
test/test_cloud_aws_cloudformation_{fsx,iam,kms,rds,s3,secretsmanager}.py \ |
|
|
|
test/test_format_{apk,jks,jwt,pdf,pkcs12,string}.py \ |
|
|
|
test/test_helper_{asynchronous,crypto}.py \ |
|
|
|
test/test_lang_{javascript,java}.py \ |
|
|
|
test/test_lang_{core,csharp,docker,dotnetconfig,html,php,python,rpgle}.py \ |
|
|
|
test/test_utils_generic.py |
|
|
|
''; |
|
|
|
|
|
|
|
meta = with lib; { |
|
|
|
description = "Assertion Library for Security Assumptions"; |
|
|
|
homepage = "https://gitlab.com/fluidattacks/asserts"; |
|
|
|
license = licenses.mpl20; |
|
|
|
maintainers = with maintainers; [ |
|
|
|
kamadorueda |
|
|
|
]; |
|
|
|
broken = true; # dependency tree is too fragile for nixpkgs |
|
|
|
}; |
|
|
|
} |