summaryrefslogtreecommitdiff
path: root/gnu/packages/python-check.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/python-check.scm')
-rw-r--r--gnu/packages/python-check.scm366
1 files changed, 183 insertions, 183 deletions
diff --git a/gnu/packages/python-check.scm b/gnu/packages/python-check.scm
index 52d0464d8c4..8d494fe09a4 100644
--- a/gnu/packages/python-check.scm
+++ b/gnu/packages/python-check.scm
@@ -366,6 +366,38 @@ analysing code quality.")
366 settings.") 366 settings.")
367 (license license:expat))) 367 (license license:expat)))
368 368
369(define-public python-coveralls
370 (package
371 (name "python-coveralls")
372 (version "4.0.1")
373 (home-page "https://github.com/coveralls-clients/coveralls-python")
374 (source
375 (origin
376 ;; The PyPI release lacks tests, so we pull from git instead.
377 (method git-fetch)
378 (uri (git-reference (url home-page) (commit version)))
379 (file-name (git-file-name name version))
380 (sha256
381 (base32 "1411h7rwxgp9ag26bmlpy7g7sdh39f56dc1mrd1n74bjsgvwzj6l"))))
382 (build-system pyproject-build-system)
383 (arguments
384 (list #:test-flags '(list
385 ;; XXX: Avoid git dependency.
386 "--ignore=tests/git_test.py"
387 ;; XXX: Unable to find coverage package.
388 "--ignore=tests/api/reporter_test.py"
389 "--ignore=tests/integration_test.py")))
390 (propagated-inputs
391 (list python-coverage python-docopt python-pyyaml python-requests))
392 (native-inputs
393 (list poetry python-mock python-pytest python-responses))
394 (synopsis "Show coverage stats online via coveralls.io")
395 (description
396 "Coveralls.io is a service for publishing code coverage statistics online.
397This package provides seamless integration with coverage.py (and thus pytest,
398nosetests, etc...) in Python projects.")
399 (license license:expat)))
400
369(define-public python-cucumber-tag-expressions 401(define-public python-cucumber-tag-expressions
370 (package 402 (package
371 (name "python-cucumber-tag-expressions") 403 (name "python-cucumber-tag-expressions")
@@ -424,6 +456,95 @@ from Python files. It does this by detecting block comments that contain
424valid Python syntax that are likely to be commented out code.") 456valid Python syntax that are likely to be commented out code.")
425 (license license:expat))) 457 (license license:expat)))
426 458
459(define-public python-expecttest
460 (let ((commit "683b09a352cc426851adc2e3a9f46e0ab25e4dee")
461 (revision "0"))
462 (package
463 (name "python-expecttest")
464 (version (git-version "0.2.1" revision commit))
465 (source
466 (origin
467 (method git-fetch)
468 (uri (git-reference
469 (url "https://github.com/ezyang/expecttest")
470 (commit commit)))
471 (file-name (git-file-name name version))
472 (sha256
473 (base32
474 "1djwxp9x1hczzxbimv1b1bmd083am88v27l82nmlkhvzyg2cmpvv"))))
475 (build-system pyproject-build-system)
476 (arguments
477 (list
478 #:phases
479 #~(modify-phases %standard-phases
480 (replace 'check
481 (lambda* (#:key tests? #:allow-other-keys)
482 (when tests?
483 ;; The test runs tests expected to fail, so the output is
484 ;; confusing
485 (invoke "python3" "test_expecttest.py")))))))
486 (native-inputs (list python-hypothesis poetry))
487 (home-page "https://github.com/ezyang/expecttest")
488 (synopsis "Python module for expect tests")
489 (description "@code{expecttest} is a Python module for expect tests, where
490the initial expected value of a test can be automatically set by running the
491test itself.")
492 (license license:expat))))
493
494(define-public python-green
495 (package
496 (name "python-green")
497 (version "4.0.2")
498 (source
499 (origin
500 (method url-fetch)
501 (uri (pypi-uri "green" version))
502 (sha256
503 (base32 "1cd62nbn5dvlpnsyplp6cb24wd230san8dpm6pnl99n2kwzpq1m4"))))
504 (build-system pyproject-build-system)
505 (arguments
506 (list
507 #:test-flags #~(list "-vr" "green")
508 #:phases
509 #~(modify-phases %standard-phases
510 (replace 'check
511 (lambda* (#:key tests? test-flags #:allow-other-keys)
512 (when tests?
513 (apply invoke "python" "-m" "green" test-flags)))))))
514 (native-inputs
515 (list python-mypy
516 python-setuptools
517 python-testtools
518 python-wheel))
519 (propagated-inputs
520 (list python-colorama
521 python-coverage
522 python-lxml
523 python-unidecode))
524 (home-page "https://github.com/CleanCut/green")
525 (synopsis "Clean, colorful, fast Python test runner")
526 (description
527 "@code{green} is a Python test runner that describes itself as:
528@table @emph
529@item Clean
530Low redundancy in output. Result statistics for each test is vertically aligned.
531@item Colorful
532Terminal output makes good use of color when the terminal supports it.
533@item Fast
534Tests run in independent processes (one per processor by default).
535@item Powerful
536Multi-target and auto-discovery support.
537@item Traditional
538It uses the normal @code{unittest} classes and methods.
539@item Descriptive
540Multiple verbosity levels, from just dots to full docstring output.
541@item Convenient
542Bash-completion and ZSH-completion of options and test targets.
543@item Thorough
544Built-in integration with @url{http://nedbatchelder.com/code/coverage/, coverage}.
545@end table")
546 (license license:expat)))
547
427(define-public python-pytest-click 548(define-public python-pytest-click
428 (package 549 (package
429 (name "python-pytest-click") 550 (name "python-pytest-click")
@@ -561,38 +682,6 @@ are useful when writing automated tests in Python.")
561 (home-page "https://testfixtures.readthedocs.io/en/latest/") 682 (home-page "https://testfixtures.readthedocs.io/en/latest/")
562 (license license:expat))) 683 (license license:expat)))
563 684
564(define-public python-coveralls
565 (package
566 (name "python-coveralls")
567 (version "4.0.1")
568 (home-page "https://github.com/coveralls-clients/coveralls-python")
569 (source
570 (origin
571 ;; The PyPI release lacks tests, so we pull from git instead.
572 (method git-fetch)
573 (uri (git-reference (url home-page) (commit version)))
574 (file-name (git-file-name name version))
575 (sha256
576 (base32 "1411h7rwxgp9ag26bmlpy7g7sdh39f56dc1mrd1n74bjsgvwzj6l"))))
577 (build-system pyproject-build-system)
578 (arguments
579 (list #:test-flags '(list
580 ;; XXX: Avoid git dependency.
581 "--ignore=tests/git_test.py"
582 ;; XXX: Unable to find coverage package.
583 "--ignore=tests/api/reporter_test.py"
584 "--ignore=tests/integration_test.py")))
585 (propagated-inputs
586 (list python-coverage python-docopt python-pyyaml python-requests))
587 (native-inputs
588 (list poetry python-mock python-pytest python-responses))
589 (synopsis "Show coverage stats online via coveralls.io")
590 (description
591 "Coveralls.io is a service for publishing code coverage statistics online.
592This package provides seamless integration with coverage.py (and thus pytest,
593nosetests, etc...) in Python projects.")
594 (license license:expat)))
595
596(define-public python-icontract 685(define-public python-icontract
597 (package 686 (package
598 (name "python-icontract") 687 (name "python-icontract")
@@ -712,68 +801,6 @@ result documents that can be read by tools such as Jenkins or Bamboo.")
712 "Pyinstrument is a Python profiler to help you optimize your code.") 801 "Pyinstrument is a Python profiler to help you optimize your code.")
713 (license license:bsd-3))) 802 (license license:bsd-3)))
714 803
715(define-public python-vcrpy
716 (package
717 (name "python-vcrpy")
718 (version "6.0.2")
719 (source
720 (origin
721 (method url-fetch)
722 (uri (pypi-uri "vcrpy" version))
723 (sha256
724 (base32 "02fwmmc33qqybzbj1lvdz458g1fffm5cgnqihj4larw4268kvqc8"))))
725 (build-system pyproject-build-system)
726 (arguments
727 (list
728 #:test-flags
729 #~(list "--ignore=tests/integration"
730 "-k" (string-join
731 ;; These tests require network access.
732 (list "not testing_connect"
733 "test_get_vcr_with_matcher"
734 "test_testcase_playback")
735 " and not "))))
736 (native-inputs
737 (list nss-certs-for-test
738 python-flask
739 python-httplib2
740 python-ipaddress
741 python-mock
742 python-pytest
743 python-pytest-cov
744 python-pytest-httpbin
745 python-setuptools
746 python-urllib3
747 python-wheel))
748 (propagated-inputs
749 (list python-pyyaml
750 python-six
751 python-wrapt
752 python-yarl))
753 (home-page "https://github.com/kevin1024/vcrpy")
754 (synopsis "Automatically mock your HTTP interactions")
755 (description
756 "VCR.py simplifies and speeds up tests that make HTTP requests. The first
757time you run code that is inside a VCR.py context manager or decorated function,
758VCR.py records all HTTP interactions that take place through the libraries it
759supports and serializes and writes them to a flat file (in yaml format by
760default). This flat file is called a cassette. When the relevant piece of code
761is executed again, VCR.py will read the serialized requests and responses from
762the aforementioned cassette file, and intercept any HTTP requests that it
763recognizes from the original test run and return the responses that corresponded
764to those requests. This means that the requests will not actually result in
765HTTP traffic, which confers several benefits including:
766@enumerate
767@item The ability to work offline
768@item Completely deterministic tests
769@item Increased test execution speed
770@end enumerate
771If the server you are testing against ever changes its API, all you need to do
772is delete your existing cassette files, and run your tests again. VCR.py will
773detect the absence of a cassette file and once again record all HTTP
774interactions, which will update them to correspond to the new API.")
775 (license license:expat)))
776
777(define-public python-pytest-socket 804(define-public python-pytest-socket
778 (package 805 (package
779 (name "python-pytest-socket") 806 (name "python-pytest-socket")
@@ -2546,41 +2573,6 @@ among others.")
2546annotations.") 2573annotations.")
2547 (license license:asl2.0))) 2574 (license license:asl2.0)))
2548 2575
2549(define-public python-expecttest
2550 (let ((commit "683b09a352cc426851adc2e3a9f46e0ab25e4dee")
2551 (revision "0"))
2552 (package
2553 (name "python-expecttest")
2554 (version (git-version "0.2.1" revision commit))
2555 (source
2556 (origin
2557 (method git-fetch)
2558 (uri (git-reference
2559 (url "https://github.com/ezyang/expecttest")
2560 (commit commit)))
2561 (file-name (git-file-name name version))
2562 (sha256
2563 (base32
2564 "1djwxp9x1hczzxbimv1b1bmd083am88v27l82nmlkhvzyg2cmpvv"))))
2565 (build-system pyproject-build-system)
2566 (arguments
2567 (list
2568 #:phases
2569 #~(modify-phases %standard-phases
2570 (replace 'check
2571 (lambda* (#:key tests? #:allow-other-keys)
2572 (when tests?
2573 ;; The test runs tests expected to fail, so the output is
2574 ;; confusing
2575 (invoke "python3" "test_expecttest.py")))))))
2576 (native-inputs (list python-hypothesis poetry))
2577 (home-page "https://github.com/ezyang/expecttest")
2578 (synopsis "Python module for expect tests")
2579 (description "@code{expecttest} is a Python module for expect tests, where
2580the initial expected value of a test can be automatically set by running the
2581test itself.")
2582 (license license:expat))))
2583
2584(define-public python-robber 2576(define-public python-robber
2585 (package 2577 (package
2586 (name "python-robber") 2578 (name "python-robber")
@@ -3126,6 +3118,68 @@ attachments).
3126@end itemize") 3118@end itemize")
3127 (license license:expat))) 3119 (license license:expat)))
3128 3120
3121(define-public python-vcrpy
3122 (package
3123 (name "python-vcrpy")
3124 (version "6.0.2")
3125 (source
3126 (origin
3127 (method url-fetch)
3128 (uri (pypi-uri "vcrpy" version))
3129 (sha256
3130 (base32 "02fwmmc33qqybzbj1lvdz458g1fffm5cgnqihj4larw4268kvqc8"))))
3131 (build-system pyproject-build-system)
3132 (arguments
3133 (list
3134 #:test-flags
3135 #~(list "--ignore=tests/integration"
3136 "-k" (string-join
3137 ;; These tests require network access.
3138 (list "not testing_connect"
3139 "test_get_vcr_with_matcher"
3140 "test_testcase_playback")
3141 " and not "))))
3142 (native-inputs
3143 (list nss-certs-for-test
3144 python-flask
3145 python-httplib2
3146 python-ipaddress
3147 python-mock
3148 python-pytest
3149 python-pytest-cov
3150 python-pytest-httpbin
3151 python-setuptools
3152 python-urllib3
3153 python-wheel))
3154 (propagated-inputs
3155 (list python-pyyaml
3156 python-six
3157 python-wrapt
3158 python-yarl))
3159 (home-page "https://github.com/kevin1024/vcrpy")
3160 (synopsis "Automatically mock your HTTP interactions")
3161 (description
3162 "VCR.py simplifies and speeds up tests that make HTTP requests. The first
3163time you run code that is inside a VCR.py context manager or decorated function,
3164VCR.py records all HTTP interactions that take place through the libraries it
3165supports and serializes and writes them to a flat file (in yaml format by
3166default). This flat file is called a cassette. When the relevant piece of code
3167is executed again, VCR.py will read the serialized requests and responses from
3168the aforementioned cassette file, and intercept any HTTP requests that it
3169recognizes from the original test run and return the responses that corresponded
3170to those requests. This means that the requests will not actually result in
3171HTTP traffic, which confers several benefits including:
3172@enumerate
3173@item The ability to work offline
3174@item Completely deterministic tests
3175@item Increased test execution speed
3176@end enumerate
3177If the server you are testing against ever changes its API, all you need to do
3178is delete your existing cassette files, and run your tests again. VCR.py will
3179detect the absence of a cassette file and once again record all HTTP
3180interactions, which will update them to correspond to the new API.")
3181 (license license:expat)))
3182
3129(define-public python-vulture 3183(define-public python-vulture
3130 (package 3184 (package
3131 (name "python-vulture") 3185 (name "python-vulture")
@@ -3163,60 +3217,6 @@ dead code. Also, code that is only called implicitly may be reported as
3163unused.") 3217unused.")
3164 (license license:expat))) 3218 (license license:expat)))
3165 3219
3166(define-public python-green
3167 (package
3168 (name "python-green")
3169 (version "4.0.2")
3170 (source
3171 (origin
3172 (method url-fetch)
3173 (uri (pypi-uri "green" version))
3174 (sha256
3175 (base32 "1cd62nbn5dvlpnsyplp6cb24wd230san8dpm6pnl99n2kwzpq1m4"))))
3176 (build-system pyproject-build-system)
3177 (arguments
3178 (list
3179 #:test-flags #~(list "-vr" "green")
3180 #:phases
3181 #~(modify-phases %standard-phases
3182 (replace 'check
3183 (lambda* (#:key tests? test-flags #:allow-other-keys)
3184 (when tests?
3185 (apply invoke "python" "-m" "green" test-flags)))))))
3186 (native-inputs
3187 (list python-mypy
3188 python-setuptools
3189 python-testtools
3190 python-wheel))
3191 (propagated-inputs
3192 (list python-colorama
3193 python-coverage
3194 python-lxml
3195 python-unidecode))
3196 (home-page "https://github.com/CleanCut/green")
3197 (synopsis "Clean, colorful, fast Python test runner")
3198 (description
3199 "@code{green} is a Python test runner that describes itself as:
3200@table @emph
3201@item Clean
3202Low redundancy in output. Result statistics for each test is vertically aligned.
3203@item Colorful
3204Terminal output makes good use of color when the terminal supports it.
3205@item Fast
3206Tests run in independent processes (one per processor by default).
3207@item Powerful
3208Multi-target and auto-discovery support.
3209@item Traditional
3210It uses the normal @code{unittest} classes and methods.
3211@item Descriptive
3212Multiple verbosity levels, from just dots to full docstring output.
3213@item Convenient
3214Bash-completion and ZSH-completion of options and test targets.
3215@item Thorough
3216Built-in integration with @url{http://nedbatchelder.com/code/coverage/, coverage}.
3217@end table")
3218 (license license:expat)))
3219
3220(define-public python-xunitparser 3220(define-public python-xunitparser
3221 (package 3221 (package
3222 (name "python-xunitparser") 3222 (name "python-xunitparser")