Skip to content

Commit 6dd6569

Browse files
committed
Fix GET_STATUS_URL in PromoOfferRequestTrackingCode and update request data handling
- Corrected the URL for GET_STATUS_URL to match the intended endpoint. - Refactored the request method to use a dictionary for request data instead of setting parameters directly, improving clarity and maintainability.
1 parent a2e3d91 commit 6dd6569

File tree

2 files changed

+50
-6
lines changed

2 files changed

+50
-6
lines changed

admitad/items/promo_offers.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ class PromoOfferRequestTrackingCode(Item):
4444
SCOPE = 'request_tracking_coupon'
4545

4646
CREATE_URL = Item.prepare_url('tracking_promo_code/request-tracking-coupon')
47-
GET_STATUS_URL = Item.prepare_url('tracking_promo_codes/request-status')
47+
GET_STATUS_URL = Item.prepare_url('tracking_promo_code/request-status')
4848

4949
def create(
5050
self,
@@ -98,8 +98,12 @@ def get(self, request_id: int) -> dict:
9898
"""
9999
request_id = Item.sanitize_id(request_id)
100100

101+
request_data = {
102+
'request_id': request_id,
103+
}
104+
101105
return (
102106
self.transport.get()
103-
.set_params({'request_id': request_id})
107+
.set_data(request_data)
104108
.request(url=self.GET_STATUS_URL)
105109
)

admitad/tests/test_promo_offers.py

Lines changed: 44 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ def test_request_tracking_promo_code_success(self) -> None:
3131
with responses.RequestsMock() as resp:
3232
resp.add(
3333
resp.POST,
34-
PromoOfferRequestTrackingCode.URL,
34+
PromoOfferRequestTrackingCode.CREATE_URL,
3535
json={
3636
'assigned_promo_code': 'TESTCODE123',
3737
'tracking_link': 'https://ad.admitad.com/g/123abc/'
@@ -52,7 +52,7 @@ def test_request_tracking_promo_code_creates_request(self) -> None:
5252
with responses.RequestsMock() as resp:
5353
resp.add(
5454
resp.POST,
55-
PromoOfferRequestTrackingCode.URL,
55+
PromoOfferRequestTrackingCode.CREATE_URL,
5656
json={
5757
'assigned_promo_code': None,
5858
'tracking_link': None,
@@ -76,7 +76,7 @@ def test_request_tracking_promo_code_no_coupon_error(self) -> None:
7676
with responses.RequestsMock() as resp:
7777
resp.add(
7878
resp.POST,
79-
PromoOfferRequestTrackingCode.URL,
79+
PromoOfferRequestTrackingCode.CREATE_URL,
8080
json={
8181
'error_code': 'CHECK_PRE_APPROVED_COUPON_ERROR_CODE_NO_COUPON'
8282
},
@@ -93,7 +93,7 @@ def test_request_tracking_promo_code_not_connected_error(self) -> None:
9393
with responses.RequestsMock() as resp:
9494
resp.add(
9595
resp.POST,
96-
PromoOfferRequestTrackingCode.URL,
96+
PromoOfferRequestTrackingCode.CREATE_URL,
9797
json={
9898
'error_code': 'webmaster_not_connected'
9999
},
@@ -130,6 +130,46 @@ def test_request_tracking_promo_code_invalid_website_id(self) -> None:
130130
website_id=0,
131131
)
132132

133+
def test_get_tracking_promo_code_request_status_success(self) -> None:
134+
with responses.RequestsMock() as resp:
135+
resp.add(
136+
resp.GET,
137+
PromoOfferRequestTrackingCode.GET_STATUS_URL,
138+
json={
139+
"request_id": 8,
140+
"promo_offer_id": 100,
141+
"website_id": 300,
142+
"status": "approved",
143+
"approved_at": "2023-01-01T12:00:00Z",
144+
"declined_at": None,
145+
"created_at": "2023-01-01T10:00:00Z",
146+
"assigned_promo_code": "TESTCODE123"
147+
},
148+
status=200
149+
)
150+
result = self.client.PromoOfferRequestTrackingCode.get(request_id=8)
151+
152+
self.assertIn('request_id', result)
153+
self.assertIn('status', result)
154+
self.assertEqual(result['request_id'], 8)
155+
self.assertEqual(result['status'], 'approved')
156+
self.assertEqual(result['assigned_promo_code'], 'TESTCODE123')
157+
158+
def test_get_tracking_promo_code_request_status_not_found(self) -> None:
159+
with responses.RequestsMock() as resp:
160+
resp.add(
161+
resp.GET,
162+
PromoOfferRequestTrackingCode.GET_STATUS_URL,
163+
json={"err_code": "PROMO_REQUEST_NOT_FOUND"},
164+
status=404
165+
)
166+
with self.assertRaises(HttpException):
167+
self.client.PromoOfferRequestTrackingCode.get(request_id=999)
168+
169+
def test_get_tracking_promo_code_request_invalid_id(self) -> None:
170+
with self.assertRaises(ValueError):
171+
self.client.PromoOfferRequestTrackingCode.get(request_id=0)
172+
133173

134174
if __name__ == '__main__':
135175
unittest.main()

0 commit comments

Comments
 (0)