Skip to content

Commit 18c824a

Browse files
authored
Merge branch 'master' into bilal/mthd-9409
2 parents 26cb72c + f24e52f commit 18c824a

File tree

5 files changed

+93
-69
lines changed

5 files changed

+93
-69
lines changed

method/resource.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -241,6 +241,10 @@ def _update_with_id(self, _id: str, data: Dict) -> MethodResponse[T]:
241241
def _update(self, data: Dict) -> MethodResponse[T]:
242242
return self._make_request('PUT', data=data)
243243

244+
@MethodError.catch
245+
def _patch_with_id(self, _id: str, data: Dict) -> MethodResponse[T]:
246+
return self._make_request('PATCH', path=_id, data=data)
247+
244248
@MethodError.catch
245249
def _update_with_sub_path(self, path: str, data: Dict) -> MethodResponse[T]:
246250
return self._make_request('PUT', path=path, data=data)

method/resources/Webhook.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,10 @@ class WebhookCreateOpts(TypedDict):
9393
expand_event: Optional[bool]
9494

9595

96+
class WebhookUpdateOpts(TypedDict):
97+
status: Optional[str]
98+
99+
96100
class WebhookResource(Resource):
97101
def __init__(self, config: Configuration):
98102
super(WebhookResource, self).__init__(config.add_path('webhooks'))
@@ -109,3 +113,6 @@ def list(self) -> MethodResponse[List[Webhook]]:
109113

110114
def create(self, opts: WebhookCreateOpts, request_opts: Optional[RequestOpts] = None) -> MethodResponse[Webhook]:
111115
return super(WebhookResource, self)._create(opts, request_opts)
116+
117+
def update(self, _id: str, opts: WebhookUpdateOpts) -> MethodResponse[Webhook]:
118+
return super(WebhookResource, self)._patch_with_id(_id, opts)

test/resources/Account_test.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,7 @@ def test_create_liability_account(setup):
170170
'card_brand': None,
171171
'payoff': None,
172172
'payment_instrument': None,
173+
'payoff': None,
173174
'products': accounts_create_liability_response['products'],
174175
'restricted_products': accounts_create_liability_response['restricted_products'],
175176
'subscriptions': accounts_create_liability_response['subscriptions'],

test/resources/Event_test.py

Lines changed: 70 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -1,81 +1,82 @@
1-
from time import sleep
2-
import os
3-
import pytest
4-
from method import Method
5-
from dotenv import load_dotenv
1+
# TODO: Add back tests once events list is working in dev
2+
# from time import sleep
3+
# import os
4+
# import pytest
5+
# from method import Method
6+
# from dotenv import load_dotenv
67

7-
load_dotenv()
8+
# load_dotenv()
89

9-
API_KEY = os.getenv('API_KEY')
10-
method = Method(env='dev', api_key=API_KEY)
10+
# API_KEY = os.getenv('API_KEY')
11+
# method = Method(env='dev', api_key=API_KEY)
1112

12-
@pytest.fixture(scope='module')
13-
def setup():
14-
entity_response = method.entities.create({
15-
'type': 'individual',
16-
'individual': {
17-
'first_name': 'Kevin',
18-
'last_name': 'Doyle',
19-
'phone': '+15121231111',
20-
}
21-
})
13+
# @pytest.fixture(scope='module')
14+
# def setup():
15+
# entity_response = method.entities.create({
16+
# 'type': 'individual',
17+
# 'individual': {
18+
# 'first_name': 'Kevin',
19+
# 'last_name': 'Doyle',
20+
# 'phone': '+15121231111',
21+
# }
22+
# })
2223

23-
method.entities(entity_response['id']).verification_sessions.create({
24-
'type': 'phone',
25-
'method': 'byo_sms',
26-
'byo_sms': {
27-
'timestamp': '2024-03-15T00:00:00.000Z'
28-
}
29-
})
24+
# method.entities(entity_response['id']).verification_sessions.create({
25+
# 'type': 'phone',
26+
# 'method': 'byo_sms',
27+
# 'byo_sms': {
28+
# 'timestamp': '2024-03-15T00:00:00.000Z'
29+
# }
30+
# })
3031

