summaryrefslogtreecommitdiff
path: root/gnu/packages/python-web.scm
diff options
context:
space:
mode:
authorMaxim Cournoyer <maxim.cournoyer@gmail.com>2022-04-17 14:22:02 -0400
committerMaxim Cournoyer <maxim.cournoyer@gmail.com>2022-05-12 12:45:50 -0400
commita81161c1a484da7d54626f76f08aa8c3c6fec96b (patch)
tree1810d0a87d4cd789f1dfb0126dc0f10e75277e2f /gnu/packages/python-web.scm
parent27c49acf0662b9b1bcad070888d19bcef3ceb27d (diff)
downloadguix-patches-a81161c1a484da7d54626f76f08aa8c3c6fec96b.tar
guix-patches-a81161c1a484da7d54626f76f08aa8c3c6fec96b.tar.gz
gnu: Add python-openapi-spec-validator.
* gnu/packages/python-web.scm (python-openapi-spec-validator): New variable.
Diffstat (limited to 'gnu/packages/python-web.scm')
-rw-r--r--gnu/packages/python-web.scm55
1 files changed, 55 insertions, 0 deletions
diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index 4b7d01052d..9c026ba53c 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -1483,6 +1483,61 @@ JSON Schema Specification Draft 2020-12.
@end itemize")
(license license:bsd-3)))
+(define-public python-openapi-spec-validator
+ (package
+ (name "python-openapi-spec-validator")
+ (version "0.4.0")
+ (source
+ (origin
+ (method git-fetch) ;no tests in pypi release
+ (uri (git-reference
+ (url "https://github.com/p1c2u/openapi-spec-validator")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1q09sjh4hsc0c8yqbd97h5mp6rwh427y6zyn8kv8wljk6sa0fs4q"))))
+ (build-system python-build-system)
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'remove-coverage-pytest-options
+ (lambda _
+ (substitute* "pyproject.toml"
+ (("^--cov.*") ""))))
+ ;; XXX: PEP 517 manual build copied from python-isort.
+ (replace 'build
+ (lambda _
+ (invoke "python" "-m" "build" "--wheel" "--no-isolation" ".")))
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "pytest" "-vv"
+ ;; The example tests attempt to fetch resources from
+ ;; the Internet (see:
+ ;; https://github.com/p1c2u/openapi-spec-validator/issues/151).
+ "-k" "not Example and not Exampe"))))
+ (replace 'install
+ (lambda _
+ (let ((whl (car (find-files "dist" "\\.whl$"))))
+ (invoke "pip" "--no-cache-dir" "--no-input"
+ "install" "--no-deps" "--prefix" #$output whl)))))))
+ (native-inputs (list python-poetry-core python-pypa-build python-pytest))
+ (propagated-inputs
+ (list python-jsonschema
+ python-openapi-schema-validator
+ python-pyyaml
+ python-requests
+ python-setuptools))
+ (home-page "https://github.com/p1c2u/openapi-spec-validator")
+ (synopsis "OpenAPI spec validator")
+ (description "OpenAPI Spec Validator is a Python library that validates an
+OpenAPI specification against the OpenAPI 2.0 (also known as Swagger), OpenAPI
+3.0 and OpenAPI 3.1 specifications. The validator aims to check for full
+compliance with the specification.")
+ (license license:asl2.0)))
+
(define-public python-openid
(package
(name "python-openid")