mirror of
https://github.com/infiniflow/ragflow.git
synced 2026-04-30 23:37:49 +08:00
Refa: convert download_img to async (#13477)
### What problem does this PR solve? Convert download_img to async. ### Type of change - [x] Refactoring - [x] Performance Improvement
This commit is contained in:
@ -222,7 +222,7 @@ async def oauth_callback(channel):
|
||||
if not users:
|
||||
try:
|
||||
try:
|
||||
avatar = download_img(user_info.avatar_url)
|
||||
avatar = await download_img(user_info.avatar_url)
|
||||
except Exception as e:
|
||||
logging.exception(e)
|
||||
avatar = ""
|
||||
@ -317,7 +317,7 @@ async def github_callback():
|
||||
# User isn't try to register
|
||||
try:
|
||||
try:
|
||||
avatar = download_img(user_info["avatar_url"])
|
||||
avatar = await download_img(user_info["avatar_url"])
|
||||
except Exception as e:
|
||||
logging.exception(e)
|
||||
avatar = ""
|
||||
@ -421,7 +421,7 @@ async def feishu_callback():
|
||||
# User isn't try to register
|
||||
try:
|
||||
try:
|
||||
avatar = download_img(user_info["avatar_url"])
|
||||
avatar = await download_img(user_info["avatar_url"])
|
||||
except Exception as e:
|
||||
logging.exception(e)
|
||||
avatar = ""
|
||||
|
||||
@ -27,16 +27,16 @@ import uuid
|
||||
|
||||
from concurrent.futures import ThreadPoolExecutor
|
||||
|
||||
import requests
|
||||
|
||||
def get_uuid():
|
||||
return uuid.uuid1().hex
|
||||
|
||||
|
||||
def download_img(url):
|
||||
async def download_img(url):
|
||||
if not url:
|
||||
return ""
|
||||
response = requests.get(url)
|
||||
from common.http_client import async_request
|
||||
response = await async_request("GET", url)
|
||||
return "data:" + \
|
||||
response.headers.get('Content-Type', 'image/jpg') + ";" + \
|
||||
"base64," + base64.b64encode(response.content).decode("utf-8")
|
||||
|
||||
@ -218,6 +218,7 @@ markers = [
|
||||
"p3: low priority test cases",
|
||||
"smoke: smoke test cases",
|
||||
"auth: authentication UI tests",
|
||||
"asyncio: mark test as async",
|
||||
]
|
||||
|
||||
# Test collection and runtime configuration
|
||||
|
||||
@ -15,6 +15,7 @@
|
||||
#
|
||||
import uuid
|
||||
import hashlib
|
||||
import pytest
|
||||
from common.misc_utils import get_uuid, download_img, hash_str2int, convert_bytes
|
||||
|
||||
|
||||
@ -91,14 +92,16 @@ class TestGetUuid:
|
||||
class TestDownloadImg:
|
||||
"""Test cases for download_img function"""
|
||||
|
||||
def test_empty_url_returns_empty_string(self):
|
||||
@pytest.mark.asyncio
|
||||
async def test_empty_url_returns_empty_string(self):
|
||||
"""Test that empty URL returns empty string"""
|
||||
result = download_img("")
|
||||
result = await download_img("")
|
||||
assert result == ""
|
||||
|
||||
def test_none_url_returns_empty_string(self):
|
||||
@pytest.mark.asyncio
|
||||
async def test_none_url_returns_empty_string(self):
|
||||
"""Test that None URL returns empty string"""
|
||||
result = download_img(None)
|
||||
result = await download_img(None)
|
||||
assert result == ""
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user