about summary refs log tree commit diff
path: root/pkgs/development/python-modules/pyparsing
diff options
context:
space:
mode:
authorJonathan Ringer <jonringer117@gmail.com>2022-01-13 18:41:58 -0800
committerMartin Weinelt <hexa@darmstadt.ccc.de>2022-01-23 01:09:28 +0100
commit8c2df175273606a796915b25072d14ce30185f48 (patch)
tree3adb32e639c7de55bcb39df24f328da8b1b335ae /pkgs/development/python-modules/pyparsing
parent96a92ca512e71b404e64058634eedab0dd734807 (diff)
python3Packages.pyparsing: enable optional testing
Diffstat (limited to 'pkgs/development/python-modules/pyparsing')
-rw-r--r--pkgs/development/python-modules/pyparsing/default.nix61
1 files changed, 39 insertions, 22 deletions
diff --git a/pkgs/development/python-modules/pyparsing/default.nix b/pkgs/development/python-modules/pyparsing/default.nix
index 5e9326483fbe9..27047cf6eabc4 100644
--- a/pkgs/development/python-modules/pyparsing/default.nix
+++ b/pkgs/development/python-modules/pyparsing/default.nix
@@ -1,31 +1,48 @@
 { buildPythonPackage
 , fetchFromGitHub
 , lib
-}:
 
-buildPythonPackage rec {
-  pname = "pyparsing";
-  version = "3.0.6";
+# since this is a dependency of pytest, we need to avoid
+# circular dependencies
+, jinja2
+, railroad-diagrams
+}:
 
-  src = fetchFromGitHub {
-    owner = "pyparsing";
-    repo = pname;
-    rev = "pyparsing_${version}";
-    sha256 = "0n89ky7rx5yg09ssji8liahnyxip08hz7syc2k4pmlgs4978181a";
-  };
+let
+  pyparsing = buildPythonPackage rec {
+    pname = "pyparsing";
+    version = "3.0.6";
 
-  # 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
-  '';
+    src = fetchFromGitHub {
+      owner = "pyparsing";
+      repo = pname;
+      rev = "pyparsing_${version}";
+      sha256 = "0n89ky7rx5yg09ssji8liahnyxip08hz7syc2k4pmlgs4978181a";
+    };
 
-  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