31-
method.entities(entity_response['id']).verification_sessions.create({
32-
'type': 'identity',
33-
'method': 'kba',
34-
'kba': {}
35-
})
32+
# method.entities(entity_response['id']).verification_sessions.create({
33+
# 'type': 'identity',
34+
# 'method': 'kba',
35+
# 'kba': {}
36+
# })
3637

37-
connect_response = method.entities(entity_response['id']).connect.create()
38-
account_response = method.accounts.list({'holder_id': entity_response['id']})
39-
attribute_response = method.entities(entity_response['id']).attributes.create({
40-
'attributes': ['credit_health_credit_card_usage']
41-
})
42-
credit_score_response = method.entities(entity_response['id']).credit_scores.create()
38+
# connect_response = method.entities(entity_response['id']).connect.create()
39+
# account_response = method.accounts.list({'holder_id': entity_response['id']})
40+
# attribute_response = method.entities(entity_response['id']).attributes.create({
41+
# 'attributes': ['credit_health_credit_card_usage']
42+
# })
43+
# credit_score_response = method.entities(entity_response['id']).credit_scores.create()
4344

44-
return {
45-
'entity_response': entity_response,
46-
'connect_response': connect_response,
47-
'account_response': account_response,
48-
'attribute_response': attribute_response,
49-
'credit_score_response': credit_score_response
50-
}
45+
# return {
46+
# 'entity_response': entity_response,
47+
# 'connect_response': connect_response,
48+
# 'account_response': account_response,
49+
# 'attribute_response': attribute_response,
50+
# 'credit_score_response': credit_score_response
51+
# }
5152

52-
def test_simulate_account_opened(setup):
53-
method.simulate.events.create({
54-
'type': 'account.opened',
55-
'entity_id': setup['entity_response']['id']
56-
})
53+
# def test_simulate_account_opened(setup):
54+
# method.simulate.events.create({
55+
# 'type': 'account.opened',
56+
# 'entity_id': setup['entity_response']['id']
57+
# })
5758

58-
max_retries = 3
59-
for _ in range(max_retries):
60-
sleep(10)
61-
events_list_response = method.events.list({
62-
'type': 'account.opened'
63-
})
64-
if events_list_response and len(events_list_response) > 0:
65-
break
59+
# max_retries = 3
60+
# for _ in range(max_retries):
61+
# sleep(10)
62+
# events_list_response = method.events.list({
63+
# 'type': 'account.opened'
64+
# })
65+
# if events_list_response and len(events_list_response) > 0:
66+
# break
6667

67-
event_response = events_list_response[0]
68-
event_retrieve_response = method.events.retrieve(event_response['id'])
68+
# event_response = events_list_response[0]
69+
# event_retrieve_response = method.events.retrieve(event_response['id'])
6970

70-
expect_results = {
71-
'id': event_response['id'],
72-
'created_at': event_response['created_at'],
73-
'updated_at': event_response['updated_at'],
74-
'type': 'account.opened',
75-
'resource_id': event_response['resource_id'],
76-
'resource_type': event_response['resource_type'],
77-
'data': event_response['data'],
78-
'diff': event_response['diff']
79-
}
71+
# expect_results = {
72+
# 'id': event_response['id'],
73+
# 'created_at': event_response['created_at'],
74+
# 'updated_at': event_response['updated_at'],
75+
# 'type': 'account.opened',
76+
# 'resource_id': event_response['resource_id'],
77+
# 'resource_type': event_response['resource_type'],
78+
# 'data': event_response['data'],
79+
# 'diff': event_response['diff']
80+
# }
8081

81-
assert event_retrieve_response == expect_results
82+
# assert event_retrieve_response == expect_results

test/resources/Webhook_test.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
webhooks_retrieve_response = None
1313
webhooks_list_response = None
1414
webhooks_delete_response = None
15+
webhooks_update_response = None
1516

1617
def test_create_webhooks():
1718
global webhooks_create_response
@@ -66,6 +67,16 @@ def test_list_webhooks():
6667
assert webhooks_create_response['id'] in webhook_ids
6768

6869

70+
def test_update_webhook():
71+
global webhooks_update_response
72+
73+
webhooks_update_response = method.webhooks.update(webhooks_create_response['id'], {
74+
'status': 'disabled'
75+
})
76+
77+
assert webhooks_update_response['status'] == 'disabled'
78+
79+
6980
def test_delete_webhook():
7081
global webhooks_delete_response
7182

0 commit comments

Comments
 (0)