1{ stdenv, buildPythonPackage, fetchPypi, fetchpatch, python
2, unittest2, scripttest, pytz, pylint, mock
3, testtools, pbr, tempita, decorator, sqlalchemy
4, six, sqlparse, testrepository
5}:
6buildPythonPackage rec {
7 pname = "sqlalchemy-migrate";
8 version = "0.12.0";
9
10 src = fetchPypi {
11 inherit pname version;
12 sha256 = "1bngmbcry97kwhrxwm0d74zg9qg7gmiws6rd78xshyfgpcqdmylc";
13 };
14
15 # See: https://review.openstack.org/#/c/608382/
16 patches = [ (fetchpatch {
17 url = https://github.com/openstack/sqlalchemy-migrate/pull/18.patch;
18 sha256 = "1qyfq2m7w7xqf0r9bc2x42qcra4r9k9l9g1jy5j0fvlb6bvvjj07";
19 }) ];
20
21 checkInputs = [ unittest2 scripttest pytz mock testtools testrepository ];
22 propagatedBuildInputs = [ pbr tempita decorator sqlalchemy six sqlparse ];
23
24 prePatch = ''
25 sed -i -e /tempest-lib/d \
26 -e /testtools/d \
27 test-requirements.txt
28 '';
29 checkPhase = ''
30 export PATH=$PATH:$out/bin
31 echo sqlite:///__tmp__ > test_db.cfg
32 # depends on ibm_db_sa
33 rm migrate/tests/changeset/databases/test_ibmdb2.py
34 # wants very old testtools
35 rm migrate/tests/versioning/test_schema.py
36 # transient failures on py27
37 substituteInPlace migrate/tests/versioning/test_util.py --replace "test_load_model" "noop"
38 ${python.interpreter} setup.py test
39 '';
40
41 meta = with stdenv.lib; {
42 homepage = https://github.com/openstack/sqlalchemy-migrate;
43 description = "Schema migration tools for SQLAlchemy";
44 license = licenses.asl20;
45 maintainers = with maintainers; [ makefu ];
46 };
47}