From bcad4f5dfe16eed888a022bc9e1df7b970fee93a Mon Sep 17 00:00:00 2001 From: Pádraig Brady
Date: Sep 11 2013 23:46:01 +0000
Subject: handle entrypoint programs with multiple sqlalchemy versions
* buildrequire older sqlalchemy to ensure it's ignored in %check
* Ensure replace_dist() is inserted at the start of "entry_point"
programs (including nosetests).
---
diff --git a/python-migrate-newdeps.patch b/python-migrate-newdeps.patch
index ae82140..0715d84 100644
--- a/python-migrate-newdeps.patch
+++ b/python-migrate-newdeps.patch
@@ -1,7 +1,7 @@
diff -Naur sqlalchemy-migrate-0.7.2.orig/migrate/__init__.py sqlalchemy-migrate-0.7.2/migrate/__init__.py
--- sqlalchemy-migrate-0.7.2.orig/migrate/__init__.py 2011-11-01 20:22:48.000000000 +0000
-+++ sqlalchemy-migrate-0.7.2/migrate/__init__.py 2013-09-11 15:23:42.443386304 +0000
-@@ -5,7 +5,29 @@
++++ sqlalchemy-migrate-0.7.2/migrate/__init__.py 2013-09-11 15:40:00.963685954 +0000
+@@ -5,6 +5,28 @@
using Python.
"""
@@ -26,23 +26,7 @@ diff -Naur sqlalchemy-migrate-0.7.2.orig/migrate/__init__.py sqlalchemy-migrate-
+
+replace_dist("SQLAlchemy >= 0.6.3")
+
++
from migrate.versioning import *
from migrate.changeset import *
- __version__ = '0.7.2'
-+
-diff -Naur sqlalchemy-migrate-0.7.2.orig/migrate/__init__.py.newdeps sqlalchemy-migrate-0.7.2/migrate/__init__.py.newdeps
---- sqlalchemy-migrate-0.7.2.orig/migrate/__init__.py.newdeps 1970-01-01 00:00:00.000000000 +0000
-+++ sqlalchemy-migrate-0.7.2/migrate/__init__.py.newdeps 2011-11-01 20:22:48.000000000 +0000
-@@ -0,0 +1,11 @@
-+"""
-+ SQLAlchemy migrate provides two APIs :mod:`migrate.versioning` for
-+ database schema version and repository management and
-+ :mod:`migrate.changeset` that allows to define database schema changes
-+ using Python.
-+"""
-+
-+from migrate.versioning import *
-+from migrate.changeset import *
-+
-+__version__ = '0.7.2'
diff --git a/python-migrate.spec b/python-migrate.spec
index 9be6baf..b242b0a 100644
--- a/python-migrate.spec
+++ b/python-migrate.spec
@@ -30,6 +30,8 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildArch: noarch
BuildRequires: python2-devel
+# Require older sqlalchemy to ensure new one is selected in %%check
+BuildRequires: python-sqlalchemy
BuildRequires: python-sqlalchemy0.7
BuildRequires: python-setuptools
BuildRequires: python-nose
@@ -83,6 +85,15 @@ sed -i "s/import unittest2/import unittest as unittest2/g" \
%{__rm} -rf %{buildroot}
%{__python} setup.py install --skip-build --root %{buildroot}
+# Insert our replace_dist() patch first to these entry_point programs
+for bin in sqlalchemy-migrate sqlalchemy-migrate-repository; do
+ (echo '#!/usr/bin/python'
+ sed -n 's/^+\([^+]\)/\1/p' %{PATCH200}
+ cat %{buildroot}/%{_bindir}/$bin) > $bin.tmp
+ mv $bin.tmp %{buildroot}/%{_bindir}/$bin
+ chmod a+x %{buildroot}/%{_bindir}/$bin
+done
+
%clean
%{__rm} -rf %{buildroot}
@@ -90,13 +101,18 @@ sed -i "s/import unittest2/import unittest as unittest2/g" \
# Need to set PATH for two reasons:
# 1) Path isn't being cleared by mock so we have /root/bin/ in the PATH
# 2) Need to be able to find the newly installed migrate binaries
-PATH=/bin:/usr/bin:%{buildroot}%{_bindir}
+# 3) Need to avoid older versions of migrate binaries which may be installed
+PATH=%{buildroot}%{_bindir}:/bin:/usr/bin
export PATH
PYTHONPATH=`pwd`
export PYTHONPATH
echo 'sqlite:///__tmp__' > test_db.cfg
-nosetests
+
+# Rather than just calling `nosetests`,
+# Insert our replace_dist() patch first
+(sed -n 's/^+\([^+]\)/\1/p' < %{PATCH200};
+ cat /usr/bin/nosetests) | python
%files
%defattr(-,root,root,-)
@@ -106,10 +122,7 @@ nosetests
%changelog
* Wed Sep 11 2013 Pádraig Brady - 0.7.2-7
- Add compatability for sqlalchemy >= 0.8