Coverage for django_napse/core/models/fleets/managers/fleet.py: 80%
20 statements
« prev ^ index » next coverage.py v7.4.3, created at 2024-03-12 13:49 +0000
« prev ^ index » next coverage.py v7.4.3, created at 2024-03-12 13:49 +0000
1from django.db import models
3from django_napse.core.models.fleets.cluster import Cluster
4from django_napse.utils.errors import FleetError
7class FleetManager(models.Manager):
8 def create(
9 self,
10 name,
11 exchange_account,
12 clusters=None,
13 ):
14 clusters = clusters or []
16 if sum(cluster["share"] for cluster in clusters) != 1:
17 error_message = "The sum of all shares must be 1."
18 raise FleetError.InvalidShares(error_message)
20 if len(clusters) == 0:
21 error_msg = "A fleet must have at least one cluster."
22 raise FleetError.InvalidClusters(error_msg)
24 fleet = self.model(
25 name=name,
26 exchange_account=exchange_account,
27 )
29 fleet.save()
31 for cluster in clusters:
32 cluster["template_bot"] = cluster["template_bot"].copy()
33 Cluster.objects.create(fleet=fleet, **cluster)
35 fleet.setup_finished = True
36 fleet.save()
37 return fleet