@@ -57,12 +57,87 @@ async def test_delete_file(file_for_upload):
57
57
filter_query_parameters = ['uuid' , 'l_file' , 'pnsdk' ]
58
58
)
59
59
@pytest .mark .asyncio (loop_scope = "module" )
60
- async def test_list_files ():
60
+ async def test_list_files (file_for_upload , file_upload_test_data ):
61
61
pubnub = PubNubAsyncio (pnconf_env_copy ())
62
+ pubnub .config .uuid = "files_asyncio_uuid"
63
+
64
+ # Clear existing files first to ensure a clean state
65
+ envelope = await pubnub .list_files ().channel (CHANNEL ).future ()
66
+ files = envelope .result .data
67
+ for i in range (len (files )):
68
+ file = files [i ]
69
+ await pubnub .delete_file ().channel (CHANNEL ).file_id (file ["id" ]).file_name (file ["name" ]).future ()
70
+
71
+ envelope = await send_file (pubnub , file_for_upload )
72
+
73
+ envelope = await pubnub .list_files ().channel (CHANNEL ).future ()
74
+
75
+ assert isinstance (envelope .result , PNGetFilesResult )
76
+ assert envelope .result .count == 1
77
+ assert file_upload_test_data ["UPLOADED_FILENAME" ] == envelope .result .data [0 ]["name" ]
78
+ await pubnub .stop ()
79
+
80
+
81
+ @pn_vcr .use_cassette (
82
+ "tests/integrational/fixtures/asyncio/file_upload/list_files_with_limit.json" , serializer = "pn_json" ,
83
+ filter_query_parameters = ['uuid' , 'l_file' , 'pnsdk' ]
84
+ )
85
+ @pytest .mark .asyncio (loop_scope = "module" )
86
+ async def test_list_files_with_limit (file_for_upload , file_upload_test_data ):
87
+ pubnub = PubNubAsyncio (pnconf_env_copy ())
88
+ pubnub .config .uuid = "files_asyncio_uuid"
89
+ await send_file (pubnub , file_for_upload )
90
+ await send_file (pubnub , file_for_upload )
91
+ envelope = await pubnub .list_files ().channel (CHANNEL ).limit (2 ).future ()
92
+ assert isinstance (envelope .result , PNGetFilesResult )
93
+ assert envelope .result .count == 2
94
+ assert file_upload_test_data ["UPLOADED_FILENAME" ] == envelope .result .data [0 ]["name" ]
95
+ await pubnub .stop ()
96
+
97
+
98
+ @pn_vcr .use_cassette (
99
+ "tests/integrational/fixtures/asyncio/file_upload/list_files_with_page.json" , serializer = "pn_json" ,
100
+ filter_query_parameters = ['uuid' , 'l_file' , 'pnsdk' ]
101
+ )
102
+ @pytest .mark .asyncio (loop_scope = "module" )
103
+ async def test_list_files_with_page (file_for_upload , file_upload_test_data ):
104
+ pubnub = PubNubAsyncio (pnconf_env_copy ())
105
+ pubnub .config .uuid = "files_asyncio_uuid"
106
+ await send_file (pubnub , file_for_upload )
107
+ await send_file (pubnub , file_for_upload )
108
+ envelope = await pubnub .list_files ().channel (CHANNEL ).limit (2 ).future ()
109
+ assert isinstance (envelope .result , PNGetFilesResult )
110
+ assert envelope .result .count == 2
111
+ assert envelope .result .next is not None
112
+ next_page = envelope .result .next
113
+ file_ids = [envelope .result .data [0 ]['id' ], envelope .result .data [1 ]['id' ]]
114
+ envelope = await pubnub .list_files ().channel (CHANNEL ).limit (2 ).next (next_page ).future ()
115
+ assert isinstance (envelope .result , PNGetFilesResult )
116
+ assert envelope .result .count == 2
117
+ assert envelope .result .next is not None
118
+ assert envelope .result .data [0 ]['id' ] not in file_ids
119
+ assert envelope .result .data [1 ]['id' ] not in file_ids
120
+ assert file_upload_test_data ["UPLOADED_FILENAME" ] == envelope .result .data [0 ]["name" ]
121
+ await pubnub .stop ()
122
+
123
+
124
+ # @pn_vcr.use_cassette( # Needs new recording for asyncio
125
+ # "tests/integrational/fixtures/asyncio/file_upload/delete_all_files.json", serializer="pn_json",
126
+ # filter_query_parameters=['uuid', 'l_file', 'pnsdk']
127
+ # )
128
+ @pytest .mark .asyncio (loop_scope = "module" )
129
+ async def test_delete_all_files ():
130
+ pubnub = PubNubAsyncio (pnconf_env_copy ())
131
+ pubnub .config .uuid = "files_asyncio_uuid"
132
+ envelope = await pubnub .list_files ().channel (CHANNEL ).future ()
133
+ files = envelope .result .data
134
+ for i in range (len (files )):
135
+ file = files [i ]
136
+ await pubnub .delete_file ().channel (CHANNEL ).file_id (file ["id" ]).file_name (file ["name" ]).future ()
62
137
envelope = await pubnub .list_files ().channel (CHANNEL ).future ()
63
138
64
139
assert isinstance (envelope .result , PNGetFilesResult )
65
- assert envelope .result .count == 7
140
+ assert envelope .result .count == 0
66
141
await pubnub .stop ()
67
142
68
143
0 commit comments