Skip to content

Commit edce429

Browse files
author
Greg Turnquist
committed
[SESPRINGPYTHONPY-159] Resolved merge conflicts.
2 parents d22c1c8 + 603633b commit edce429

File tree

4 files changed

+43
-2
lines changed

4 files changed

+43
-2
lines changed

springpython.properties

+2-2
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ project.key=EXTPY
99
release.type=snapshot
1010

1111
# This property is only un-commented and set for official tagged releases.
12-
release.type=release
13-
build.stamp=FINAL
12+
#release.type=release
13+
#build.stamp=FINAL
1414

1515
# This property is uncommented for milestone releases.
1616
#release.type=milestone

src/.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
setup.py
2+
springpython.egg-info

src/springpython/database/core.py

+4
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,10 @@ def __del__(self):
5252

5353
def _execute(self, sql_statement, args = None):
5454
"""Issue a single SQL execute, typically a DDL statement."""
55+
56+
if args and type(args) not in self.connection_factory.acceptable_types:
57+
raise InvalidArgumentType(type(args), self.connection_factory.acceptable_types)
58+
5559
sql_statement = self.connection_factory.convert_sql_binding(sql_statement)
5660

5761
cursor = self.connection_factory.getConnection().cursor()

test/springpythontest/databaseCoreTestCases.py

+36
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,42 @@ def testQueryingOracleWithValidlyFormattedArguments(self):
131131

132132
del(sys.modules["cx_Oracle"])
133133

134+
def testInsertingIntoOracleWithInvalidlyFormattedArguments(self):
135+
sys.modules["cx_Oracle"] = self.mock()
136+
137+
connection_factory = factory.cxoraConnectionFactory(username="foo", password="bar", hostname="localhost", db="mock")
138+
dt = DatabaseTemplate(connection_factory)
139+
140+
self.assertRaises(InvalidArgumentType, dt.execute,
141+
"INSERT INTO T_UNIT (F_UNIT_PK, F_UNIT_ID, F_NAME) VALUES (?, ?, ?)",
142+
(1,1,1))
143+
144+
del(sys.modules["cx_Oracle"])
145+
146+
def testInsertingIntoOracleWithInvalidlyFormattedArgumentsWithUpdateApi(self):
147+
sys.modules["cx_Oracle"] = self.mock()
148+
149+
connection_factory = factory.cxoraConnectionFactory(username="foo", password="bar", hostname="localhost", db="mock")
150+
dt = DatabaseTemplate(connection_factory)
151+
152+
self.assertRaises(InvalidArgumentType, dt.update,
153+
"INSERT INTO T_UNIT (F_UNIT_PK, F_UNIT_ID, F_NAME) VALUES (?, ?, ?)",
154+
(1,1,1))
155+
156+
del(sys.modules["cx_Oracle"])
157+
158+
def testInsertingIntoOracleWithInvalidlyFormattedArgumentsWithInsertApi(self):
159+
sys.modules["cx_Oracle"] = self.mock()
160+
161+
connection_factory = factory.cxoraConnectionFactory(username="foo", password="bar", hostname="localhost", db="mock")
162+
dt = DatabaseTemplate(connection_factory)
163+
164+
self.assertRaises(InvalidArgumentType, dt.insert_and_return_id,
165+
"INSERT INTO T_UNIT (F_UNIT_PK, F_UNIT_ID, F_NAME) VALUES (?, ?, ?)",
166+
(1,1,1))
167+
168+
del(sys.modules["cx_Oracle"])
169+
134170
class DatabaseTemplateMockTestCase(MockTestCase):
135171
"""Testing the DatabaseTemplate utilizes stubbing and mocking, in order to isolate from different
136172
vendor implementations. This reduces the overhead in making changes to core functionality."""

0 commit comments

Comments
 (0)