From 8c2df175273606a796915b25072d14ce30185f48 Mon Sep 17 00:00:00 2001 From: Jonathan Ringer Date: Thu, 13 Jan 2022 18:41:58 -0800 Subject: [PATCH] python3Packages.pyparsing: enable optional testing --- .../python-modules/pyparsing/default.nix | 61 ++++++++++++------- 1 file changed, 39 insertions(+), 22 deletions(-) diff --git a/pkgs/development/python-modules/pyparsing/default.nix b/pkgs/development/python-modules/pyparsing/default.nix index 5e9326483fbe..27047cf6eabc 100644 --- a/pkgs/development/python-modules/pyparsing/default.nix +++ b/pkgs/development/python-modules/pyparsing/default.nix @@ -1,31 +1,48 @@ { buildPythonPackage , fetchFromGitHub , lib + +# since this is a dependency of pytest, we need to avoid +# circular dependencies +, jinja2 +, railroad-diagrams }: -buildPythonPackage rec { - pname = "pyparsing"; - version = "3.0.6"; +let + pyparsing = buildPythonPackage rec { + pname = "pyparsing"; + version = "3.0.6"; - src = fetchFromGitHub { - owner = "pyparsing"; - repo = pname; - rev = "pyparsing_${version}"; - sha256 = "0n89ky7rx5yg09ssji8liahnyxip08hz7syc2k4pmlgs4978181a"; - }; + src = fetchFromGitHub { + owner = "pyparsing"; + repo = pname; + rev = "pyparsing_${version}"; + sha256 = "0n89ky7rx5yg09ssji8liahnyxip08hz7syc2k4pmlgs4978181a"; + }; - # only do unit tests, as diagram tests require railroad, which has - # been unmaintained since 2015 - checkPhase = '' - python -m unittest -k 'not testEmptyExpressionsAreHandledProperly' tests/test_unit.py - ''; - - meta = with lib; { - homepage = "https://github.com/pyparsing/pyparsing"; - description = "An alternative approach to creating and executing simple grammars, vs. the traditional lex/yacc approach, or the use of regular expressions"; - license = licenses.mit; - maintainers = with maintainers; [ - kamadorueda + # circular dependencies if enabled by default + doCheck = false; + checkInputs = [ + jinja2 + railroad-diagrams ]; + + checkPhase = '' + python -m unittest + ''; + + passthru.tests = { + check = pyparsing.overridePythonAttrs (_: { doCheck = true; }); + }; + + meta = with lib; { + homepage = "https://github.com/pyparsing/pyparsing"; + description = "An alternative approach to creating and executing simple grammars, vs. the traditional lex/yacc approach, or the use of regular expressions"; + license = licenses.mit; + maintainers = with maintainers; [ + kamadorueda + ]; + }; }; -} +in + pyparsing