aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Sturmfels <ben@sturm.com.au>2017-04-19 02:16:18 +1000
committerMarius Bakke <mbakke@fastmail.com>2017-04-18 19:16:45 +0200
commit16fe516e78287166d720bff783acbe3661878102 (patch)
tree29ae5e6a0563d5a24ec8bc686d36fac7b3c7ce7d
parentf8818360d5c185543b4bd1ad1c3c3ad7191af0c4 (diff)
downloadgnu-guix-16fe516e78287166d720bff783acbe3661878102.tar
gnu-guix-16fe516e78287166d720bff783acbe3661878102.tar.gz
gnu: Add python-fudge.
* gnu/packages/python.scm (python-fudge): New variable. Signed-off-by: Marius Bakke <mbakke@fastmail.com>
-rw-r--r--gnu/packages/python.scm34
1 files changed, 34 insertions, 0 deletions
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 8cd433a93d..aa014db364 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -37,6 +37,7 @@
;;; Copyright © 2017 Carlo Zancanaro <carlo@zancanaro.id.au>
;;; Copyright © 2017 Frederick M. Muriithi <fredmanglis@gmail.com>
;;; Copyright © 2017 humanitiesNerd <catonano@gmail.com>
+;;; Copyright © 2017 Ben Sturmfels <ben@sturm.com.au>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -13965,3 +13966,36 @@ recognize TestCases.")
(sha256
(base32
"17jlkdpqw22z1nyml5ybslilqkzmnk0dxxjml8bfghav1l5hbwd2"))))))
+
+(define-public python-fudge
+ (package
+ (name "python-fudge")
+ ;; 0.9.6 is the latest version suitable for testing the "fabric" Python 2
+ ;; package, which is currently the only use of this package.
+ (version "0.9.6")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "fudge" version))
+ (sha256
+ (base32
+ "185ia3vr3qk4f2s1a9hdxb8ci4qc0x0xidrad96pywg8j930qs9l"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:tests? #f)) ;XXX: Tests require the NoseJS Python package.
+ (home-page "https://github.com/fudge-py/fudge")
+ (synopsis "Replace real objects with fakes/mocks/stubs while testing")
+ (description
+ "Fudge is a Python module for using fake objects (mocks and stubs) to
+test real ones.
+
+In readable Python code, you declare the methods available on your fake object
+and how they should be called. Then you inject that into your application and
+start testing. This declarative approach means you don’t have to record and
+playback actions and you don’t have to inspect your fakes after running code.
+If the fake object was used incorrectly then you’ll see an informative
+exception message with a traceback that points to the culprit.")
+ (license license:expat)))
+
+(define-public python2-fudge
+ (package-with-python2 python-fudge))