Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions osmapi/OsmApi.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
* Since version 5.0 of this library, all method names are in snake_case,
the CamelCase versions are deprecated and will be removed in version 6.0.
"""

import re
import logging
import warnings
Expand Down
2 changes: 1 addition & 1 deletion tests/capabilities_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,6 @@ def test_capabilities(self):
)

def test_Capabilities_deprecation_warning(self):
self._session_mock()
self._session_mock(filenames=["test_Capabilities.xml"])
with self.assertWarns(DeprecationWarning):
self.api.Capabilities()
43 changes: 42 additions & 1 deletion tests/osmapi_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@ def _session_mock(self, auth=False, filenames=None, status=200):
assert len(return_values) < 2
if return_values:
response_mock.content = return_values[0]
else:
response_mock.content = ""

self.session_mock = mock.Mock()
self.session_mock.request = mock.Mock(return_value=response_mock)
Expand Down Expand Up @@ -53,7 +55,46 @@ def _return_values(self, filenames):
with codecs.open(path, "r", "utf-8") as file:
return_values.append(file.read())
except Exception:
pass
# Try case-insensitive match for backward compatibility
# Also try converting snake_case to CamelCase
# (e.g., test_way_get -> test_WayGet)
try:
fixture_dir = os.path.join(__location__, "fixtures")
available_files = os.listdir(fixture_dir)

# First try exact case-insensitive match
for available_file in available_files:
if available_file.lower() == filename.lower():
path = os.path.join(fixture_dir, available_file)
with codecs.open(path, "r", "utf-8") as file:
return_values.append(file.read())
break
else:
# Try snake_case to CamelCase conversion
# e.g., test_way_get.xml -> test_WayGet.xml
# Split on underscore, then capitalize each word
# except the first
base_name, ext = os.path.splitext(filename)
parts = base_name.split("_")
if len(parts) > 1:
# Keep first part as-is, capitalize the rest
camel_case_base = (
parts[0]
+ "_"
+ "".join(p.capitalize() for p in parts[1:])
)
camel_case_filename = camel_case_base + ext
for available_file in available_files:
if (
available_file.lower()
== camel_case_filename.lower()
):
path = os.path.join(fixture_dir, available_file)
with codecs.open(path, "r", "utf-8") as file:
return_values.append(file.read())
break
except Exception:
pass
return return_values

def teardown(self):
Expand Down
Loading