1{ buildPythonPackage, fetchPypi, jinja2, werkzeug, flask
2, requests, pytz, backports_tempfile, cookies, jsondiff, botocore, aws-xray-sdk, docker, responses
3, six, boto, httpretty, xmltodict, nose, sure, boto3, freezegun, dateutil, mock, pyaml, python-jose }:
4
5buildPythonPackage rec {
6 pname = "moto";
7 version = "1.3.5";
8
9 src = fetchPypi {
10 inherit pname version;
11 sha256 = "52426f2567e51ba73fdc7c7d617236b7e7918dca2421caabe13e5290942b53d8";
12 };
13
14 postPatch = ''
15 # dateutil upper bound was just to keep compatibility with Python 2.6
16 # see https://github.com/spulec/moto/pull/1519 and https://github.com/boto/botocore/pull/1402
17 # regarding aws-xray-sdk: https://github.com/spulec/moto/commit/31eac49e1555c5345021a252cb0c95043197ea16
18 substituteInPlace setup.py \
19 --replace "python-dateutil<2.7.0" "python-dateutil<3.0.0" \
20 --replace "aws-xray-sdk<0.96," "aws-xray-sdk" \
21 --replace "jsondiff==1.1.1" "jsondiff>=1.1.1"
22 '';
23
24 propagatedBuildInputs = [
25 aws-xray-sdk
26 boto
27 boto3
28 dateutil
29 flask
30 httpretty
31 jinja2
32 pytz
33 werkzeug
34 requests
35 six
36 xmltodict
37 mock
38 pyaml
39 backports_tempfile
40 cookies
41 jsondiff
42 botocore
43 docker
44 responses
45 python-jose
46 ];
47
48 checkInputs = [ boto3 nose sure freezegun ];
49
50 checkPhase = "nosetests";
51
52 # TODO: make this true; I think lots of the tests want network access but we can probably run the others
53 doCheck = false;
54}