diff options
Diffstat (limited to 'nixpkgs/pkgs/development/python-modules/nplusone/default.nix')
-rw-r--r-- | nixpkgs/pkgs/development/python-modules/nplusone/default.nix | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/python-modules/nplusone/default.nix b/nixpkgs/pkgs/development/python-modules/nplusone/default.nix new file mode 100644 index 000000000000..5a31394c2d35 --- /dev/null +++ b/nixpkgs/pkgs/development/python-modules/nplusone/default.nix @@ -0,0 +1,85 @@ +{ lib +, blinker +, buildPythonPackage +, django +, fetchFromGitHub +, flake8 +, flask-sqlalchemy +, isPy27 +, mock +, peewee +, pytest-django +, pytestCheckHook +, six +, sqlalchemy +, webtest +}: + +buildPythonPackage rec { + pname = "nplusone"; + version = "1.0.0"; + disabled = isPy27; + + src = fetchFromGitHub { + owner = "jmcarp"; + repo = "nplusone"; + rev = "v${version}"; + sha256 = "0qdwpvvg7dzmksz3vqkvb27n52lq5sa8i06m7idnj5xk2dgjkdxg"; + }; + + propagatedBuildInputs = [ + blinker + six + ]; + + nativeCheckInputs = [ + flake8 + flask-sqlalchemy + mock + peewee + pytest-django + pytestCheckHook + sqlalchemy + webtest + ]; + + # The tests assume the source code is in an nplusone/ directory. When using + # the Nix sandbox, it will be in a source/ directory instead, making the + # tests fail. + prePatch = '' + substituteInPlace tests/conftest.py \ + --replace nplusone/tests/conftest source/tests/conftest + ''; + + postPatch = '' + substituteInPlace pytest.ini \ + --replace "python_paths" "pythonpath" \ + --replace "--cov nplusone --cov-report term-missing" "" + ''; + + disabledTests = [ + # Tests are out-dated + "test_many_to_one" + "test_many_to_many" + "test_eager_join" + "test_eager_subquery" + "test_eager_subquery_unused" + "test_many_to_many_raise" + "test_many_to_many_whitelist_decoy" + "test_many_to_one_subquery" + "test_many_to_one_reverse_subquery" + "test_many_to_many_subquery" + "test_many_to_many_reverse_subquery" + "test_profile" + ]; + + pythonImportsCheck = [ "nplusone" ]; + + meta = with lib; { + description = "Detecting the n+1 queries problem in Python"; + homepage = "https://github.com/jmcarp/nplusone"; + maintainers = with maintainers; [ cript0nauta ]; + license = licenses.mit; + broken = lib.versionAtLeast django.version "4"; + }; +} |