Skip to content
This repository was archived by the owner on Jul 3, 2023. It is now read-only.

Commit 858a2cb

Browse files
committed
Tests are now scoped to a user provided workspace
1 parent 3bfb223 commit 858a2cb

4 files changed

Lines changed: 25 additions & 26 deletions

File tree

typeform/client.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ def __validator(self, result: requests.Response) -> typing.Union[str, dict]:
3939
if type(body) is dict and body.get('code', None) is not None:
4040
raise Exception(body.get('description'))
4141
elif result.status_code >= 400:
42-
raise Exception(result.reason)
42+
raise Exception(' '.join([str(result.status_code),result.reason]))
4343
elif len(result.text) == 0:
4444
return 'OK'
4545
else:

typeform/test/fixtures.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,10 @@
22

33
# Don't use your own account for this, this will delete pretty much everything you have!
44
TOKEN = os.environ.get('TYPEFORM_TOKEN')
5+
6+
# Tests will be scoped to this workspace.
7+
WORKSPACE = 'https://api.typeform.com/workspaces/[YOUR WORKSPACE ID]'
8+
WORKSPACE_ID = WORKSPACE.split('/')[-1]
9+
10+
if not TOKEN or '[YOUR WORKSPACE ID]' in WORKSPACE:
11+
raise Exception("You need to setup TOKEN and WORKSPACE in fixtures.py")

typeform/test/test_forms.py

Lines changed: 13 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
import requests_mock
33
import urllib.parse
44

5-
from .fixtures import TOKEN
5+
from .fixtures import TOKEN, WORKSPACE, WORKSPACE_ID
66

77
from typeform import Typeform
88
from typeform.constants import API_BASE_URL
@@ -11,13 +11,11 @@
1111
class FormsTestCase(TestCase):
1212
def setUp(self):
1313
self.forms = Typeform(TOKEN).forms
14-
form = self.forms.create({
15-
'title': 'title'
16-
})
14+
form = self.forms.create(dict(title="Form's test form", workspace={'href': WORKSPACE}))
1715
self.formID = form.get('id')
1816

1917
def tearDown(self):
20-
list = self.forms.list()
18+
list = self.forms.list(workspaceId=WORKSPACE_ID)
2119
forms = list.get('items', [])
2220
for form in forms:
2321
self.forms.delete(form.get('id'))
@@ -28,10 +26,10 @@ def test_forms_returns_method_and_path(self):
2826
"""
2927
with requests_mock.mock() as m:
3028
m.get(API_BASE_URL+'/forms', json={})
31-
self.forms.list()
29+
self.forms.list(workspaceId=WORKSPACE_ID)
3230

3331
history = m.request_history
34-
self.assertEqual(history[0].url, API_BASE_URL+'/forms')
32+
self.assertEqual(history[0].url, API_BASE_URL+'/forms?workspace_id={}'.format(WORKSPACE_ID))
3533
self.assertEqual(history[0].method, 'GET')
3634

3735
def test_forms_correct_params(self):
@@ -40,16 +38,16 @@ def test_forms_correct_params(self):
4038
"""
4139
with requests_mock.mock() as m:
4240
m.get(API_BASE_URL+'/forms', json={})
43-
self.forms.list(page=2, pageSize=10, search='hola', workspaceId='abc')
41+
self.forms.list(page=2, pageSize=10, search='forms_correct_params', workspaceId=WORKSPACE_ID)
4442

4543
history = m.request_history
4644
query = history[0].url.split('?')[1]
4745
params = dict(urllib.parse.parse_qs(query))
4846

4947
self.assertEqual(params.pop('page')[0], '2')
5048
self.assertEqual(params.pop('page_size')[0], '10')
51-
self.assertEqual(params.pop('search')[0], 'hola')
52-
self.assertEqual(params.pop('workspace_id')[0], 'abc')
49+
self.assertEqual(params.pop('search')[0], 'forms_correct_params')
50+
self.assertEqual(params.pop('workspace_id')[0], WORKSPACE_ID)
5351

5452
def test_forms_get_correct_id(self):
5553
"""
@@ -77,7 +75,7 @@ def test_forms_update_updates_a_form(self):
7775
"""
7876
update updates a form
7977
"""
80-
title = 'hola'
78+
title = 'forms_update_updates_a_form'
8179
result = self.forms.update(self.formID, data={
8280
'title': title
8381
})
@@ -91,7 +89,7 @@ def test_forms_update_as_patch_updates_a_form(self):
9189
result = self.forms.update(self.formID, patch=True, data=[{
9290
'op': 'replace',
9391
'path': '/title',
94-
'value': 'aloha'
92+
'value': 'forms_update_as_patch_updates_a_form'
9593
}])
9694

9795
self.assertEqual(result, 'OK')
@@ -103,7 +101,7 @@ def test_forms_update_sets_put_method_in_request_by_default(self):
103101
with requests_mock.mock() as m:
104102
m.put(API_BASE_URL+'/forms/'+self.formID, json={})
105103
self.forms.update(self.formID, data={
106-
'title': 'title'
104+
'title': 'forms_update_sets_put_method_in_request_by_default'
107105
})
108106

109107
history = m.request_history
@@ -129,9 +127,7 @@ def test_forms_create_has_the_correct_path_and_method(self):
129127
"""
130128
with requests_mock.mock() as m:
131129
m.post(API_BASE_URL+'/forms', json={})
132-
self.forms.create({
133-
'title': 'hola'
134-
})
130+
self.forms.create(dict(title='forms_create_has_the_correct_path_and_method', workspace={'href': WORKSPACE}))
135131

136132
history = m.request_history
137133

@@ -142,9 +138,7 @@ def test_forms_create_creates_a_new_form(self):
142138
"""
143139
create creates a new form
144140
"""
145-
createResult = self.forms.create({
146-
'title': 'hola'
147-
})
141+
createResult = self.forms.create(dict(title='forms_create_creates_a_new_form', workspace={'href': WORKSPACE}))
148142

149143
formID = createResult.get('id')
150144

typeform/test/test_responses.py

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
import requests_mock
33
import urllib.parse
44

5-
from .fixtures import TOKEN
5+
from .fixtures import TOKEN, WORKSPACE, WORKSPACE_ID
66

77
from typeform import Typeform
88
from typeform.constants import API_BASE_URL
@@ -12,13 +12,11 @@ class ResponsesTestCase(TestCase):
1212
def setUp(self):
1313
self.forms = Typeform(TOKEN).forms
1414
self.responses = Typeform(TOKEN).responses
15-
form = self.forms.create({
16-
'title': 'title'
17-
})
15+
form = self.forms.create((dict(title="Responses's test form", workspace={'href': WORKSPACE})))
1816
self.formID = form.get('id')
1917

2018
def tearDown(self):
21-
list = self.forms.list()
19+
list = self.forms.list(workspaceId=WORKSPACE_ID)
2220
forms = list.get('items', [])
2321
for form in forms:
2422
self.forms.delete(form.get('id'))
@@ -65,7 +63,7 @@ def test_list_fetches_responses(self):
6563

6664
def test_list_fetches_responses_with_params(self):
6765
"""
68-
get all responses does not throw an error with paramters
66+
get all responses does not throw an error with parameters
6967
"""
7068
result = self.responses.list(
7169
self.formID, pageSize=100, since='2000-01-01T00:00:00Z', completed=True, fields=['1', '2']

0 commit comments

Comments
 (0)