Skip to content

Commit 0e5237c

Browse files
Revert error checks since it has become clear that a number of people
depend on these "features" (#311).
1 parent 3c6e4be commit 0e5237c

File tree

4 files changed

+30
-48
lines changed

4 files changed

+30
-48
lines changed

doc/src/release_notes.rst

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -45,14 +45,6 @@ Common Changes
4545
#) Added support for iterating over :ref:`DbObject <dbobject>` instances that
4646
are collections
4747
(`issue 314 <https://github.com/oracle/python-oracledb/issues/314>`__).
48-
#) Error ``DPY-4031: connect string for network service name
49-
'{network_service_name}' found in file '{new_file_name}' differs from
50-
the same entry in '{orig_file_name}'`` is now raised when parsing
51-
:ref:`tnsnames.ora <optnetfiles>` files that contain a network service name
52-
defined more than once but with different connect strings.
53-
#) Error ``DPY-4032: invalid network service definition detected at line
54-
{line_no} of file '{file_name}'`` is now raised when an invalid network
55-
service definition is found in a :ref:`tnsnames.ora <optnetfiles>` file.
5648
#) Error ``ORA-24545: invalid value of POOL_BOUNDARY specified in connect
5749
string`` is now raised consistently for both Thick and Thin modes.
5850
Previously, Thin mode was raising the error

src/oracledb/errors.py

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -299,8 +299,6 @@ def _raise_err(
299299
ERR_INVALID_SERVER_TYPE = 4028
300300
ERR_TOO_MANY_BATCH_ERRORS = 4029
301301
ERR_IFILE_CYCLE_DETECTED = 4030
302-
ERR_NETWORK_SERVICE_NAME_DIFFERS = 4031
303-
ERR_NETWORK_SERVICE_NAME_INVALID = 4032
304302

305303
# error numbers that result in InternalError
306304
ERR_MESSAGE_TYPE_UNKNOWN = 5000
@@ -598,15 +596,6 @@ def _raise_err(
598596
"national character set id {charset_id} is not supported by "
599597
"python-oracledb in thin mode"
600598
),
601-
ERR_NETWORK_SERVICE_NAME_DIFFERS: (
602-
"connect string for network service name '{network_service_name}' "
603-
"found in file '{new_file_name}' differs from the same entry in "
604-
"'{orig_file_name}'"
605-
),
606-
ERR_NETWORK_SERVICE_NAME_INVALID: (
607-
"invalid network service definition detected at line {line_no} of "
608-
"file '{file_name}'"
609-
),
610599
ERR_NO_CONFIG_DIR: "no configuration directory to search for tnsnames.ora",
611600
ERR_NO_CREDENTIALS: "no credentials specified",
612601
ERR_NO_CRYPTOGRAPHY_PACKAGE: (

src/oracledb/impl/base/connect_params.pyx

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1058,13 +1058,6 @@ cdef class TnsnamesFileReader:
10581058
duplicated. An entry is always made in the primary file as well.
10591059
"""
10601060
cdef TnsnamesFile orig_file
1061-
if name in self.entries and value != self.primary_file.entries[name]:
1062-
orig_file = self.entries[name]
1063-
errors._raise_err(errors.ERR_NETWORK_SERVICE_NAME_DIFFERS,
1064-
network_service_name=name,
1065-
new_file_name=tnsnames_file.file_name,
1066-
orig_file_name=orig_file.file_name)
1067-
self.entries[name] = tnsnames_file
10681061
self.primary_file.entries[name] = value
10691062
if tnsnames_file is not self.primary_file:
10701063
tnsnames_file.entries[name] = value
@@ -1114,10 +1107,7 @@ cdef class TnsnamesFileReader:
11141107
if entry_names is None:
11151108
pos = line.find("=")
11161109
if pos < 0:
1117-
errors._raise_err(
1118-
errors.ERR_NETWORK_SERVICE_NAME_INVALID,
1119-
line_no=line_no,
1120-
file_name=tnsnames_file.file_name)
1110+
continue
11211111
name = line[:pos].strip().upper()
11221112
if name == "IFILE":
11231113
file_name = line[pos + 1:].strip()
@@ -1147,7 +1137,6 @@ cdef class TnsnamesFileReader:
11471137
"""
11481138
self.primary_file = None
11491139
self.files_in_progress = []
1150-
self.entries = {}
11511140
if dir_name is None:
11521141
errors._raise_err(errors.ERR_NO_CONFIG_DIR)
11531142
file_name = os.path.join(dir_name, "tnsnames.ora")

tests/test_7200_tnsnames.py

Lines changed: 29 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -90,8 +90,10 @@ def test_7203(self):
9090
f.write("some garbage data which is not a valid entry\n")
9191
f.write(f"{network_service_name} = {connect_string}\n")
9292
params = oracledb.ConnectParams(config_dir=temp_dir)
93-
with self.assertRaisesFullCode("DPY-4032"):
94-
params.parse_connect_string(network_service_name)
93+
params.parse_connect_string(network_service_name)
94+
self.assertEqual(params.host, host)
95+
self.assertEqual(params.port, port)
96+
self.assertEqual(params.service_name, service_name)
9597

9698
def test_7204(self):
9799
"7204 - test tnsnames.ora with multiple aliases on one line"
@@ -308,20 +310,25 @@ def test_7212(self):
308310

309311
def test_7213(self):
310312
"7213 - duplicate entry in same file, but different connect strings"
311-
host = "host_7213"
313+
host_a = "host_7213a"
312314
port = 7213
313-
service_name = "service_7213"
314-
connect_string = f"{host}:{port}/{service_name}"
315+
service_name_a = "service_7213a"
316+
host_b = "host_7213b"
317+
service_name_b = "service_7213b"
318+
connect_string_a = f"{host_a}:{port}/{service_name_a}"
319+
connect_string_b = f"{host_b}:{port}/{service_name_b}"
315320
network_service_name = "nsn_7213"
316321
with tempfile.TemporaryDirectory() as temp_dir:
317322
file_name = os.path.join(temp_dir, "tnsnames.ora")
318323
with open(file_name, "w") as f:
319-
f.write(f"{network_service_name} = {connect_string}\n")
324+
f.write(f"{network_service_name} = {connect_string_a}\n")
320325
f.write("some_other_nsn = some_host/some_service\n")
321-
f.write(f"{network_service_name} = x{connect_string}\n")
326+
f.write(f"{network_service_name} = {connect_string_b}\n")
322327
params = oracledb.ConnectParams(config_dir=temp_dir)
323-
with self.assertRaisesFullCode("DPY-4031"):
324-
params.parse_connect_string(network_service_name)
328+
params.parse_connect_string(network_service_name)
329+
self.assertEqual(params.host, host_b)
330+
self.assertEqual(params.port, port)
331+
self.assertEqual(params.service_name, service_name_b)
325332

326333
def test_7214(self):
327334
"7214 - duplicate entry in other file, but identical connect strings"
@@ -346,24 +353,29 @@ def test_7214(self):
346353
self.assertEqual(params.service_name, service_name)
347354

348355
def test_7215(self):
349-
"7215 - duplicate entry in other file, but identical connect strings"
350-
host = "host_7215"
356+
"7215 - duplicate entry in other file, but different connect strings"
357+
host_a = "host_7215a"
351358
port = 7215
352-
service_name = "service_7215"
353-
connect_string = f"{host}:{port}/{service_name}"
359+
service_name_a = "service_7215a"
360+
host_b = "host_7215b"
361+
service_name_b = "service_7215b"
362+
connect_string_a = f"{host_a}:{port}/{service_name_a}"
363+
connect_string_b = f"{host_b}:{port}/{service_name_b}"
354364
network_service_name = "nsn_7215"
355365
include_name = "inc_7215.ora"
356366
with tempfile.TemporaryDirectory() as temp_dir:
357367
file_name = os.path.join(temp_dir, "tnsnames.ora")
358368
include_file_name = os.path.join(temp_dir, include_name)
359369
with open(file_name, "w") as f:
360-
f.write(f"{network_service_name} = {connect_string}\n")
370+
f.write(f"{network_service_name} = {connect_string_a}\n")
361371
f.write(f"IFILE = {include_name}")
362372
with open(include_file_name, "w") as f:
363-
f.write(f"{network_service_name} = x{connect_string}\n")
373+
f.write(f"{network_service_name} = {connect_string_b}\n")
364374
params = oracledb.ConnectParams(config_dir=temp_dir)
365-
with self.assertRaisesFullCode("DPY-4031"):
366-
params.parse_connect_string(network_service_name)
375+
params.parse_connect_string(network_service_name)
376+
self.assertEqual(params.host, host_b)
377+
self.assertEqual(params.port, port)
378+
self.assertEqual(params.service_name, service_name_b)
367379

368380
def test_7216(self):
369381
"7216 - test missing IFILE in tnsnames.ora"

0 commit comments

Comments
 (0)