Skip to content

Commit 08f8b47

Browse files
authored
Merge pull request #7 from paywithextend/feat(exp-mgmt)/remove-bad-params
2 parents 69220de + cc60898 commit 08f8b47

File tree

3 files changed

+44
-35
lines changed

3 files changed

+44
-35
lines changed

extend/resources/expense_data.py

Lines changed: 4 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -113,8 +113,6 @@ async def create_expense_category(
113113
required: bool,
114114
active: Optional[bool] = None,
115115
free_text_allowed: Optional[bool] = None,
116-
integrator_enabled: Optional[bool] = None,
117-
integrator_field_number: Optional[int] = None,
118116
) -> Dict:
119117
"""Create an expense category.
120118
@@ -124,8 +122,6 @@ async def create_expense_category(
124122
required (bool): Whether this field is required for all users
125123
active (Optional[bool]): Whether this category is active and available for input
126124
free_text_allowed (Optional[bool]): Whether free text input is allowed
127-
integrator_enabled (Optional[bool]): Whether this category is integrator enabled
128-
integrator_field_number (Optional[int]): Field number used by the integrator
129125
130126
Returns:
131127
Dict: A dictionary containing the newly created expense category
@@ -140,12 +136,11 @@ async def create_expense_category(
140136
"required": required,
141137
"active": active,
142138
"freeTextAllowed": free_text_allowed,
143-
"integratorEnabled": integrator_enabled,
144-
"integratorFieldNumber": integrator_field_number,
145139
}
146140

147141
return await self._request(
148142
method="post",
143+
path='/categories',
149144
params=payload
150145
)
151146

@@ -178,7 +173,7 @@ async def create_expense_category_label(
178173

179174
return await self._request(
180175
method="post",
181-
path=f"/{category_id}",
176+
path=f"/categories/{category_id}/labels",
182177
params=payload
183178
)
184179

@@ -189,8 +184,6 @@ async def update_expense_category(
189184
active: Optional[bool] = None,
190185
required: Optional[bool] = None,
191186
free_text_allowed: Optional[bool] = None,
192-
integrator_enabled: Optional[bool] = None,
193-
integrator_field_number: Optional[int] = None,
194187
) -> Dict:
195188
"""Update the an expense category.
196189
@@ -200,8 +193,6 @@ async def update_expense_category(
200193
active (Optional[bool]): Whether the category is active
201194
required (Optional[bool]): Whether this field is required for all users
202195
free_text_allowed (Optional[bool]): Whether free text input is allowed
203-
integrator_enabled (Optional[bool]): Whether this category is integrator enabled
204-
integrator_field_number (Optional[int]): Field number used by the integrator
205196
206197
Returns:
207198
Dict: A dictionary containing the updated expense category details
@@ -215,13 +206,11 @@ async def update_expense_category(
215206
"active": active,
216207
"required": required,
217208
"freeTextAllowed": free_text_allowed,
218-
"integratorEnabled": integrator_enabled,
219-
"integratorFieldNumber": integrator_field_number,
220209
}
221210

222211
return await self._request(
223212
method="patch",
224-
path=f"/{category_id}",
213+
path=f"/categories/{category_id}",
225214
params=payload
226215
)
227216

@@ -254,6 +243,6 @@ async def update_expense_category_label(
254243

255244
return await self._request(
256245
method="patch",
257-
path=f"/{category_id}/labels/{label_id}",
246+
path=f"/categories/{category_id}/labels/{label_id}",
258247
params=payload
259248
)

tests/test_client.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -533,9 +533,7 @@ async def test_create_expense_category(extend, mocker):
533533
code="NEWCODE",
534534
required=True,
535535
active=True,
536-
free_text_allowed=True,
537-
integrator_enabled=True,
538-
integrator_field_number=42
536+
free_text_allowed=False,
539537
)
540538

541539
assert response["id"] == "cat_new"

tests/test_integration.py

Lines changed: 39 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import os
2+
import uuid
23
from datetime import datetime, timedelta
34

45
import pytest
@@ -209,51 +210,72 @@ class TestExpenseData:
209210
@pytest.mark.asyncio
210211
async def test_create_update_category_and_label(self, extend):
211212
# Create a new expense category
213+
u = uuid.uuid4()
214+
name = f"Integration Test Category {u}"
215+
code = f"INTEG-CAT-{u}"
212216
category_resp = await extend.expense_data.create_expense_category(
213-
name="Integration Test Category",
214-
code="INTEG-CAT",
217+
name=name,
218+
code=code,
215219
required=True,
216220
active=True,
217-
free_text_allowed=True,
218-
integrator_enabled=True,
219-
integrator_field_number=999
221+
free_text_allowed=False,
220222
)
221223

222224
category_id = category_resp["id"]
223-
assert category_resp["name"] == "Integration Test Category"
224-
assert category_resp["code"] == "INTEG-CAT"
225+
assert category_resp["name"] == name
226+
assert category_resp["code"] == code
227+
228+
# re-fetch newly created expense category
229+
category = await extend.expense_data.get_expense_category(category_id)
230+
assert category_resp["name"] == name
231+
assert category_resp["code"] == code
225232

226233
# Update the category
234+
updated_name = f"Updated Integration Category {u}"
227235
updated_category = await extend.expense_data.update_expense_category(
228236
category_id=category_id,
229-
name="Updated Integration Category",
237+
name=updated_name,
230238
active=False
231239
)
232240

233-
assert updated_category["name"] == "Updated Integration Category"
241+
assert updated_category["name"] == updated_name
234242
assert updated_category["active"] is False
235243

236244
# Create a label under the category
237-
label_resp = await extend.expense_data.create_expense_category_label(
245+
u1 = uuid.uuid4()
246+
label_name_one = f"Integration Label {u1}"
247+
label_code_one = f"INTEG-LABEL-{u1}"
248+
u2 = uuid.uuid4()
249+
label_name_two = f"Integration Label {u2}"
250+
label_code_two = f"INTEG-LABEL-{u2}"
251+
252+
label_resp_one = await extend.expense_data.create_expense_category_label(
253+
category_id=category_id,
254+
name=label_name_one,
255+
code=label_code_one,
256+
active=True
257+
)
258+
259+
label_resp_two = await extend.expense_data.create_expense_category_label(
238260
category_id=category_id,
239-
name="Integration Label",
240-
code="INTEG-LABEL",
261+
name=label_name_two,
262+
code=label_code_two,
241263
active=True
242264
)
243265

244-
label_id = label_resp["id"]
245-
assert label_resp["name"] == "Integration Label"
246-
assert label_resp["code"] == "INTEG-LABEL"
266+
label_id = label_resp_one["id"]
267+
assert label_resp_one["name"] == label_name_one
268+
assert label_resp_one["code"] == label_code_one
247269

248270
# Update the label
249271
updated_label = await extend.expense_data.update_expense_category_label(
250272
category_id=category_id,
251273
label_id=label_id,
252-
name="Updated Label Name",
274+
name=f"Updated Label Name {u1}",
253275
active=False
254276
)
255277

256-
assert updated_label["name"] == "Updated Label Name"
278+
assert updated_label["name"] == f"Updated Label Name {u1}"
257279
assert updated_label["active"] is False
258280

259281
@pytest.mark.asyncio

0 commit comments

Comments
 (0)