mirror of
https://github.com/langbot-app/LangBot.git
synced 2026-08-16 23:40:59 +00:00
Merge remote-tracking branch 'origin/fix/utils-qq-image-preserve-scheme' into validation/test-build-with-fixes
# Conflicts: # tests/unit_tests/utils/test_image.py
This commit is contained in:
@@ -145,7 +145,8 @@ def get_qq_image_downloadable_url(image_url: str) -> tuple[str, dict]:
|
|||||||
"""获取QQ图片的下载链接"""
|
"""获取QQ图片的下载链接"""
|
||||||
parsed = urlparse(image_url)
|
parsed = urlparse(image_url)
|
||||||
query = parse_qs(parsed.query)
|
query = parse_qs(parsed.query)
|
||||||
return f'http://{parsed.netloc}{parsed.path}', query
|
scheme = parsed.scheme or 'http'
|
||||||
|
return f'{scheme}://{parsed.netloc}{parsed.path}', query
|
||||||
|
|
||||||
|
|
||||||
async def get_qq_image_bytes(image_url: str, query: dict = {}) -> tuple[bytes, str]:
|
async def get_qq_image_bytes(image_url: str, query: dict = {}) -> tuple[bytes, str]:
|
||||||
|
|||||||
@@ -0,0 +1 @@
|
|||||||
|
|
||||||
|
|||||||
@@ -56,13 +56,21 @@ class TestGetQQImageDownloadableUrl:
|
|||||||
# Fragment is not included in query string parsing
|
# Fragment is not included in query string parsing
|
||||||
assert "http://example.com/image.jpg" in result_url
|
assert "http://example.com/image.jpg" in result_url
|
||||||
|
|
||||||
def test_https_url(self):
|
def test_https_url_preserves_scheme(self):
|
||||||
"""Parse HTTPS URL - note: function returns http:// regardless of input scheme."""
|
"""Parse HTTPS URL without downgrading the scheme."""
|
||||||
url = "https://example.com/image.jpg"
|
url = "https://example.com/image.jpg"
|
||||||
result_url, query = get_qq_image_downloadable_url(url)
|
result_url, query = get_qq_image_downloadable_url(url)
|
||||||
|
|
||||||
# The function constructs URL with http:// scheme
|
assert result_url == "https://example.com/image.jpg"
|
||||||
assert "example.com/image.jpg" in result_url
|
assert query == {}
|
||||||
|
|
||||||
|
def test_missing_scheme_defaults_to_http(self):
|
||||||
|
"""Parse scheme-less URL with the existing HTTP default."""
|
||||||
|
url = "example.com/image.jpg?param=value"
|
||||||
|
result_url, query = get_qq_image_downloadable_url(url)
|
||||||
|
|
||||||
|
assert result_url == "http://example.com/image.jpg"
|
||||||
|
assert query == {"param": ["value"]}
|
||||||
|
|
||||||
|
|
||||||
class TestExtractB64AndFormat:
|
class TestExtractB64AndFormat:
|
||||||
|
|||||||
Reference in New Issue
Block a user