Subject: bug#25998: [PATCH] gnu: Add python-faker.

From: Marius Bakke <[email-masked]>
Date: Mon, 6 Mar 2017 14:40:54 +0100

* gnu/packages/patches/python-fake-factory-fix-build-32bit.patch: Adjust
paths. Also rename to ...
* gnu/packages/patches/python-faker-fix-build-32bit.patch: ... this.
* gnu/local.mk (dist_patch_DATA): Adjust accordingly.
* gnu/packages/python.scm (python-faker, python2-faker): New variables.
(python-fake-factory)[properties]: Superseded by PYTHON-FAKER.
(python2-fake-factory)[properties]: Superseded by PYTHON2-FAKER.
(python-orator, python2-orator)[propagated-inputs]: Replace
PYTHON-FAKE-FACTORY with PYTHON-FAKER.
---
 gnu/local.mk                                       |  2 +-
 ...it.patch => python-faker-fix-build-32bit.patch} |  6 +--
 gnu/packages/python.scm                            | 55 +++++++++++++++++++++-
 3 files changed, 57 insertions(+), 6 deletions(-)
 rename gnu/packages/patches/{python-fake-factory-fix-build-32bit.patch => python-faker-fix-build-32bit.patch} (94%)

diff --git a/gnu/local.mk b/gnu/local.mk
index c88892df5..12e5e4d9b 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -863,7 +863,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/python2-rdflib-drop-sparqlwrapper.patch	\
   %D%/packages/patches/python-statsmodels-fix-tests.patch	\
   %D%/packages/patches/python-configobj-setuptools.patch	\
-  %D%/packages/patches/python-fake-factory-fix-build-32bit.patch	\
+  %D%/packages/patches/python-faker-fix-build-32bit.patch	\
   %D%/packages/patches/python-paste-remove-website-test.patch	\
   %D%/packages/patches/python-paste-remove-timing-test.patch	\
   %D%/packages/patches/python-pygit2-disable-network-tests.patch	\
diff --git a/gnu/packages/patches/python-fake-factory-fix-build-32bit.patch b/gnu/packages/patches/python-faker-fix-build-32bit.patch
similarity index 94%
rename from gnu/packages/patches/python-fake-factory-fix-build-32bit.patch
rename to gnu/packages/patches/python-faker-fix-build-32bit.patch
index cb60896fa..466b28901 100644
--- a/gnu/packages/patches/python-fake-factory-fix-build-32bit.patch
+++ b/gnu/packages/patches/python-faker-fix-build-32bit.patch
@@ -2,10 +2,10 @@ These tests fail on 32-bit due to an overflow.
 
 Upstream bug URL: https://github.com/joke2k/faker/issues/408
 
-diff --git a/faker/tests/__init__.py b/faker/tests/__init__.py
+diff --git a/tests/__init__.py b/tests/__init__.py
 index 6026772..58b6b83 100644
---- a/faker/tests/__init__.py
-+++ b/faker/tests/__init__.py
+--- a/tests/__init__.py
++++ b/tests/__init__.py
 @@ -384,7 +384,6 @@ class FactoryTestCase(unittest.TestCase):
          provider = Provider
          # test century
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 5631c7ac0..caf16a75f 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -11312,6 +11312,55 @@ parsing UK postcodes.")
 (define-public python2-ukpostcodeparser
   (package-with-python2 python-ukpostcodeparser))
 
+(define-public python-faker
+  (package
+  (name "python-faker")
+  (version "0.7.9")
+  (source (origin
+            (method url-fetch)
+            (uri (pypi-uri "Faker" version))
+            (sha256
+             (base32
+              "1fh2p2yz0fsdr4fqwxgddwbvfb6qn6vp8yx0qwqzra27yq5d1wsm"))
+            (patches
+             (search-patches "python-faker-fix-build-32bit.patch"))
+            (modules '((guix build utils)))
+            (snippet
+             '(begin
+                (for-each delete-file (find-files "." "\\.pyc$"))
+                #t))))
+  (build-system python-build-system)
+  (arguments
+   '(#:phases
+     (modify-phases %standard-phases
+       (replace 'check
+         (lambda _
+           (zero? (system* "python" "-m" "unittest" "-v" "tests")))))))
+  (native-inputs
+   `(;; For testing
+     ("python-email-validator" ,python-email-validator)
+     ("python-mock" ,python-mock)
+     ("python-ukpostcodeparser" ,python-ukpostcodeparser)))
+  (propagated-inputs
+   `(("python-dateutil" ,python-dateutil)
+     ("python-six" ,python-six)))
+  (home-page "https://github.com/joke2k/faker")
+  (synopsis "Python package that generates fake data")
+  (description
+   "Faker is a Python package that generates fake data such as names,
+addresses, and phone numbers.")
+  (license license:expat)
+  (properties `((python2-variant . ,(delay python2-faker))))))
+
+(define-public python2-faker
+  (let ((base (package-with-python2 (strip-python2-variant
+                                     python-faker))))
+    (package
+      (inherit base)
+      (propagated-inputs
+       `(("python2-ipaddress" ,python2-ipaddress)
+         ,@(package-propagated-inputs base))))))
+
 (define-public python-fake-factory
   (package
   (name "python-fake-factory")
@@ -11346,13 +11395,15 @@ parsing UK postcodes.")
    "Faker is a Python package that generates fake data such as names,
 addresses, and phone numbers.")
   (license license:expat)
-  (properties `((python2-variant . ,(delay python2-fake-factory))))))
+  (properties `((python2-variant . ,(delay python2-fake-factory))
+                (superseded . ,python-faker)))))
 
 (define-public python2-fake-factory
   (let ((base (package-with-python2 (strip-python2-variant
                                      python-fake-factory))))
     (package
       (inherit base)
+      (properties `((superseded . ,python2-faker)))
       (propagated-inputs
        `(("python2-ipaddress" ,python2-ipaddress)
          ,@(package-propagated-inputs base))))))
@@ -11419,7 +11470,7 @@ mocks, stubs and fakes.")
      `(("python-arrow" ,python-arrow)
        ("python-blinker" ,python-blinker)
        ("python-cleo" ,python-cleo)
-       ("python-fake-factory" ,python-fake-factory)
+       ("python-faker" ,python-faker)
        ("python-inflection" ,python-inflection)
        ("python-lazy-object-proxy" ,python-lazy-object-proxy)
        ("python-pyaml" ,python-pyaml)
-- 
2.12.0