Skip to content

Commit bf61bf7

Browse files
author
Sebastian Molenda
committed
Asyncio tests
1 parent 08041bc commit bf61bf7

4 files changed

Lines changed: 1441 additions & 8 deletions

File tree

tests/integrational/asyncio/test_file_upload.py

Lines changed: 77 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,12 +57,87 @@ async def test_delete_file(file_for_upload):
5757
filter_query_parameters=['uuid', 'l_file', 'pnsdk']
5858
)
5959
@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):
6161
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()
62137
envelope = await pubnub.list_files().channel(CHANNEL).future()
63138

64139
assert isinstance(envelope.result, PNGetFilesResult)
65-
assert envelope.result.count == 7
140+
assert envelope.result.count == 0
66141
await pubnub.stop()
67142

68143

0 commit comments

Comments
 (0)