fix(agent): address code review findings for tool hint enhancement
- C1: Fix IndexError on empty list arguments via _get_args() helper - I1: Remove redundant branch in _fmt_known - I2: Export abbreviate_path from nanobot.utils.__init__ - I3: Fix _abbreviate_url negative-budget format consistency - S1: Move FORMATS to class-level _TOOL_HINT_FORMATS constant - S2: Add list_dir to FORMATS registry (ls path) - G1-G5: Add tests for empty list args, None args, URL edge cases, mixed folding groups, and list_dir format
This commit is contained in:
@@ -77,3 +77,29 @@ class TestAbbreviatePathURLs:
|
||||
def test_short_url_unchanged(self):
|
||||
url = "https://example.com/api"
|
||||
assert abbreviate_path(url) == url
|
||||
|
||||
def test_url_no_path_just_domain(self):
|
||||
"""G3: URL with no path should return as-is if short enough."""
|
||||
url = "https://example.com"
|
||||
assert abbreviate_path(url) == url
|
||||
|
||||
def test_url_with_query_string(self):
|
||||
"""G3: URL with query params should abbreviate path part."""
|
||||
url = "https://example.com/api/v2/endpoint?key=value&other=123"
|
||||
result = abbreviate_path(url, max_len=40)
|
||||
assert "example.com" in result
|
||||
assert "\u2026" in result
|
||||
|
||||
def test_url_very_long_basename(self):
|
||||
"""G3: URL with very long basename should truncate basename."""
|
||||
url = "https://example.com/path/very_long_resource_name_file.json"
|
||||
result = abbreviate_path(url, max_len=35)
|
||||
assert "example.com" in result
|
||||
assert "\u2026" in result
|
||||
|
||||
def test_url_negative_budget_consistent_format(self):
|
||||
"""I3: Negative budget should still produce domain/…/basename format."""
|
||||
url = "https://a.co/very/deep/path/with/lots/of/segments/and/a/long/basename.txt"
|
||||
result = abbreviate_path(url, max_len=20)
|
||||
assert "a.co" in result
|
||||
assert "/\u2026/" in result
|
||||
|
||||
Reference in New Issue
Block a user