Skip to content

Commit 795ddcb

Browse files
🧪 test: add tests for DNS records and file moving features
- Added test_move_file method in TestApp class. - Created new tests for all_backups, all_apps_status, and dns_records methods in TestRequestListeners. - Updated test_set_custom_domain to remove redundant lines.
1 parent 48f6bb5 commit 795ddcb

File tree

3 files changed

+77
-12
lines changed

3 files changed

+77
-12
lines changed

tests/conftest.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,8 @@ async def app(client: Client) -> Application:
3131
config = ConfigFile(
3232
display_name='normal_test',
3333
main='main.py',
34-
memory=256,
34+
memory=512,
35+
subdomain='bhejbdhjwebjhde'
3536
)
3637
with Status('uploading test application...', spinner='point'):
3738
upload_data: UploadData = await client.upload_app(

tests/test_app.py

+6
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import squarecloud
44
from squarecloud import BackupInfo
55
from squarecloud.app import Application
6+
from squarecloud.http import Response
67
from tests import GITHUB_ACCESS_TOKEN
78

89

@@ -50,3 +51,8 @@ async def test_get_all_backups(self, app: Application):
5051
backups = await app.all_backups()
5152
assert isinstance(backups, list)
5253
assert isinstance(backups[0], BackupInfo)
54+
55+
async def test_move_file(self, app: Application):
56+
response = await app.move_file('main.py', 'test.py')
57+
assert isinstance(response, Response)
58+
assert response.status == 'success'

tests/test_request_listeners.py

+69-11
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,13 @@
88
from squarecloud.data import (
99
AppData,
1010
Backup,
11+
BackupInfo,
1112
DeployData,
13+
DNSRecord,
1214
DomainAnalytics,
1315
FileInfo,
1416
LogsData,
17+
ResumedStatus,
1518
StatusData,
1619
UserData,
1720
)
@@ -25,7 +28,7 @@ def decorator(func):
2528
async def wrapper(self, client: Client, app: Application):
2629
if client.get_listener(endpoint):
2730
client.remove_listener(endpoint)
28-
return await func(self, client=client, app=app)
31+
return await func(self, client, app)
2932
return wrapper
3033
return decorator
3134

@@ -298,16 +301,6 @@ async def test_listener(response: Response):
298301
)
299302
@_clear_listener_on_rerun(Endpoint.custom_domain())
300303
async def test_set_custom_domain(self, client: Client, app: Application):
301-
endpoint: Endpoint = Endpoint.custom_domain()
302-
303-
if not client.get_request_listener(endpoint):
304-
@client.on_request(endpoint)
305-
async def test(response: Response):
306-
assert isinstance(response, Response)
307-
308-
await client.set_custom_domain(
309-
'6c8e9b785cce4f99984f9ca1c5470d51', 'test.com.br'
310-
)
311304
endpoint: Endpoint = Endpoint.github_integration()
312305
expected_result: str | None
313306
expected_response: Response | None = None
@@ -324,6 +317,71 @@ async def test_listener(response: Response):
324317
assert isinstance(expected_result, str)
325318
assert isinstance(expected_response, Response)
326319

320+
@_clear_listener_on_rerun(Endpoint.all_backups())
321+
async def test_all_backups(self, client: Client, app: Application):
322+
endpoint: Endpoint = Endpoint.all_backups()
323+
expected_result: list[BackupInfo] | None
324+
expected_response: Response | None = None
325+
326+
@client.on_request(endpoint)
327+
async def test_listener(response: Response):
328+
nonlocal expected_response
329+
expected_response = response
330+
331+
expected_result = await client.all_app_backups(app.id)
332+
assert isinstance(expected_result, list)
333+
assert isinstance(expected_result[0], BackupInfo)
334+
assert isinstance(expected_response, Response)
335+
336+
@_clear_listener_on_rerun(Endpoint.all_apps_status())
337+
async def test_all_apps_status(self, client: Client, app: Application):
338+
endpoint: Endpoint = Endpoint.all_apps_status()
339+
expected_result: list[ResumedStatus] | None
340+
expected_response: Response | None = None
341+
342+
@client.on_request(endpoint)
343+
async def test_listener(response: Response):
344+
nonlocal expected_response
345+
expected_response = response
346+
347+
expected_result = await client.all_apps_status()
348+
assert isinstance(expected_result, list)
349+
assert isinstance(expected_result[0], ResumedStatus)
350+
assert isinstance(expected_response, Response)
351+
352+
@_clear_listener_on_rerun(Endpoint.move_file())
353+
async def test_move_app_file(self, client: Client, app: Application):
354+
endpoint: Endpoint = Endpoint.move_file()
355+
expected_result: Response | None
356+
expected_response: Response | None = None
357+
358+
@client.on_request(endpoint)
359+
async def test_listener(response: Response):
360+
nonlocal expected_response
361+
expected_response = response
362+
363+
expected_result = await client.move_app_file(
364+
app.id, 'test.txt', 'test_move.txt'
365+
)
366+
assert isinstance(expected_result, Response)
367+
assert isinstance(expected_response, Response)
368+
369+
@_clear_listener_on_rerun(Endpoint.dns_records())
370+
async def test_move_app_file(self, client: Client, app: Application):
371+
endpoint: Endpoint = Endpoint.dns_records()
372+
expected_result: list[DNSRecord] | None
373+
expected_response: Response | None = None
374+
375+
@client.on_request(endpoint)
376+
async def test_listener(response: Response):
377+
nonlocal expected_response
378+
expected_response = response
379+
380+
expected_result = await client.dns_records(app.id)
381+
assert isinstance(expected_result, list)
382+
assert isinstance(expected_result[0], DNSRecord)
383+
assert isinstance(expected_response, Response)
384+
327385
@_clear_listener_on_rerun(endpoint=Endpoint.app_status())
328386
async def test_pydantic_cast(self, client: Client, app: Application):
329387
class Person(BaseModel):

0 commit comments

Comments
 (0)