summaryrefslogtreecommitdiff
path: root/pkgs/development/python-modules/python-arango
diff options
context:
space:
mode:
authorJohn Soo <john.soo@arista.com>2022-09-30 15:22:52 -0700
committerSandro Jäckel <sandro.jaeckel@gmail.com>2022-12-06 01:56:47 +0100
commit09a033a6af2f0efc2181e07cee564dd4ab76bb0e (patch)
treed3725f1ff386fc093804ee7386694c8d1ddfa60a /pkgs/development/python-modules/python-arango
parent95b3912426bae86511a0cb1e972a0b68946d06de (diff)
python3Packages.python-arango: init at 7.5.3
Diffstat (limited to 'pkgs/development/python-modules/python-arango')
-rw-r--r--pkgs/development/python-modules/python-arango/default.nix138
1 files changed, 138 insertions, 0 deletions
diff --git a/pkgs/development/python-modules/python-arango/default.nix b/pkgs/development/python-modules/python-arango/default.nix
new file mode 100644
index 000000000000..ba44e94b9a31
--- /dev/null
+++ b/pkgs/development/python-modules/python-arango/default.nix
@@ -0,0 +1,138 @@
+{ lib
+, arangodb
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+, pytestCheckHook
+, pyjwt
+, pytest
+, mock
+, requests
+, requests-toolbelt
+}:
+
+let
+ testDBOpts = {
+ host = "127.0.0.1";
+ port = "8529";
+ password = "test";
+ secret = "secret";
+ };
+in
+
+buildPythonPackage rec {
+ pname = "python-arango";
+ version = "7.5.3";
+ disabled = pythonOlder "3.7";
+ format = "setuptools";
+
+ src = fetchFromGitHub {
+ owner = "ArangoDB-Community";
+ repo = "python-arango";
+ rev = version;
+ sha256 = "0qb2yp05z8dmgsyyxqrl3q0a60jaiih96zhxmqrn2yf7as45n07j";
+ };
+
+ propagatedBuildInputs = [
+ requests
+ requests-toolbelt
+ pyjwt
+ ];
+
+ checkInputs = [
+ arangodb
+ mock
+ pytestCheckHook
+ ];
+
+ # arangodb is compiled only for particular target architectures
+ # (i.e. "haswell"). Thus, these tests may not pass reproducibly,
+ # failing with: `166: Illegal instruction` if not run on arangodb's
+ # specified architecture.
+ #
+ # nonetheless, the client library should remain in nixpkgs - since
+ # the client library will talk to arangodb across the network and
+ # architecture issues will be irrelevant.
+ doCheck = false;
+
+ preCheck = lib.optionalString doCheck ''
+ # Start test DB
+ mkdir -p .nix-test/{data,work}
+
+ ICU_DATA=${arangodb}/share/arangodb3 \
+ GLIBCXX_FORCE_NEW=1 \
+ TZ=UTC \
+ TZ_DATA=${arangodb}/share/arangodb3/tzdata \
+ ARANGO_ROOT_PASSWORD=${testDBOpts.password} \
+ ${arangodb}/bin/arangod \
+ --server.uid=$(id -u) \
+ --server.gid=$(id -g) \
+ --server.authentication=true \
+ --server.endpoint=http+tcp://${testDBOpts.host}:${testDBOpts.port} \
+ --server.descriptors-minimum=4096 \
+ --server.jwt-secret=${testDBOpts.secret} \
+ --javascript.app-path=.nix-test/app \
+ --log.file=.nix-test/log \
+ --database.directory=.nix-test/data \
+ --foxx.api=false &
+ '';
+
+ pytestFlagsArray = [
+ "--host"
+ testDBOpts.host
+ "--port"
+ testDBOpts.port
+ "--passwd"
+ testDBOpts.password
+ "--secret"
+ testDBOpts.secret
+ ];
+
+ disabledTests = [
+ # AssertionError geo-related - try enabling later
+ "test_document_find_in_box"
+
+ # maybe arangod misconfig - try enabling later
+ # arango.exceptions.JWTAuthError: [HTTP 401][ERR 401] Wrong credentials
+ "test_auth_jwt"
+
+ # ValueError - try enabling later
+ # maybe missed 3.9.3->3.10.0 changes
+ # most caused by key change: isNewlyCreated->new
+ "test_add_hash_index"
+ "test_add_skiplist_index"
+ "test_add_persistent_index"
+ "test_add_ttl_index"
+ "test_delete_index"
+ "test_pregel_management"
+
+ # formatting error - try enabling later
+ # maybe missed 3.9.3->3.10.0 changes
+ # caused by: body["computedValues"] = None
+ "test_permission_management"
+ "test_collection_misc_methods"
+ "test_collection_management"
+ "test_replication_inventory"
+
+ # want outgoing network to update foxx apis
+ # so foxx.api disabled in arangod startup
+ "test_foxx_service_management_file"
+ "test_foxx_service_management_json"
+ "test_foxx_config_management"
+ "test_foxx_dependency_management"
+ "test_foxx_development_toggle"
+ "test_foxx_misc_functions"
+
+ # no replication configured via arangod invocation
+ "test_replication_applier"
+ ];
+
+ pythonImportsCheck = [ "arango" ];
+
+ meta = with lib; {
+ description = "Python Driver for ArangoDB";
+ homepage = "https://github.com/ArangoDB-Community/python-arango";
+ license = licenses.mit;
+ maintainers = [ maintainers.jsoo1 ];
+ };
+}