~ruther/guix-local

13728a610478714c6e4673fa0e4e036c71d8a107 — Nicolas Graves 2 years ago c5de620
gnu: dynaconf: Improve package style.

* gnu/packages/python-xyz.scm (dynaconf): Improve package-style and
  ignore coverage tests.
  [origin](snippet): More concise snippet. Remove coverage management.
  [arguments]<#:test-flags>: Add arguments from former check
  replacement phase.
  <#:phases>: Remove check replacement phase.

Change-Id: I2a0e0a8dea5000aecc05707c35d307c867c96709
Signed-off-by: Nicolas Goaziou <mail@nicolasgoaziou.fr>
1 files changed, 14 insertions(+), 28 deletions(-)

M gnu/packages/python-xyz.scm
M gnu/packages/python-xyz.scm => gnu/packages/python-xyz.scm +14 -28
@@ 36409,43 36409,29 @@ Python @code{set} interface.")
         "0fj2ffvzfvjf4d7f672h5x5fzq26f8hax9j3dfsix158fwm0212w"))
       (patches (search-patches "dynaconf-unvendor-deps.patch"))
       (modules '((guix build utils)))
       (snippet '(begin
                   ;; Remove vendored dependencies
                   (let ((unvendor '("click" "dotenv" "ruamel" "toml")))
                     (with-directory-excursion "dynaconf/vendor"
                       (for-each delete-file-recursively unvendor)))
                   ;; Lower coverage quality gate for unit tests
                   (substitute* ".coveragerc"
                     (("fail_under = 95") "fail_under = 50"))))))
       ;; Remove vendored dependencies
       (snippet '(let ((unvendor '("click" "dotenv" "ruamel" "toml")))
                   (with-directory-excursion "dynaconf/vendor"
                     (for-each delete-file-recursively unvendor))))))
    (build-system pyproject-build-system)
    (arguments
     `(#:test-flags
       '("-k"
         ,(let ((click-tests '("test_negative_get"
                               "test_inspect_invalid_format")))
            ;; Disable integration tests
            (string-append "not integration and not "
                           ;; These tests fail because we use Click 8.* instead of
                           ;; Click 7
                           (string-join click-tests " and not "))))
       '("--ignore=tests/test_vault.py"  ; depend on hvac and a live Vault
         "-k" ,(let ((click-tests '("test_negative_get"
                                    "test_inspect_invalid_format")))
                 ;; Disable integration tests
                 (string-append "not integration and not "
                                ;; These tests fail because we use Click 8.*
                                ;; instead of Click 7
                                (string-join click-tests " and not ")))
         "tests")
       #:phases
       (modify-phases %standard-phases
         (add-after 'unpack 'patch-for-click-8
           (lambda _
             (substitute* "dynaconf/cli.py"
               (("click.get_os_args\\()") ;deprecated from Click 8.1+
                "sys.argv[1:]"))))
         (replace 'check
           (lambda* (#:key tests? test-flags #:allow-other-keys)
             (when tests?
               ;; These tests depend on hvac and a live Vault process.
               (delete-file "tests/test_vault.py")
               (apply invoke
                      `("py.test" ,@test-flags "-v"
                        "--cov-config" ".coveragerc"
                        "--cov=dynaconf"
                        "-l" "--tb=short"
                        "--maxfail=1" "tests/"))))))))
                "sys.argv[1:]")))))))
    (propagated-inputs
     (list python-click python-configobj python-dotenv-0.13.0
           python-ruamel.yaml-0.16 python-toml python-tomli))