From 8bf5576780b37a0a0cced52f4b6a324a59d755d3 Mon Sep 17 00:00:00 2001 From: baztian Date: Mon, 23 Jan 2017 20:33:52 +0100 Subject: [PATCH 1/6] Add an example for db connection properties --- .travis.yml | 1 + README.rst | 21 ++++++++++++++++----- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/.travis.yml b/.travis.yml index 44798ec..36e0a03 100644 --- a/.travis.yml +++ b/.travis.yml @@ -46,6 +46,7 @@ install: script: - if [ -z "$JYTHON" ]; then PY="coverage run --source jaydebeapi"; else PY="python" ;fi - $PY test/testsuite.py $TESTNAME + - $PY -m doctest README.rst after_success: - if [ -z "$JYTHON" ]; then coveralls ;fi diff --git a/README.rst b/README.rst index 408b489..02b7fc1 100644 --- a/README.rst +++ b/README.rst @@ -88,10 +88,10 @@ environment. Here is an example: >>> import jaydebeapi ->>> conn = jaydebeapi.connect('org.hsqldb.jdbcDriver', -... 'jdbc:hsqldb:mem:.', -... ['SA', ''], -... '/path/to/hsqldb.jar',) +>>> conn = jaydebeapi.connect("org.hsqldb.jdbcDriver", +... "jdbc:hsqldb:mem:.", +... ["SA", ""], +... "/path/to/hsqldb.jar",) >>> curs = conn.cursor() >>> curs.execute('create table CUSTOMER' ... '("CUST_ID" INTEGER not null,' @@ -102,12 +102,23 @@ Here is an example: >>> curs.execute("select * from CUSTOMER") >>> curs.fetchall() [(1, u'John')] +>>> curs.close() +>>> conn.close() + +An alternative way to establish connection using connection +properties: +>>> conn = jaydebeapi.connect("org.hsqldb.jdbcDriver", +... "jdbc:hsqldb:mem:.", +... {'user': "SA", 'password': "", +... 'other_property': "foobar"}, +... "/path/to/hsqldb.jar",) + If you're having trouble getting this work check if your ``JAVA_HOME`` environmentvariable is set correctly. For example I have to set it on my Ubuntu machine like this :: - $ JAVA_HOME=/usr/lib/jvm/java-6-openjdk python + $ JAVA_HOME=/usr/lib/jvm/java-8-openjdk python Supported databases =================== From 350afee2c49e19581bf9b8b9d23c8acecf51dd49 Mon Sep 17 00:00:00 2001 From: baztian Date: Mon, 23 Jan 2017 20:40:47 +0100 Subject: [PATCH 2/6] Fix doctests for README.rst only working with hsqldb --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 36e0a03..a7f41ee 100644 --- a/.travis.yml +++ b/.travis.yml @@ -46,7 +46,7 @@ install: script: - if [ -z "$JYTHON" ]; then PY="coverage run --source jaydebeapi"; else PY="python" ;fi - $PY test/testsuite.py $TESTNAME - - $PY -m doctest README.rst + - if [ "$JDBC_DRIVER" == "org.hsqldb:hsqldb:1.8.0.10" ] ; then $PY -m doctest README.rst ;fi after_success: - if [ -z "$JYTHON" ]; then coveralls ;fi From 5a031c1df32fb79cf064c3ae47b681644d264039 Mon Sep 17 00:00:00 2001 From: baztian Date: Mon, 23 Jan 2017 20:42:32 +0100 Subject: [PATCH 3/6] Fix rst code formatting --- README.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/README.rst b/README.rst index 02b7fc1..915483b 100644 --- a/README.rst +++ b/README.rst @@ -107,6 +107,7 @@ Here is an example: An alternative way to establish connection using connection properties: + >>> conn = jaydebeapi.connect("org.hsqldb.jdbcDriver", ... "jdbc:hsqldb:mem:.", ... {'user': "SA", 'password': "", From 298826c6abb27215802fef8658e3420ab1dfab39 Mon Sep 17 00:00:00 2001 From: baztian Date: Mon, 23 Jan 2017 21:01:42 +0100 Subject: [PATCH 4/6] Fix Python 2/3 doctest incompatibility --- README.rst | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.rst b/README.rst index 915483b..2c9dd83 100644 --- a/README.rst +++ b/README.rst @@ -87,6 +87,9 @@ environment. Here is an example: +.. + >>> from __future__ import unicode_literals + >>> import jaydebeapi >>> conn = jaydebeapi.connect("org.hsqldb.jdbcDriver", ... "jdbc:hsqldb:mem:.", From 062407173465fb8d5b1781fdd12ed37931f1fe34 Mon Sep 17 00:00:00 2001 From: baztian Date: Mon, 23 Jan 2017 21:23:49 +0100 Subject: [PATCH 5/6] Try to fix Python 2/3 doctest compatibility again --- test/doctests.py | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 test/doctests.py diff --git a/test/doctests.py b/test/doctests.py new file mode 100644 index 0000000..f9dc1cb --- /dev/null +++ b/test/doctests.py @@ -0,0 +1,32 @@ +#!/usr/bin/env python +"""Run doctests.""" + +import doctest +import sys + +try: + import unittest2 as unittest +except ImportError: + import unittest + +class Py23DocChecker(doctest.OutputChecker): + """Doctest checker to avoid Python 2/3 unicode comparison + issues. Code taken from Dirkjan Ochtman""" + def check_output(self, want, got, optionflags): + if sys.version_info[0] > 2: + want = re.sub("u'(.*?)'", "'\\1'", want) + want = re.sub('u"(.*?)"', '"\\1"', want) + return doctest.OutputChecker.check_output(self, want, got, optionflags) + +def suite(): + suite = unittest.TestSuite() + suite.addTest(doctest.DocFileSuite('../README.rst', + checker=Py23DocChecker())) + return suite; + +def main(): + runner = unittest.TextTestRunner() + runner.run(suite()) + +if __name__ == '__main__': + sys.exit(main()) From 596cc60ef565fb419dfffcf023c604ad6572707a Mon Sep 17 00:00:00 2001 From: baztian Date: Mon, 23 Jan 2017 21:28:36 +0100 Subject: [PATCH 6/6] Try to fix Python 2/3 doctest compatibility again --- .travis.yml | 2 +- README.rst | 3 --- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index a7f41ee..9840cf0 100644 --- a/.travis.yml +++ b/.travis.yml @@ -46,7 +46,7 @@ install: script: - if [ -z "$JYTHON" ]; then PY="coverage run --source jaydebeapi"; else PY="python" ;fi - $PY test/testsuite.py $TESTNAME - - if [ "$JDBC_DRIVER" == "org.hsqldb:hsqldb:1.8.0.10" ] ; then $PY -m doctest README.rst ;fi + - if [ "$JDBC_DRIVER" == "org.hsqldb:hsqldb:1.8.0.10" ] ; then $PY test/doctests.py ;fi after_success: - if [ -z "$JYTHON" ]; then coveralls ;fi diff --git a/README.rst b/README.rst index 2c9dd83..915483b 100644 --- a/README.rst +++ b/README.rst @@ -87,9 +87,6 @@ environment. Here is an example: -.. - >>> from __future__ import unicode_literals - >>> import jaydebeapi >>> conn = jaydebeapi.connect("org.hsqldb.jdbcDriver", ... "jdbc:hsqldb:mem:.",