mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-25 05:48:07 -05:00
gnu: Add python-pyfakefs and python2-pyfakefs.
* gnu/packages/patches/python-pyfakefs-remove-bad-test.patch: New file. * gnu/local.mk (dist_patch_DATA): Add the patch. * gnu/packages/check.scm (python-pyfakefs, python2-pyfakefs): New variables.
This commit is contained in:
parent
0406434baa
commit
968e86bd93
3 changed files with 74 additions and 0 deletions
|
@ -1203,6 +1203,7 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/python2-larch-coverage-4.0a6-compatibility.patch \
|
||||
%D%/packages/patches/python-configobj-setuptools.patch \
|
||||
%D%/packages/patches/python-faker-fix-build-32bit.patch \
|
||||
%D%/packages/patches/python-pyfakefs-remove-bad-test.patch \
|
||||
%D%/packages/patches/python-flint-includes.patch \
|
||||
%D%/packages/patches/python-mox3-python3.6-compat.patch \
|
||||
%D%/packages/patches/python-testtools.patch \
|
||||
|
|
|
@ -29,6 +29,7 @@
|
|||
;;; Copyright © 2017, 2018 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2018 Fis Trivial <ybbs.daans@hotmail.com>
|
||||
;;; Copyright © 2019 Pierre Langlois <pierre.langlois@gmx.com>
|
||||
;;; Copyright © 2019 Chris Marusich <cmmarusich@gmail.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -2262,3 +2263,52 @@ (define-public umockdev
|
|||
program or test suite under a test bed with the previously recorded devices
|
||||
loaded.")
|
||||
(license license:lgpl2.1+)))
|
||||
|
||||
(define-public python-pyfakefs
|
||||
(package
|
||||
(name "python-pyfakefs")
|
||||
(version "3.5.8")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
;; We use the PyPI URL because there is no proper release
|
||||
;; available from GitHub. The GitHub project only provides
|
||||
;; autogenerated tarballs, which are known to change in place.
|
||||
(uri (pypi-uri "pyfakefs" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0qb9jp0bqhc0dv0rn805fv99029fvx135f3bvka6scfkcl6jgllc"))
|
||||
(patches (search-patches
|
||||
"python-pyfakefs-remove-bad-test.patch"))
|
||||
(file-name (string-append name "-" version ".tar.gz"))))
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
;; The default test suite does not run these extra tests.
|
||||
(add-after 'check 'check-pytest-plugin
|
||||
(lambda _
|
||||
(invoke
|
||||
"python" "-m" "pytest"
|
||||
"pyfakefs/pytest_tests/pytest_plugin_test.py")
|
||||
#t)))))
|
||||
(native-inputs
|
||||
`(("python-pytest" ,python-pytest)))
|
||||
(build-system python-build-system)
|
||||
;; Guix lint doesn't like that this is a permanent redirect to the GitHub
|
||||
;; page, but the pyfakefs documentation asks us to use this specific URL
|
||||
;; when linking to the project. Honor their request.
|
||||
(home-page "http://pyfakefs.org/")
|
||||
;; TRANSLATORS: In the synopsis, "Mock" is a verb.
|
||||
(synopsis "Mock file system interactions in tests")
|
||||
(description
|
||||
"This package provides a Python library intended for use in automated
|
||||
tests. One difficulty when testing software is that the code under test might
|
||||
need to read or write to files in the local file system. If the file system
|
||||
is not set up in just the right way, it might cause a spurious error during
|
||||
the test. The pyfakefs library provides a solution to problems like this by
|
||||
mocking file system interactions. In other words, it arranges for the code
|
||||
under test to interact with a fake file system instead of the real file
|
||||
system. The code under test requires no modification to work with pyfakefs.")
|
||||
(license license:asl2.0)))
|
||||
|
||||
(define-public python2-pyfakefs
|
||||
(package-with-python2 python-pyfakefs))
|
||||
|
|
23
gnu/packages/patches/python-pyfakefs-remove-bad-test.patch
Normal file
23
gnu/packages/patches/python-pyfakefs-remove-bad-test.patch
Normal file
|
@ -0,0 +1,23 @@
|
|||
This test incorrectly assumes that the root user is always available.
|
||||
However, in the build environment, the root user is not available.
|
||||
Note that because the original file distributed in the release on PyPi
|
||||
has lines ending in CRLF, those are retained in the diff below.
|
||||
|
||||
--- a/pyfakefs/tests/fake_filesystem_test.py 1969-12-31 16:00:00.000000000 -0800
|
||||
+++ b/pyfakefs/tests/fake_filesystem_test.py 1969-12-31 16:00:00.000000000 -0800
|
||||
@@ -1021,15 +1021,6 @@
|
||||
self.assertEqual(self.path.expanduser('~'),
|
||||
self.os.environ['HOME'].replace('/', '!'))
|
||||
|
||||
- @unittest.skipIf(TestCase.is_windows or TestCase.is_cygwin,
|
||||
- 'only tested on unix systems')
|
||||
- def test_expand_root(self):
|
||||
- if sys.platform == 'darwin':
|
||||
- roothome = '!var!root'
|
||||
- else:
|
||||
- roothome = '!root'
|
||||
- self.assertEqual(self.path.expanduser('~root'), roothome)
|
||||
-
|
||||
def test_getsize_path_nonexistent(self):
|
||||
file_path = 'foo!bar!baz'
|
||||
self.assertRaises(os.error, self.path.getsize, file_path)
|
Loading…
Reference in a new issue