Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 6 additions & 5 deletions ironsource_api/monetize_api/monetize_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,17 +21,14 @@

MEDIATION_GROUP_MGMT_URL = 'https://platform.ironsrc.com/partners/publisher/mediation/management/v2'

INSTANCES_API_URL = 'https://platform.ironsrc.com/partners/publisher/instances/v1'
INSTANCES_API_URL = 'https://platform.ironsrc.com/partners/publisher/instances/v3'

PLACEMENTS_URL = "https://platform.ironsrc.com/partners/publisher/placements/v1"


class MonetizeAPI(BaseAPI):
"""IronSource Monetize API"""




###########
# Reporting
###########
Expand Down Expand Up @@ -338,8 +335,12 @@ async def add_instances(self, application_key: str, instances: Iterable[Instance
if not instance.get_instance_ad_unit() in body['configurations'][instance.get_ad_source()]:
body['configurations'][instance.get_ad_source(
)][instance.get_instance_ad_unit()] = []
ad_source = body['configurations'][instance.get_ad_source()]

if 'appConfig' in ad_source and ad_source['appConfig'] and all(v == '' for v in list(ad_source['appConfig'].values())):
del ad_source['appConfig']

body['configurations'][instance.get_ad_source()][instance.get_instance_ad_unit()].append(
ad_source[instance.get_instance_ad_unit()].append(
instance.get_object())

options = {
Expand Down
26 changes: 24 additions & 2 deletions tests/integration_tests/monetize_api_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,7 @@ async def test_create_new_instances(self):

assert res['rewardedVideo']
assert (type(res['rewardedVideo']['ironSource']), len(
res['rewardedVideo']['ironSource'])) == (list, 3)
res['rewardedVideo']['ironSource'])) == (list, 2)

ironsource_instance = pydash.find(
res['rewardedVideo']['ironSource'], lambda inst: inst['name'] == 'TEST')
Expand All @@ -160,6 +160,28 @@ async def test_create_new_instances(self):
assert (type(res['rewardedVideo']['Vungle']), len(
res['rewardedVideo']['Vungle'])) == (list, 1)

@pytest.mark.run(order=5)
async def test_add_instances_without_appconfig(self):
iron_src_api.set_credentials(API_CI_USER,
API_CI_TOKEN,
API_CI_SECRET)

assert self.__class__.TEST_APP_KEY != ''

vungle_instance = VungleInstance(instance_name='TEST2', ad_unit=AdUnits.RewardedVideo, app_id='',
reporting_api_id='', placement_id='TEST2', status=True)

res = await iron_src_api.monetize_api().add_instances(self.__class__.TEST_APP_KEY,
[ vungle_instance])

assert isinstance(res, dict)

assert res['rewardedVideo']
assert (type(res['rewardedVideo']['Vungle']), len(
res['rewardedVideo']['Vungle'])) == (list, 2)



@pytest.mark.run(order=5)
async def test_update_instances(self):

Expand Down Expand Up @@ -200,7 +222,7 @@ async def test_delete_instances(self):
self.__class__.ironsource_instance_id)
assert isinstance(res, dict)
assert (type(res['rewardedVideo']['ironSource']), len(
res['rewardedVideo']['ironSource'])) == (list, 2)
res['rewardedVideo']['ironSource'])) == (list, 1)

@pytest.mark.run(order=8)
async def test_get_mediation_group(self):
Expand Down
33 changes: 30 additions & 3 deletions tests/unit_tests/unit_monetize_api_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -173,7 +173,34 @@ async def test_unit_create_new_instances(self):
"rewardedVideo": [{"instanceName": "TEST", "status": "active", "PlacementId": "TEST"}]}}}
}
mocked_req.assert_called_once_with(
method='post', url="https://platform.ironsrc.com/partners/publisher/instances/v1", **options)
method='post', url="https://platform.ironsrc.com/partners/publisher/instances/v3", **options)

@pytest.mark.asyncio
async def test_unit_create_new_instance_without_appConfig(self):

mocked_req = self.get_mock_exec_req('{\"TEST\":\"TEST\"}')

vungle_instance = VungleInstance(instance_name='TEST_2', ad_unit=AdUnits.RewardedVideo, app_id='',
reporting_api_id='', placement_id='TEST_2', status=True)

res = await ironsrc_api.monetize_api().add_instances(self.__class__.TEST_APP_KEY,
[ vungle_instance])

options = {
'headers': {
'Authorization': 'Bearer TOKEN'
},
'json': {
"appKey": "1234abc",
"configurations":
{
"Vungle": {

"rewardedVideo": [{"instanceName": "TEST_2", "status": "active", "PlacementId": "TEST_2"}]}}}
}
mocked_req.assert_called_once_with(
method='post', url="https://platform.ironsrc.com/partners/publisher/instances/v3", **options)


@pytest.mark.asyncio
async def test_unit_update_instances(self):
Expand Down Expand Up @@ -232,7 +259,7 @@ async def test_unit_update_instances(self):
}
}
mocked_req.assert_called_once_with(
method='put', url='https://platform.ironsrc.com/partners/publisher/instances/v1', **options)
method='put', url='https://platform.ironsrc.com/partners/publisher/instances/v3', **options)

@pytest.mark.asyncio
async def test_unit_delete_instances(self):
Expand All @@ -250,7 +277,7 @@ async def test_unit_delete_instances(self):
}
}
mocked_req.assert_called_once_with(
method='delete', url='https://platform.ironsrc.com/partners/publisher/instances/v1', **options)
method='delete', url='https://platform.ironsrc.com/partners/publisher/instances/v3', **options)

@pytest.mark.asyncio
async def test_unit_get_mediation_group(self):
Expand Down