From fd38216c4daff090df9fe4b103faa27f32669780 Mon Sep 17 00:00:00 2001 From: baztian Date: Wed, 27 May 2020 21:07:51 +0200 Subject: [PATCH 1/4] Fix README --- README.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.rst b/README.rst index 1696237..1ba1ce8 100644 --- a/README.rst +++ b/README.rst @@ -8,7 +8,7 @@ .. image:: https://img.shields.io/coveralls/baztian/jaydebeapi/master.svg :target: https://coveralls.io/r/baztian/jaydebeapi -.. image:: https://img.shields.io/badge/python-2.7,_3.4,_3.6-blue.svg +.. image:: https://img.shields.io/badge/python-2.7,_3.5,_3.6-blue.svg :target: https://pypi.python.org/pypi/JayDeBeApi/ .. image:: https://img.shields.io/badge/jython-2.7.2-blue.svg From 8191a24489331bb11f35f180e942fe16fdcef41b Mon Sep 17 00:00:00 2001 From: baztian Date: Wed, 27 May 2020 21:45:58 +0200 Subject: [PATCH 2/4] Fix with statment test. Include missing PropertiesDriverArgsPassingTest --- README.rst | 2 +- test/test_integration.py | 38 +++++++++++++++++++++++++------------- tox.ini | 2 +- 3 files changed, 27 insertions(+), 15 deletions(-) diff --git a/README.rst b/README.rst index 1ba1ce8..51280e2 100644 --- a/README.rst +++ b/README.rst @@ -96,7 +96,7 @@ Here is an example: >>> curs = conn.cursor() >>> curs.execute('create table CUSTOMER' ... '("CUST_ID" INTEGER not null,' -... ' "NAME" VARCHAR not null,' +... ' "NAME" VARCHAR(50) not null,' ... ' primary key ("CUST_ID"))' ... ) >>> curs.execute("insert into CUSTOMER values (1, 'John')") diff --git a/test/test_integration.py b/test/test_integration.py index a99c69d..6d8a756 100644 --- a/test/test_integration.py +++ b/test/test_integration.py @@ -207,17 +207,6 @@ class IntegrationTestBase(object): cursor.execute("select * from ACCOUNT") self.assertEqual(cursor.rowcount, -1) - def test_connection_with_statement(self): - with self.connect() as conn: - self.assertEqual(conn._closed, False) - self.assertEqual(conn._closed, True) - - def test_cursor_with_statement(self): - with self.conn.cursor() as cursor: - cursor.execute("select 1 from ACCOUNT") - self.assertIsNotNone(cursor._connection) - self.assertIsNone(cursor._connection) - class SqliteTestBase(IntegrationTestBase): def setUpSql(self): @@ -293,10 +282,33 @@ class PropertiesDriverArgsPassingTest(unittest.TestCase): driver, url, driver_args = ( 'org.hsqldb.jdbcDriver', 'jdbc:hsqldb:mem:.', ['SA', ''] ) - jaydebeapi.connect(driver, url, driver_args) + c = jaydebeapi.connect(driver, url, driver_args) + c.close() def test_connect_with_properties(self): driver, url, driver_args = ( 'org.hsqldb.jdbcDriver', 'jdbc:hsqldb:mem:.', {'user': 'SA', 'password': '' } ) - jaydebeapi.connect(driver, url, driver_args) + c = jaydebeapi.connect(driver, url, driver_args) + c.close() + +class WithStatementTest(unittest.TestCase): + + def test_connection_with_statement(self): + driver, url, driver_args = ( 'org.hsqldb.jdbcDriver', + 'jdbc:hsqldb:mem:.', + ['SA', ''] ) + with jaydebeapi.connect(driver, url, driver_args) as conn: + self.assertEqual(conn._closed, False) + self.assertEqual(conn._closed, True) + + def test_cursor_with_statement(self): + driver, url, driver_args = ( 'org.hsqldb.jdbcDriver', + 'jdbc:hsqldb:mem:.', + {'user': 'SA', 'password': '' } ) + c = jaydebeapi.connect(driver, url, driver_args) + with c.cursor() as cursor: + cursor.execute("CALL \"java.lang.Math.sqrt\"(2.0)") + self.assertIsNotNone(cursor._connection) + self.assertIsNone(cursor._connection) + diff --git a/tox.ini b/tox.ini index c61e685..b667960 100644 --- a/tox.ini +++ b/tox.ini @@ -14,7 +14,7 @@ whitelist_externals = mvn setenv = CLASSPATH = {envdir}/javalib/* driver-mock: TESTNAME=test_mock - driver-hsqldb: TESTNAME=test_integration.HsqldbTest + driver-hsqldb: TESTNAME=test_integration.HsqldbTest test_integration.WithStatementTest test_integration.PropertiesDriverArgsPassingTest driver-sqliteXerial: TESTNAME=test_integration.SqliteXerialTest driver-sqlitePy: TESTNAME=test_integration.SqlitePyTest deps = From e221a17e191d1381039a2a6d7b2a390a75ff5ddd Mon Sep 17 00:00:00 2001 From: baztian Date: Wed, 27 May 2020 21:58:33 +0200 Subject: [PATCH 3/4] Downgrade mockito again to make mockdriver tests work --- mockdriver/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mockdriver/pom.xml b/mockdriver/pom.xml index 9faf8d2..72cbc88 100644 --- a/mockdriver/pom.xml +++ b/mockdriver/pom.xml @@ -15,8 +15,8 @@ org.mockito - mockito-inline - 3.3.3 + mockito-all + 1.10.19 From ab9a256897f1605707fe68dab235b2efe5d29ae2 Mon Sep 17 00:00:00 2001 From: baztian Date: Wed, 27 May 2020 22:11:33 +0200 Subject: [PATCH 4/4] Make with statement test a mock test --- test/test_integration.py | 21 --------------------- test/test_mock.py | 13 +++++++++++++ tox.ini | 2 +- 3 files changed, 14 insertions(+), 22 deletions(-) diff --git a/test/test_integration.py b/test/test_integration.py index 6d8a756..c317ce5 100644 --- a/test/test_integration.py +++ b/test/test_integration.py @@ -291,24 +291,3 @@ class PropertiesDriverArgsPassingTest(unittest.TestCase): {'user': 'SA', 'password': '' } ) c = jaydebeapi.connect(driver, url, driver_args) c.close() - -class WithStatementTest(unittest.TestCase): - - def test_connection_with_statement(self): - driver, url, driver_args = ( 'org.hsqldb.jdbcDriver', - 'jdbc:hsqldb:mem:.', - ['SA', ''] ) - with jaydebeapi.connect(driver, url, driver_args) as conn: - self.assertEqual(conn._closed, False) - self.assertEqual(conn._closed, True) - - def test_cursor_with_statement(self): - driver, url, driver_args = ( 'org.hsqldb.jdbcDriver', - 'jdbc:hsqldb:mem:.', - {'user': 'SA', 'password': '' } ) - c = jaydebeapi.connect(driver, url, driver_args) - with c.cursor() as cursor: - cursor.execute("CALL \"java.lang.Math.sqrt\"(2.0)") - self.assertIsNotNone(cursor._connection) - self.assertIsNone(cursor._connection) - diff --git a/test/test_mock.py b/test/test_mock.py index 03977a0..2d44952 100644 --- a/test/test_mock.py +++ b/test/test_mock.py @@ -106,3 +106,16 @@ class MockTest(unittest.TestCase): self.fail("expected exception") except jaydebeapi.InterfaceError as e: self.assertEquals(str(e), "java.lang.RuntimeException: expected") + + def test_cursor_with_statement(self): + self.conn.jconn.mockType("INTEGER") + with self.conn.cursor() as cursor: + cursor.execute("dummy stmt") + self.assertIsNotNone(cursor._connection) + self.assertIsNone(cursor._connection) + + def test_connection_with_statement(self): + with jaydebeapi.connect('org.jaydebeapi.mockdriver.MockDriver', + 'jdbc:jaydebeapi://dummyurl') as conn: + self.assertEqual(conn._closed, False) + self.assertEqual(conn._closed, True) diff --git a/tox.ini b/tox.ini index b667960..5d62205 100644 --- a/tox.ini +++ b/tox.ini @@ -14,7 +14,7 @@ whitelist_externals = mvn setenv = CLASSPATH = {envdir}/javalib/* driver-mock: TESTNAME=test_mock - driver-hsqldb: TESTNAME=test_integration.HsqldbTest test_integration.WithStatementTest test_integration.PropertiesDriverArgsPassingTest + driver-hsqldb: TESTNAME=test_integration.HsqldbTest test_integration.PropertiesDriverArgsPassingTest driver-sqliteXerial: TESTNAME=test_integration.SqliteXerialTest driver-sqlitePy: TESTNAME=test_integration.SqlitePyTest deps =