This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "SQLObject development repository".
The branch, master has been updated
via 54fa5fcb29c035a7d074c21d154933c17743da2e (commit)
via 7bc573abf52344822cc9c865739892f0e31569d3 (commit)
via 4622536c2c68ad1d39df1e85f196a4240bf0c937 (commit)
via cbfc236ed77f7e8de8cc2f8fee3fe56896ff9a35 (commit)
via b6ac85a087f0647cc50907df1e55d11bc219d8c8 (commit)
via 070bb647e0da7a1edafbf81c21cac57d79344bd9 (commit)
via d0c71ae303c01d748bebaa320481088cf6436c9d (commit)
via 83dd268319ea156674a9212d04c029d9bb56d6af (commit)
via 12e52446bc2f3668531d5930a475521c20eb8d2d (commit)
via 20e730152e8781482a2d8ea7de5f9d39de7e516c (commit)
from 29ddb111df870457a1a79fd83a4457f872d815e0 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://sourceforge.net/p/sqlobject/sqlobject/ci/54fa5fcb29c035a7d074c21d154933c17743da2e
commit 54fa5fcb29c035a7d074c21d154933c17743da2e
Author: Oleg Broytman <ph...@ph...>
Date: Mon Jan 2 03:18:57 2017 +0300
We fixed most problems with py-postgresql
diff --git a/docs/News.rst b/docs/News.rst
index f3bff9b..58bbc27 100644
--- a/docs/News.rst
+++ b/docs/News.rst
@@ -49,7 +49,7 @@ Drivers (work in progress)
* Add support for `py-postgresql
<https://pypi.python.org/pypi/py-postgresql>`_ PostgreSQL driver. There
- are major problems with the driver.
+ are still problems with the driver.
* Add support for `pg8000 <https://pypi.python.org/pypi/pg8000>`_
PostgreSQL driver. There are still some problems.
http://sourceforge.net/p/sqlobject/sqlobject/ci/7bc573abf52344822cc9c865739892f0e31569d3
commit 7bc573abf52344822cc9c865739892f0e31569d3
Author: Oleg Broytman <ph...@ph...>
Date: Mon Jan 2 03:17:24 2017 +0300
Fix DuplicateEntryError in py-postgresql
diff --git a/sqlobject/postgres/pgconnection.py b/sqlobject/postgres/pgconnection.py
index 0455635..08e5390 100644
--- a/sqlobject/postgres/pgconnection.py
+++ b/sqlobject/postgres/pgconnection.py
@@ -15,7 +15,8 @@ class ErrorMessage(str):
obj.code = getattr(e, 'pgcode', None)
obj.error = getattr(e, 'pgerror', None)
else:
- obj.code = obj.error = None
+ obj.code = getattr(e, 'code', None)
+ obj.error = getattr(e, 'error', None)
obj.module = e.__module__
obj.exception = e.__class__.__name__
return obj
@@ -210,7 +211,8 @@ class PostgresConnection(DBAPI):
raise dberrors.OperationalError(ErrorMessage(e))
except self.module.IntegrityError as e:
msg = ErrorMessage(e)
- if getattr(e, 'pgcode', -1) == '23505' or \
+ if getattr(e, 'code', -1) == '23505' or \
+ getattr(e, 'pgcode', -1) == '23505' or \
getattr(e, 'sqlstate', -1) == '23505':
raise dberrors.DuplicateEntryError(msg)
else:
http://sourceforge.net/p/sqlobject/sqlobject/ci/4622536c2c68ad1d39df1e85f196a4240bf0c937
commit 4622536c2c68ad1d39df1e85f196a4240bf0c937
Author: Oleg Broytman <ph...@ph...>
Date: Mon Jan 2 03:16:14 2017 +0300
Fix py-postgresql: register a converter for bytes
diff --git a/sqlobject/postgres/pgconnection.py b/sqlobject/postgres/pgconnection.py
index 2efb128..0455635 100644
--- a/sqlobject/postgres/pgconnection.py
+++ b/sqlobject/postgres/pgconnection.py
@@ -140,6 +140,9 @@ class PostgresConnection(DBAPI):
else:
if "unix" in dsn_dict:
del dsn_dict["unix"]
+ # Register a converter for bytes
+ registerConverter(type(self.module.Binary(b'')),
+ PostgresBinaryConverter)
if driver == 'pg8000':
if host and host.startswith('/'):
dsn_dict["host"] = None
http://sourceforge.net/p/sqlobject/sqlobject/ci/cbfc236ed77f7e8de8cc2f8fee3fe56896ff9a35
commit cbfc236ed77f7e8de8cc2f8fee3fe56896ff9a35
Author: Oleg Broytman <ph...@ph...>
Date: Mon Jan 2 02:10:56 2017 +0300
Fix pg8000: DuplicateEntryError is a kind of ProgrammingError
diff --git a/sqlobject/postgres/pgconnection.py b/sqlobject/postgres/pgconnection.py
index 91d3dce..2efb128 100644
--- a/sqlobject/postgres/pgconnection.py
+++ b/sqlobject/postgres/pgconnection.py
@@ -215,7 +215,11 @@ class PostgresConnection(DBAPI):
except self.module.InternalError as e:
raise dberrors.InternalError(ErrorMessage(e))
except self.module.ProgrammingError as e:
- raise dberrors.ProgrammingError(ErrorMessage(e))
+ msg = ErrorMessage(e)
+ if (len(e.args) >= 2) and e.args[1] == '23505':
+ raise dberrors.DuplicateEntryError(msg)
+ else:
+ raise dberrors.ProgrammingError(msg)
except self.module.DataError as e:
raise dberrors.DataError(ErrorMessage(e))
except self.module.NotSupportedError as e:
http://sourceforge.net/p/sqlobject/sqlobject/ci/b6ac85a087f0647cc50907df1e55d11bc219d8c8
commit b6ac85a087f0647cc50907df1e55d11bc219d8c8
Author: Oleg Broytman <ph...@ph...>
Date: Mon Jan 2 01:26:46 2017 +0300
Force utf-8 charset for tests
diff --git a/tox.ini b/tox.ini
index 4b545c8..51c497d 100644
--- a/tox.ini
+++ b/tox.ini
@@ -106,7 +106,7 @@ commands = {[pymysql]commands}
[psycopg]
commands =
createdb -U postgres sqlobject_test
- pytest --cov=sqlobject -D postgres://postgres:@localhost/sqlobject_test?driver=psycopg tests include/tests inheritance/tests versioning/test
+ pytest --cov=sqlobject -D postgres://postgres:@localhost/sqlobject_test?driver=psycopg&charset=utf-8 tests include/tests inheritance/tests versioning/test
dropdb -U postgres sqlobject_test
[testenv:py26-psycopg]
@@ -124,7 +124,7 @@ commands = {[psycopg]commands}
[pygresql]
commands =
createdb -U postgres sqlobject_test
- pytest --cov=sqlobject -D postgres://postgres:@localhost/sqlobject_test?driver=pygresql tests include/tests inheritance/tests versioning/test
+ pytest --cov=sqlobject -D postgres://postgres:@localhost/sqlobject_test?driver=pygresql&charset=utf-8 tests include/tests inheritance/tests versioning/test
dropdb -U postgres sqlobject_test
[testenv:py26-pygresql]
@@ -142,7 +142,7 @@ commands = {[pygresql]commands}
[pypostgresql]
commands =
createdb -U postgres sqlobject_test
- pytest --cov=sqlobject -D postgres://postgres:@localhost/sqlobject_test?driver=pypostgresql tests include/tests inheritance/tests versioning/test
+ pytest --cov=sqlobject -D postgres://postgres:@localhost/sqlobject_test?driver=pypostgresql&charset=utf-8 tests include/tests inheritance/tests versioning/test
dropdb -U postgres sqlobject_test
[testenv:py34-pypostgresql]
@@ -154,7 +154,7 @@ commands = {[pypostgresql]commands}
[pg8000]
commands =
createdb -U postgres sqlobject_test
- pytest --cov=sqlobject -D postgres://postgres:@localhost/sqlobject_test?driver=pg8000 tests include/tests inheritance/tests versioning/test
+ pytest --cov=sqlobject -D postgres://postgres:@localhost/sqlobject_test?driver=pg8000&charset=utf-8 tests include/tests inheritance/tests versioning/test
dropdb -U postgres sqlobject_test
[testenv:py26-pg8000]
http://sourceforge.net/p/sqlobject/sqlobject/ci/070bb647e0da7a1edafbf81c21cac57d79344bd9
commit 070bb647e0da7a1edafbf81c21cac57d79344bd9
Author: Oleg Broytman <ph...@ph...>
Date: Mon Jan 2 01:26:13 2017 +0300
Register a converter for pg8000 Bytea type
diff --git a/sqlobject/postgres/pgconnection.py b/sqlobject/postgres/pgconnection.py
index e45e82a..91d3dce 100644
--- a/sqlobject/postgres/pgconnection.py
+++ b/sqlobject/postgres/pgconnection.py
@@ -76,7 +76,7 @@ class PostgresConnection(DBAPI):
if driver == 'pygresql' and type(self.module.Binary) is type:
# Register a converter for pygresql Binary type.
registerConverter(type(self.module.Binary(b'')),
- PygresBinaryConverter)
+ PostgresBinaryConverter)
self.user = user
self.host = host
@@ -146,6 +146,9 @@ class PostgresConnection(DBAPI):
dsn_dict["unix_sock"] = host
if user is None:
dsn_dict["user"] = getuser()
+ # Register a converter for pg8000 Bytea type.
+ registerConverter(type(self.module.Binary(b'')),
+ PostgresBinaryConverter)
self.driver = driver
self.dsn = dsn
self.unicodeCols = kw.pop('unicodeCols', False)
@@ -504,10 +507,10 @@ def PsycoBinaryConverter(value, db):
if PY2:
- def PygresBinaryConverter(value, db):
+ def PostgresBinaryConverter(value, db):
assert db == 'postgres'
return sqlrepr(bytes(value), db)
else:
- def PygresBinaryConverter(value, db):
+ def PostgresBinaryConverter(value, db):
assert db == 'postgres'
return sqlrepr(value.decode('latin1'), db)
http://sourceforge.net/p/sqlobject/sqlobject/ci/d0c71ae303c01d748bebaa320481088cf6436c9d
commit d0c71ae303c01d748bebaa320481088cf6436c9d
Author: Oleg Broytman <ph...@ph...>
Date: Mon Jan 2 01:25:33 2017 +0300
Fix pg8000 driver: no need to replace password
diff --git a/sqlobject/postgres/pgconnection.py b/sqlobject/postgres/pgconnection.py
index cba6ec7..e45e82a 100644
--- a/sqlobject/postgres/pgconnection.py
+++ b/sqlobject/postgres/pgconnection.py
@@ -146,8 +146,6 @@ class PostgresConnection(DBAPI):
dsn_dict["unix_sock"] = host
if user is None:
dsn_dict["user"] = getuser()
- if password is None:
- dsn_dict["password"] = ''
self.driver = driver
self.dsn = dsn
self.unicodeCols = kw.pop('unicodeCols', False)
http://sourceforge.net/p/sqlobject/sqlobject/ci/83dd268319ea156674a9212d04c029d9bb56d6af
commit 83dd268319ea156674a9212d04c029d9bb56d6af
Author: Oleg Broytman <ph...@ph...>
Date: Sun Jan 1 23:47:42 2017 +0300
Fix tests: convert data to lists and tuples
Tuples and lists are never compared equal.
diff --git a/sqlobject/tests/test_aggregates.py b/sqlobject/tests/test_aggregates.py
index 83b41cd..9f72300 100644
--- a/sqlobject/tests/test_aggregates.py
+++ b/sqlobject/tests/test_aggregates.py
@@ -64,12 +64,12 @@ def test_many():
IntAccumulator(value=3)
attribute = IntAccumulator.q.value
- assert IntAccumulator.select().accumulateMany(
+ assert list(IntAccumulator.select().accumulateMany(
("MIN", attribute), ("AVG", attribute), ("MAX", attribute),
("COUNT", attribute), ("SUM", attribute)
- ) == (1, 2, 3, 6, 12)
+ )) == [1, 2, 3, 6, 12]
- assert IntAccumulator.select(distinct=True).accumulateMany(
+ assert list(IntAccumulator.select(distinct=True).accumulateMany(
("MIN", attribute), ("AVG", attribute), ("MAX", attribute),
("COUNT", attribute), ("SUM", attribute)
- ) == (1, 2, 3, 3, 6)
+ )) == [1, 2, 3, 3, 6]
diff --git a/sqlobject/tests/test_groupBy.py b/sqlobject/tests/test_groupBy.py
index 7437425..e92d98e 100644
--- a/sqlobject/tests/test_groupBy.py
+++ b/sqlobject/tests/test_groupBy.py
@@ -25,8 +25,8 @@ def test_groupBy():
groupBy=GroupbyTest.q.name,
orderBy=GroupbyTest.q.name)
sql = connection.sqlrepr(select)
- rows = connection.queryAll(sql)
- assert list(rows) == [('a', 2), ('b', 1)]
+ rows = list(connection.queryAll(sql))
+ assert [tuple(t) for t in rows] == [('a', 2), ('b', 1)]
def test_groupBy_list():
@@ -41,5 +41,5 @@ def test_groupBy_list():
groupBy=[GroupbyTest.q.name, GroupbyTest.q.value],
orderBy=[GroupbyTest.q.name, GroupbyTest.q.value])
sql = connection.sqlrepr(select)
- rows = connection.queryAll(sql)
- assert list(rows) == [('a', 1), ('a', 2), ('b', 1)]
+ rows = list(connection.queryAll(sql))
+ assert [tuple(t) for t in rows] == [('a', 1), ('a', 2), ('b', 1)]
http://sourceforge.net/p/sqlobject/sqlobject/ci/12e52446bc2f3668531d5930a475521c20eb8d2d
commit 12e52446bc2f3668531d5930a475521c20eb8d2d
Author: Oleg Broytman <ph...@ph...>
Date: Sun Jan 1 03:01:59 2017 +0300
Remove temporary apt-key workarounds from circle.yml
diff --git a/circle.yml b/circle.yml
index e5c04ce..4c9174e 100644
--- a/circle.yml
+++ b/circle.yml
@@ -2,8 +2,6 @@ dependencies:
cache_directories:
- ~/.cache/pip
override:
- - sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
- - sudo apt-key update
- sudo apt-get -qq update
- sudo apt-get install -y python-egenix-mxdatetime python-mysqldb python-psycopg2 python3-psycopg2
- pip install -U pip
http://sourceforge.net/p/sqlobject/sqlobject/ci/20e730152e8781482a2d8ea7de5f9d39de7e516c
commit 20e730152e8781482a2d8ea7de5f9d39de7e516c
Author: Oleg Broytman <ph...@ph...>
Date: Sun Jan 1 03:00:16 2017 +0300
Reformat case statement in circle.yml
Make long case statement multiline to be more readable.
Use "? " YAML operator to denote a complex mapping key.
diff --git a/circle.yml b/circle.yml
index afc12aa..e5c04ce 100644
--- a/circle.yml
+++ b/circle.yml
@@ -12,5 +12,12 @@ dependencies:
test:
override:
- - case $CIRCLE_NODE_INDEX in 0) tox -e '{py26,py27}-mysqldb,{py34,py35}-mysqlclient' ;; 1) tox -e '{py26,py27,py34,py35}-psycopg' ;; 2) tox -e '{py26,py27,py34,py35}-sqlite' ;; 3) tox -e '{py27,py34}-flake8' ;; esac:
+ - ?
+ case $CIRCLE_NODE_INDEX in
+ 0) tox -e '{py26,py27}-mysqldb,{py34,py35}-mysqlclient' ;;
+ 1) tox -e '{py26,py27,py34,py35}-psycopg' ;;
+ 2) tox -e '{py26,py27,py34,py35}-sqlite' ;;
+ 3) tox -e '{py27,py34}-flake8' ;;
+ esac
+ :
parallel: true
-----------------------------------------------------------------------
Summary of changes:
circle.yml | 11 ++++++++---
docs/News.rst | 2 +-
sqlobject/postgres/pgconnection.py | 26 ++++++++++++++++++--------
sqlobject/tests/test_aggregates.py | 8 ++++----
sqlobject/tests/test_groupBy.py | 8 ++++----
tox.ini | 8 ++++----
6 files changed, 39 insertions(+), 24 deletions(-)
hooks/post-receive
--
SQLObject development repository
|