forked from opengisch/qfieldcloud-sdk-python
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest_cli_client.py
More file actions
62 lines (50 loc) · 1.83 KB
/
test_cli_client.py
File metadata and controls
62 lines (50 loc) · 1.83 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
import unittest
from click.testing import CliRunner
from qfieldcloud_sdk.cli import QFIELDCLOUD_DEFAULT_URL, cli
from qfieldcloud_sdk.sdk import Client, Pagination
class TestSDK(unittest.TestCase):
@classmethod
def setUpClass(cls):
cls.client = Client(QFIELDCLOUD_DEFAULT_URL)
def test_paginated_list_projects(self):
results = self.client.list_projects(limit=20)
self.assertTrue(0 < len(results) and len(results) <= 20)
def test_paginated_list_projects_include_public(self):
results = self.client.list_projects(
include_public=True, pagination=Pagination(limit=200)
)
self.assertTrue(0 < len(results) and len(results) <= 50)
def test_parse_content_disposition_filename(self):
filename = Client._get_filename_from_content_disposition(
'attachment; filename="seed.xlsx"'
)
self.assertEqual(filename, "seed.xlsx")
encoded_filename = Client._get_filename_from_content_disposition(
"attachment; filename*=UTF-8''my%20seed.xlsx"
)
self.assertEqual(encoded_filename, "my seed.xlsx")
class TestCLI(unittest.TestCase):
@classmethod
def setUpClass(cls):
cls.runner = CliRunner()
def test_list_projects(self):
result = self.runner.invoke(
cli,
[
"list-projects",
"--include-public",
"--offset",
5,
"--limit",
100,
],
catch_exceptions=False,
)
self.assertEqual(result.exit_code, 0)
def test_list_jobs(self):
result = self.runner.invoke(
cli,
["list-jobs", "my_project_id", "--limit", 10, "--offset", 5],
catch_exceptions=False,
)
self.assertEqual(result.exit_code, 0)