Remove asset restrictions and make asset groups smarter

This commit is contained in:
2023-02-13 07:20:40 +00:00
parent 287facbab2
commit dcfb963be6
10 changed files with 383 additions and 172 deletions

View File

@@ -1,7 +1,7 @@
from django.test import TestCase
from core.models import AssetGroup, User
from core.trading.assetfilter import get_allowed
from core.trading import assetfilter
class AssetfilterTestCase(TestCase):
@@ -21,8 +21,75 @@ class AssetfilterTestCase(TestCase):
Test that the asset filter works.
"""
self.group.allowed = {"EUR_USD": True, "EUR_GBP": False}
self.assertTrue(get_allowed(self.group, "EUR_USD", "buy"))
self.assertFalse(get_allowed(self.group, "EUR_GBP", "sell"))
self.assertTrue(assetfilter.get_allowed(self.group, "EUR_USD", "buy"))
self.assertFalse(assetfilter.get_allowed(self.group, "EUR_GBP", "sell"))
# Default true
self.assertTrue(get_allowed(self.group, "nonexistent", "sell"))
self.assertTrue(assetfilter.get_allowed(self.group, "nonexistent", "sell"))
def test_check_asset_aggregation(self):
"""
Test that the asset aggregation works.
"""
# Test within lower bound
self.assertTrue(
assetfilter.check_asset_aggregation(
1.0, trigger_above=None, trigger_below=2.0
)
)
# Test within upper bound
self.assertTrue(
assetfilter.check_asset_aggregation(
1.0, trigger_above=0.0, trigger_below=None
)
)
# Test within bounds
self.assertTrue(
assetfilter.check_asset_aggregation(
1.0, trigger_above=0.0, trigger_below=2.0
)
)
# Test outside bounds
self.assertFalse(
assetfilter.check_asset_aggregation(
1.0, trigger_above=2.0, trigger_below=3.0
)
)
# Test outside lower bound
self.assertFalse(
assetfilter.check_asset_aggregation(
1.0, trigger_above=None, trigger_below=0.0
)
)
# Test outside upper bound
self.assertFalse(
assetfilter.check_asset_aggregation(
1.0, trigger_above=2.0, trigger_below=None
)
)
# Test no bounds, just to be sure
self.assertFalse(
assetfilter.check_asset_aggregation(
1.0, trigger_above=None, trigger_below=None
)
)
# Test both bounds, but inverted
self.assertFalse(
assetfilter.check_asset_aggregation(
1.0, trigger_above=2.0, trigger_below=0.0
)
)
# Test within negative and positive bounds
self.assertTrue(
assetfilter.check_asset_aggregation(
-1.0, trigger_above=-2.0, trigger_below=0.0
)
)