Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1{ 2 lib, 3 stdenv, 4 buildPythonPackage, 5 fetchPypi, 6 fetchpatch, 7 python, 8 scripttest, 9 pytz, 10 pbr, 11 tempita, 12 decorator, 13 sqlalchemy, 14 six, 15 sqlparse, 16 testrepository, 17}: 18 19buildPythonPackage rec { 20 pname = "sqlalchemy-migrate"; 21 version = "0.13.0"; 22 format = "setuptools"; 23 24 src = fetchPypi { 25 inherit pname version; 26 sha256 = "1y0lcqii7b4vp7yh9dyxrl4i77hi8jkkw7d06mgdw2h458ljxh0b"; 27 }; 28 29 patches = [ 30 # See: https://review.openstack.org/#/c/608382/ 31 # https://github.com/openstack/sqlalchemy-migrate/pull/18 32 (fetchpatch { 33 url = "https://github.com/openstack/sqlalchemy-migrate/commit/a5d69a17d9354ec1a792493280f96484740cf7ff.patch"; 34 sha256 = "1qyfq2m7w7xqf0r9bc2x42qcra4r9k9l9g1jy5j0fvlb6bvvjj07"; 35 }) 36 ./python3.11-comp.diff 37 ]; 38 39 postPatch = '' 40 substituteInPlace test-requirements.txt \ 41 --replace "ibm_db_sa>=0.3.0;python_version<'3.0'" "" \ 42 --replace "ibm-db-sa-py3;python_version>='3.0'" "" \ 43 --replace "tempest-lib>=0.1.0" "" \ 44 --replace "testtools>=0.9.34,<0.9.36" "" \ 45 --replace "pylint" "" 46 ''; 47 48 nativeCheckInputs = [ 49 scripttest 50 pytz 51 testrepository 52 ]; 53 propagatedBuildInputs = [ 54 pbr 55 tempita 56 decorator 57 sqlalchemy 58 six 59 sqlparse 60 ]; 61 62 doCheck = !stdenv.isDarwin; 63 64 checkPhase = '' 65 export PATH=$PATH:$out/bin 66 echo sqlite:///__tmp__ > test_db.cfg 67 # depends on ibm_db_sa 68 rm migrate/tests/changeset/databases/test_ibmdb2.py 69 # wants very old testtools 70 rm migrate/tests/versioning/test_schema.py 71 # transient failures on py27 72 substituteInPlace migrate/tests/versioning/test_util.py --replace "test_load_model" "noop" 73 ${python.interpreter} setup.py test 74 ''; 75 76 meta = with lib; { 77 homepage = "https://opendev.org/x/sqlalchemy-migrate"; 78 description = "Schema migration tools for SQLAlchemy"; 79 license = licenses.asl20; 80 maintainers = teams.openstack.members ++ (with maintainers; [ makefu ]); 81 broken = lib.versionAtLeast sqlalchemy.version "2.0.0"; 82 }; 83}