|
|
@ -1,9 +1,10 @@
|
|
|
|
from unittest import TestCase
|
|
|
|
from unittest import TestCase
|
|
|
|
from unittest.mock import MagicMock, patch
|
|
|
|
from unittest.mock import MagicMock, patch
|
|
|
|
|
|
|
|
|
|
|
|
# from twisted.internet.defer import inlineCallbacks
|
|
|
|
from twisted.internet.defer import inlineCallbacks
|
|
|
|
from json import loads
|
|
|
|
from json import loads
|
|
|
|
from copy import deepcopy
|
|
|
|
from copy import deepcopy
|
|
|
|
|
|
|
|
import logging
|
|
|
|
|
|
|
|
|
|
|
|
from tests.common import fake_public_ads, cg_prices, expected_to_update
|
|
|
|
from tests.common import fake_public_ads, cg_prices, expected_to_update
|
|
|
|
import sources.agora
|
|
|
|
import sources.agora
|
|
|
@ -24,6 +25,7 @@ class TestAgora(TestCase):
|
|
|
|
super().__init__(*args, *kwargs)
|
|
|
|
super().__init__(*args, *kwargs)
|
|
|
|
|
|
|
|
|
|
|
|
def setUp(self):
|
|
|
|
def setUp(self):
|
|
|
|
|
|
|
|
logging.disable(logging.CRITICAL)
|
|
|
|
self.markets = lib.markets.Markets()
|
|
|
|
self.markets = lib.markets.Markets()
|
|
|
|
self.agora = sources.agora.Agora()
|
|
|
|
self.agora = sources.agora.Agora()
|
|
|
|
self.money = lib.money.Money()
|
|
|
|
self.money = lib.money.Money()
|
|
|
@ -55,6 +57,8 @@ class TestAgora(TestCase):
|
|
|
|
"ZAR",
|
|
|
|
"ZAR",
|
|
|
|
]
|
|
|
|
]
|
|
|
|
self.agora.sinks = MagicMock()
|
|
|
|
self.agora.sinks = MagicMock()
|
|
|
|
|
|
|
|
self.agora.es = MagicMock()
|
|
|
|
|
|
|
|
self.agora.es.index = MagicMock()
|
|
|
|
self.agora.sinks.currencies = self.markets.sinks.currencies
|
|
|
|
self.agora.sinks.currencies = self.markets.sinks.currencies
|
|
|
|
|
|
|
|
|
|
|
|
self.all_providers = [
|
|
|
|
self.all_providers = [
|
|
|
@ -110,6 +114,7 @@ class TestAgora(TestCase):
|
|
|
|
page = str(query_values["page"])
|
|
|
|
page = str(query_values["page"])
|
|
|
|
return self.test_return_data[(asset, currency, page)]
|
|
|
|
return self.test_return_data[(asset, currency, page)]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@inlineCallbacks
|
|
|
|
def test_get_all_public_ads(self):
|
|
|
|
def test_get_all_public_ads(self):
|
|
|
|
# Override enum_public_ads
|
|
|
|
# Override enum_public_ads
|
|
|
|
self.agora.api._api_call = self.mock_enum_public_ads_api_call
|
|
|
|
self.agora.api._api_call = self.mock_enum_public_ads_api_call
|
|
|
@ -123,7 +128,7 @@ class TestAgora(TestCase):
|
|
|
|
self.agora.markets.get_all_providers = MagicMock()
|
|
|
|
self.agora.markets.get_all_providers = MagicMock()
|
|
|
|
self.agora.markets.get_all_providers.return_value = self.all_providers
|
|
|
|
self.agora.markets.get_all_providers.return_value = self.all_providers
|
|
|
|
|
|
|
|
|
|
|
|
public_ads = self.agora.get_all_public_ads()
|
|
|
|
public_ads = yield self.agora.get_all_public_ads()
|
|
|
|
self.assertDictEqual(public_ads, fake_public_ads)
|
|
|
|
self.assertDictEqual(public_ads, fake_public_ads)
|
|
|
|
|
|
|
|
|
|
|
|
for currency, ads in public_ads.items():
|
|
|
|
for currency, ads in public_ads.items():
|
|
|
@ -148,8 +153,11 @@ class TestAgora(TestCase):
|
|
|
|
self.assertNotEqual(asset1, asset2)
|
|
|
|
self.assertNotEqual(asset1, asset2)
|
|
|
|
self.assertNotEqual(asset3, asset4)
|
|
|
|
self.assertNotEqual(asset3, asset4)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@inlineCallbacks
|
|
|
|
def test_update_prices(self):
|
|
|
|
def test_update_prices(self):
|
|
|
|
# Override the providers
|
|
|
|
# Override the providers
|
|
|
|
|
|
|
|
settings.settings.Agora.MinMargin = 1.17
|
|
|
|
|
|
|
|
settings.settings.Agora.MaxMargin = 1.3
|
|
|
|
settings.settings.Agora.ProviderList = '["REVOLUT", "NATIONAL_BANK"]'
|
|
|
|
settings.settings.Agora.ProviderList = '["REVOLUT", "NATIONAL_BANK"]'
|
|
|
|
|
|
|
|
|
|
|
|
# Override enum_public_ads
|
|
|
|
# Override enum_public_ads
|
|
|
@ -162,17 +170,18 @@ class TestAgora(TestCase):
|
|
|
|
self.agora.money.cg.get_price.return_value = cg_prices
|
|
|
|
self.agora.money.cg.get_price.return_value = cg_prices
|
|
|
|
|
|
|
|
|
|
|
|
self.agora.slow_ad_update = MagicMock()
|
|
|
|
self.agora.slow_ad_update = MagicMock()
|
|
|
|
self.agora.update_prices()
|
|
|
|
yield self.agora.update_prices()
|
|
|
|
call_args = self.agora.slow_ad_update.call_args_list[0][0][0]
|
|
|
|
call_args = self.agora.slow_ad_update.call_args_list[0][0][0]
|
|
|
|
self.assertCountEqual(call_args, expected_to_update)
|
|
|
|
self.assertCountEqual(call_args, expected_to_update)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@inlineCallbacks
|
|
|
|
def test_enum_public_ads(self):
|
|
|
|
def test_enum_public_ads(self):
|
|
|
|
# Override enum_public_ads
|
|
|
|
# Override enum_public_ads
|
|
|
|
self.agora.api._api_call = self.mock_enum_public_ads_api_call
|
|
|
|
self.agora.api._api_call = self.mock_enum_public_ads_api_call
|
|
|
|
util.last_online_recent = MagicMock()
|
|
|
|
util.last_online_recent = MagicMock()
|
|
|
|
util.last_online_recent.return_value = True
|
|
|
|
util.last_online_recent.return_value = True
|
|
|
|
|
|
|
|
|
|
|
|
enum_ads_return = self.agora.enum_public_ads("XMR", "USD", self.all_providers)
|
|
|
|
enum_ads_return = yield self.agora.enum_public_ads("XMR", "USD", self.all_providers)
|
|
|
|
|
|
|
|
|
|
|
|
# Ensure there are no duplicates
|
|
|
|
# Ensure there are no duplicates
|
|
|
|
enum_ads_return_ids = [(x[0], x[1], x[2], x[3], x[4], x[5]) for x in enum_ads_return]
|
|
|
|
enum_ads_return_ids = [(x[0], x[1], x[2], x[3], x[4], x[5]) for x in enum_ads_return]
|
|
|
|