88from basalam_sdk import BasalamClient
99from basalam_sdk .auth import ClientCredentials
1010from basalam_sdk .config import BasalamConfig , Environment
11- from basalam_sdk .upload .models import UserUploadFileTypeEnum
11+ from basalam_sdk .upload .models import UserUploadFileTypeEnum , UploadFileRequest
1212
1313# Test client credentials
1414TEST_CLIENT_ID = ""
@@ -30,20 +30,6 @@ def basalam_client():
3030 return BasalamClient (auth = auth , config = config )
3131
3232
33- def create_test_file ():
34- """Create a test file for upload testing."""
35- # Read the real PNG file from tests folder
36- import os
37- test_file_path = os .path .join (os .path .dirname (__file__ ), "test1.png" )
38- with open (test_file_path , "rb" ) as f :
39- file_content = f .read ()
40-
41- file_obj = io .BytesIO (file_content )
42- file_obj .name = "test1.png"
43- file_obj .seek (0 ) # Ensure we're at the beginning
44- return file_obj
45-
46-
4733# -------------------------------------------------------------------------
4834# Upload endpoints tests
4935# -------------------------------------------------------------------------
@@ -52,18 +38,18 @@ def create_test_file():
5238async def test_upload_file_async (basalam_client ):
5339 """Test upload_file async method."""
5440 try :
55- test_file = create_test_file ()
56- result = await basalam_client .upload .upload_file (
57- file = test_file ,
58- file_type = UserUploadFileTypeEnum . CHAT_FILE . value ,
59- custom_unique_name = "test-file-async" ,
60- expire_minutes = 60
61- )
62- print (f"upload_file async result: { result } " )
63- assert result is not None
64- assert hasattr (result , 'id' )
65- assert hasattr (result , 'file_name' )
66- assert hasattr (result , 'urls' )
41+ with open ( 'test1.png' , "rb" ) as file_data :
42+ result = await basalam_client .upload .upload_file (
43+ file = file_data ,
44+ file_type = "product.photo" ,
45+ custom_unique_name = "test-file-async" ,
46+ expire_minutes = 60
47+ )
48+ print (f"upload_file async result: { result } " )
49+ assert result is not None
50+ assert hasattr (result , 'id' )
51+ assert hasattr (result , 'file_name' )
52+ assert hasattr (result , 'urls' )
6753 except Exception as e :
6854 print (f"upload_file async error: { e } " )
6955 # Don't fail the test for API errors, just log them
@@ -73,18 +59,18 @@ async def test_upload_file_async(basalam_client):
7359def test_upload_file_sync (basalam_client ):
7460 """Test upload_file_sync method."""
7561 try :
76- test_file = create_test_file ()
77- result = basalam_client .upload .upload_file_sync (
78- file = test_file ,
79- file_type = 'product.photo' ,
80- custom_unique_name = "test-file-sync" ,
81- expire_minutes = 60
82- )
83- print (f"upload_file_sync result: { result } " )
84- assert result is not None
85- assert hasattr (result , 'id' )
86- assert hasattr (result , 'file_name' )
87- assert hasattr (result , 'urls' )
62+ with open ( 'test1.png' , "rb" ) as file_data :
63+ result = basalam_client .upload .upload_file_sync (
64+ file = file_data ,
65+ file_type = 'product.photo' ,
66+ custom_unique_name = "test-file-sync" ,
67+ expire_minutes = 60
68+ )
69+ print (f"upload_file_sync result: { result } " )
70+ assert result is not None
71+ assert hasattr (result , 'id' )
72+ assert hasattr (result , 'file_name' )
73+ assert hasattr (result , 'urls' )
8874 except Exception as e :
8975 print (f"upload_file_sync error: { e } " )
9076 # Don't fail the test for API errors, just log them
@@ -95,16 +81,16 @@ def test_upload_file_sync(basalam_client):
9581async def test_upload_file_minimal_params_async (basalam_client ):
9682 """Test upload_file async method with minimal parameters."""
9783 try :
98- test_file = create_test_file ()
99- result = await basalam_client .upload .upload_file (
100- file = test_file ,
101- file_type = UserUploadFileTypeEnum .CHAT_PHOTO
102- )
103- print (f"upload_file minimal params async result: { result } " )
104- assert result is not None
105- assert hasattr (result , 'id' )
106- assert hasattr (result , 'file_name' )
107- assert hasattr (result , 'urls' )
84+ with open ( 'test1.png' , "rb" ) as file_data :
85+ result = await basalam_client .upload .upload_file (
86+ file = file_data ,
87+ file_type = UserUploadFileTypeEnum .CHAT_PHOTO
88+ )
89+ print (f"upload_file minimal params async result: { result } " )
90+ assert result is not None
91+ assert hasattr (result , 'id' )
92+ assert hasattr (result , 'file_name' )
93+ assert hasattr (result , 'urls' )
10894 except Exception as e :
10995 print (f"upload_file minimal params async error: { e } " )
11096 # Don't fail the test for API errors, just log them
@@ -114,11 +100,11 @@ async def test_upload_file_minimal_params_async(basalam_client):
114100def test_upload_file_minimal_params_sync (basalam_client ):
115101 """Test upload_file_sync method with minimal parameters."""
116102 try :
117- test_file = create_test_file ()
118- result = basalam_client .upload .upload_file_sync (
119- file = test_file ,
120- file_type = UserUploadFileTypeEnum .CHAT_PHOTO
121- )
103+ with open ( 'test1.png' , "rb" ) as file_data :
104+ result = basalam_client .upload .upload_file_sync (
105+ file = file_data ,
106+ file_type = UserUploadFileTypeEnum .CHAT_PHOTO
107+ )
122108 print (f"upload_file minimal params sync result: { result } " )
123109 assert result is not None
124110 assert hasattr (result , 'id' )
@@ -128,56 +114,3 @@ def test_upload_file_minimal_params_sync(basalam_client):
128114 print (f"upload_file minimal params sync error: { e } " )
129115 # Don't fail the test for API errors, just log them
130116 assert True
131-
132-
133- @pytest .mark .asyncio
134- async def test_upload_file_different_types_async (basalam_client ):
135- """Test upload_file async method with different file types."""
136- file_types_to_test = [
137- UserUploadFileTypeEnum .PRODUCT_PHOTO ,
138- UserUploadFileTypeEnum .USER_AVATAR ,
139- UserUploadFileTypeEnum .CHAT_VIDEO ,
140- UserUploadFileTypeEnum .VENDOR_LOGO
141- ]
142-
143- for file_type in file_types_to_test :
144- try :
145- test_file = create_test_file ()
146- result = await basalam_client .upload .upload_file (
147- file = test_file ,
148- file_type = file_type ,
149- custom_unique_name = f"test-{ file_type .value .replace ('.' , '-' )} "
150- )
151- print (f"upload_file { file_type .value } async result: { result } " )
152- assert result is not None
153- assert hasattr (result , 'id' )
154- except Exception as e :
155- print (f"upload_file { file_type .value } async error: { e } " )
156- # Don't fail the test for API errors, just log them
157- assert True
158-
159-
160- def test_upload_file_different_types_sync (basalam_client ):
161- """Test upload_file_sync method with different file types."""
162- file_types_to_test = [
163- UserUploadFileTypeEnum .PRODUCT_VIDEO ,
164- UserUploadFileTypeEnum .USER_COVER ,
165- UserUploadFileTypeEnum .CHAT_VOICE ,
166- UserUploadFileTypeEnum .VENDOR_COVER
167- ]
168-
169- for file_type in file_types_to_test :
170- try :
171- test_file = create_test_file ()
172- result = basalam_client .upload .upload_file_sync (
173- file = test_file ,
174- file_type = file_type ,
175- custom_unique_name = f"test-{ file_type .value .replace ('.' , '-' )} "
176- )
177- print (f"upload_file { file_type .value } sync result: { result } " )
178- assert result is not None
179- assert hasattr (result , 'id' )
180- except Exception as e :
181- print (f"upload_file { file_type .value } sync error: { e } " )
182- # Don't fail the test for API errors, just log them
183- assert True
0 commit comments