diff --git a/SQLAlchemy-0.7.10-SLES-drop-failing-tests.patch b/SQLAlchemy-0.7.10-SLES-drop-failing-tests.patch deleted file mode 100644 index 467fb51..0000000 --- a/SQLAlchemy-0.7.10-SLES-drop-failing-tests.patch +++ /dev/null @@ -1,119 +0,0 @@ -diff -ruN a/test/aaa_profiling/test_pool.py b/test/aaa_profiling/test_pool.py ---- a/test/aaa_profiling/test_pool.py 2013-02-08 01:10:48.000000000 +0100 -+++ b/test/aaa_profiling/test_pool.py 2013-08-01 15:36:55.984917877 +0200 -@@ -36,16 +36,6 @@ - def test_first_connect(self): - conn = pool.connect() - -- def test_second_connect(self): -- conn = pool.connect() -- conn.close() -- -- @profiling.function_call_count() -- def go(): -- conn2 = pool.connect() -- return conn2 -- c2 = go() -- - def test_second_samethread_connect(self): - conn = pool.connect() - -diff -ruN a/test/engine/test_execute.py b/test/engine/test_execute.py ---- a/test/engine/test_execute.py 2013-02-08 01:10:48.000000000 +0100 -+++ b/test/engine/test_execute.py 2013-08-01 15:38:02.992917771 +0200 -@@ -212,29 +212,6 @@ - finally: - conn.close() - -- def test_exception_wrapping_non_dbapi_statement(self): -- class MyType(TypeDecorator): -- impl = Integer -- def process_bind_param(self, value, dialect): -- raise Exception("nope") -- -- def _go(conn): -- assert_raises_message( -- tsa.exc.StatementError, -- r"nope \(original cause: Exception: nope\) 'SELECT 1 ", -- conn.execute, -- select([1]).\ -- where( -- column('foo') == literal('bar', MyType()) -- ) -- ) -- _go(testing.db) -- conn = testing.db.connect() -- try: -- _go(conn) -- finally: -- conn.close() -- - def test_stmt_exception_pickleable_no_dbapi(self): - self._test_stmt_exception_pickleable(Exception("hello world")) - -@@ -582,33 +559,6 @@ - "bound parameter sets ... ('98',), ('99',)]" - ) - -- def test_error_large_dict(self): -- assert_raises_message( -- tsa.exc.DBAPIError, -- r".*'INSERT INTO nonexistent \(data\) values \(:data\)' " -- "\[{'data': '0'}, {'data': '1'}, {'data': '2'}, " -- "{'data': '3'}, {'data': '4'}, {'data': '5'}, " -- "{'data': '6'}, {'data': '7'} ... displaying 10 of " -- "100 total bound parameter sets ... {'data': '98'}, {'data': '99'}\]", -- lambda: self.eng.execute( -- "INSERT INTO nonexistent (data) values (:data)", -- [{"data":str(i)} for i in xrange(100)] -- ) -- ) -- -- def test_error_large_list(self): -- assert_raises_message( -- tsa.exc.DBAPIError, -- r".*INSERT INTO nonexistent \(data\) values " -- "\(\?\)' \[\('0',\), \('1',\), \('2',\), \('3',\), " -- "\('4',\), \('5',\), \('6',\), \('7',\) ... displaying " -- "10 of 100 total bound parameter sets ... " -- "\('98',\), \('99',\)\]", -- lambda: self.eng.execute( -- "INSERT INTO nonexistent (data) values (?)", -- [(str(i), ) for i in xrange(100)] -- ) -- ) - - class LoggingNameTest(fixtures.TestBase): - __requires__ = 'ad_hoc_engines', -diff -ruN a/test/sql/test_query.py b/test/sql/test_query.py ---- a/test/sql/test_query.py 2013-02-08 01:10:49.000000000 +0100 -+++ b/test/sql/test_query.py 2013-08-01 15:38:26.272917734 +0200 -@@ -46,28 +46,6 @@ - users.insert().execute(user_id = 7, user_name = 'jack') - assert users.count().scalar() == 1 - -- def test_insert_heterogeneous_params(self): -- """test that executemany parameters are asserted to match the parameter set of the first.""" -- -- assert_raises_message(exc.StatementError, -- r"A value is required for bind parameter 'user_name', in " -- "parameter group 2 \(original cause: (sqlalchemy.exc.)?InvalidRequestError: A " -- "value is required for bind parameter 'user_name', in " -- "parameter group 2\) 'INSERT INTO query_users", -- users.insert().execute, -- {'user_id':7, 'user_name':'jack'}, -- {'user_id':8, 'user_name':'ed'}, -- {'user_id':9} -- ) -- -- # this succeeds however. We aren't yet doing -- # a length check on all subsequent parameters. -- users.insert().execute( -- {'user_id':7}, -- {'user_id':8, 'user_name':'ed'}, -- {'user_id':9} -- ) -- - def test_update(self): - users.insert().execute(user_id = 7, user_name = 'jack') - assert users.count().scalar() == 1 diff --git a/SQLAlchemy-0.7.10.tar.gz b/SQLAlchemy-0.7.10.tar.gz deleted file mode 100644 index dd3c461..0000000 --- a/SQLAlchemy-0.7.10.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:77aa39d65c9d043eba6ba329b359ff867424fd6c403b7c0cb112b65e507e1d66 -size 3541639 diff --git a/SQLAlchemy-0.8.3.tar.gz b/SQLAlchemy-0.8.3.tar.gz new file mode 100644 index 0000000..65ada47 --- /dev/null +++ b/SQLAlchemy-0.8.3.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:80702cd95ade2d31d018e27accd4a75afb5b82e1b77b206c4ea463378c08197b +size 3895285 diff --git a/python-SQLAlchemy.changes b/python-SQLAlchemy.changes index 8df7924..2355947 100644 --- a/python-SQLAlchemy.changes +++ b/python-SQLAlchemy.changes @@ -1,3 +1,12 @@ +------------------------------------------------------------------- +Wed Oct 30 16:27:24 UTC 2013 - speilicke@suse.com + +- Update to version 0.8.3: + + See http://docs.sqlalchemy.org/en/latest/changelog/changelog_08.html#change-0.8.3 +- Drop outdated patches + + SQLAlchemy-0.7.10-SLES-drop-failing-tests.patch + + sqlalchemy-0.7-logging.patch + ------------------------------------------------------------------- Thu Oct 24 11:15:08 UTC 2013 - speilicke@suse.com diff --git a/python-SQLAlchemy.spec b/python-SQLAlchemy.spec index 6ffff35..d036b23 100644 --- a/python-SQLAlchemy.spec +++ b/python-SQLAlchemy.spec @@ -17,21 +17,21 @@ Name: python-SQLAlchemy -Version: 0.7.10 +Version: 0.8.3 Release: 0 Url: http://www.sqlalchemy.org Summary: Database Abstraction Library License: MIT Group: Development/Languages/Python Source0: http://pypi.python.org/packages/source/S/SQLAlchemy/SQLAlchemy-%{version}.tar.gz -Patch0: sqlalchemy-0.7-logging.patch Patch1: sqlalchemy-0.7-setup_test.patch -Patch2: SQLAlchemy-0.7.10-SLES-drop-failing-tests.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: python-devel -BuildRequires: python-nose -BuildRequires: python-pysqlite BuildRequires: python-setuptools +# Test requirements: +BuildRequires: python-mock +BuildRequires: python-nose >= 0.11 +#BuildRequires: python-pysqlite Provides: python-sqlalchemy = %{version} Obsoletes: python-sqlalchemy < %{version} %if 0%{?suse_version} && 0%{?suse_version} <= 1110 @@ -63,14 +63,10 @@ reference for python-SQLAlchemy. %setup -q -n SQLAlchemy-%{version} rm -rf doc/build # Remove unnecessary scripts for building documentation sed -i 's/\r$//' examples/dynamic_dict/dynamic_dict.py -%patch0 %patch1 -%if 0%{?suse_version} && 0%{?suse_version} <= 1110 -%patch2 -p1 -%endif %build -CFLAGS="%{optflags} -fno-strict-aliasing" python setup.py --with-cextensions build +CFLAGS="%{optflags} -fno-strict-aliasing" python setup.py build %install python setup.py install --prefix=%{_prefix} --root=%{buildroot} @@ -80,7 +76,7 @@ python setup.py test %files %defattr(-,root,root,-) -%doc CHANGES CHANGES_PRE_06 LICENSE README.rst README.py3k README.unittests +%doc CHANGES LICENSE README.rst README.py3k README.unittests.rst %{python_sitearch}/sqlalchemy/ %{python_sitearch}/SQLAlchemy-%{version}-py%{py_ver}.egg-info diff --git a/sqlalchemy-0.7-logging.patch b/sqlalchemy-0.7-logging.patch deleted file mode 100644 index bd5beec..0000000 --- a/sqlalchemy-0.7-logging.patch +++ /dev/null @@ -1,116 +0,0 @@ -Some odd reason usual import logging doesn't work; matches import of other modules in test_execute.py -diff -ur SQLAlchemy-0.7.9.orig/test/engine/test_execute.py SQLAlchemy-0.7.9/test/engine/test_execute.py ---- test/engine/test_execute.py 2012-10-02 06:33:29.000000000 +0800 -+++ test/engine/test_execute.py 2013-02-26 16:13:44.923958389 +0800 -@@ -9,7 +9,7 @@ - import sqlalchemy as tsa - from test.lib import testing, engines - from test.lib.engines import testing_engine --import logging -+from logging import handlers, getLogger, DEBUG, INFO, WARN - from sqlalchemy.dialects.oracle.zxjdbc import ReturningParam - from sqlalchemy.engine import base, default - from sqlalchemy.engine.base import Connection, Engine -@@ -542,18 +542,18 @@ - def setup(self): - self.eng = engines.testing_engine(options={'echo':True}) - self.eng.execute("create table foo (data string)") -- self.buf = logging.handlers.BufferingHandler(100) -+ self.buf = handlers.BufferingHandler(100) - for log in [ -- logging.getLogger('sqlalchemy.engine'), -- logging.getLogger('sqlalchemy.pool') -+ getLogger('sqlalchemy.engine'), -+ getLogger('sqlalchemy.pool') - ]: - log.addHandler(self.buf) - - def teardown(self): - self.eng.execute("drop table foo") - for log in [ -- logging.getLogger('sqlalchemy.engine'), -- logging.getLogger('sqlalchemy.pool') -+ getLogger('sqlalchemy.engine'), -+ getLogger('sqlalchemy.pool') - ]: - log.removeHandler(self.buf) - -@@ -646,17 +646,17 @@ - return engines.testing_engine(options=kw) - - def setup(self): -- self.buf = logging.handlers.BufferingHandler(100) -+ self.buf = handlers.BufferingHandler(100) - for log in [ -- logging.getLogger('sqlalchemy.engine'), -- logging.getLogger('sqlalchemy.pool') -+ getLogger('sqlalchemy.engine'), -+ getLogger('sqlalchemy.pool') - ]: - log.addHandler(self.buf) - - def teardown(self): - for log in [ -- logging.getLogger('sqlalchemy.engine'), -- logging.getLogger('sqlalchemy.pool') -+ getLogger('sqlalchemy.engine'), -+ getLogger('sqlalchemy.pool') - ]: - log.removeHandler(self.buf) - -@@ -703,14 +703,14 @@ - __requires__ = 'ad_hoc_engines', - - def setup(self): -- self.level = logging.getLogger('sqlalchemy.engine').level -- logging.getLogger('sqlalchemy.engine').setLevel(logging.WARN) -- self.buf = logging.handlers.BufferingHandler(100) -- logging.getLogger('sqlalchemy.engine').addHandler(self.buf) -+ self.level = getLogger('sqlalchemy.engine').level -+ getLogger('sqlalchemy.engine').setLevel(WARN) -+ self.buf = handlers.BufferingHandler(100) -+ getLogger('sqlalchemy.engine').addHandler(self.buf) - - def teardown(self): -- logging.getLogger('sqlalchemy.engine').removeHandler(self.buf) -- logging.getLogger('sqlalchemy.engine').setLevel(self.level) -+ getLogger('sqlalchemy.engine').removeHandler(self.buf) -+ getLogger('sqlalchemy.engine').setLevel(self.level) - - def testing_engine(self): - e = engines.testing_engine() -@@ -727,26 +727,26 @@ - - eq_(e1._should_log_info(), False) - eq_(e1._should_log_debug(), False) -- eq_(e1.logger.isEnabledFor(logging.INFO), False) -- eq_(e1.logger.getEffectiveLevel(), logging.WARN) -+ eq_(e1.logger.isEnabledFor(INFO), False) -+ eq_(e1.logger.getEffectiveLevel(), WARN) - - e1.echo = True - eq_(e1._should_log_info(), True) - eq_(e1._should_log_debug(), False) -- eq_(e1.logger.isEnabledFor(logging.INFO), True) -- eq_(e1.logger.getEffectiveLevel(), logging.INFO) -+ eq_(e1.logger.isEnabledFor(INFO), True) -+ eq_(e1.logger.getEffectiveLevel(), INFO) - - e1.echo = 'debug' - eq_(e1._should_log_info(), True) - eq_(e1._should_log_debug(), True) -- eq_(e1.logger.isEnabledFor(logging.DEBUG), True) -- eq_(e1.logger.getEffectiveLevel(), logging.DEBUG) -+ eq_(e1.logger.isEnabledFor(DEBUG), True) -+ eq_(e1.logger.getEffectiveLevel(), DEBUG) - - e1.echo = False - eq_(e1._should_log_info(), False) - eq_(e1._should_log_debug(), False) -- eq_(e1.logger.isEnabledFor(logging.INFO), False) -- eq_(e1.logger.getEffectiveLevel(), logging.WARN) -+ eq_(e1.logger.isEnabledFor(INFO), False) -+ eq_(e1.logger.getEffectiveLevel(), WARN) - - def test_echo_flag_independence(self): - """test the echo flag's independence to a specific engine."""