override default Mesures manager
This commit is contained in:
parent
de40cc0d0d
commit
60114a0303
|
@ -26,7 +26,7 @@ class Diff(object):
|
|||
|
||||
|
||||
class MesureManager(models.Manager):
|
||||
def create(self, moment, value, gauge_sn, category_label):
|
||||
def create_with_deps(self, moment, value, gauge_sn, category_label):
|
||||
cat, cat_created = Category.objects.get_or_create(name=category_label)
|
||||
gauge, gauge_created = Gauge.objects.get_or_create(serial_number=gauge_sn, category=cat)
|
||||
mesure = Mesure.objects.create(moment=moment, value=value, gauge=gauge)
|
||||
|
@ -39,6 +39,8 @@ class Mesure(models.Model):
|
|||
value = models.DecimalField(max_digits=10, decimal_places=4)
|
||||
gauge = models.ForeignKey(Gauge, related_name='mesures')
|
||||
|
||||
objects = MesureManager()
|
||||
|
||||
def __str__(self):
|
||||
return "{} {}".format(self.moment, self.value)
|
||||
|
||||
|
|
|
@ -51,8 +51,22 @@ class TestGaugeModel(TestCase):
|
|||
|
||||
|
||||
class TestMesureManager(TestCase):
|
||||
def test_create(self):
|
||||
raise Exception('not implemented yet')
|
||||
def test_create_with_deps(self):
|
||||
d1 = timezone.make_aware(datetime(2016, 1, 1))
|
||||
d2 = timezone.make_aware(datetime(2016, 2, 1))
|
||||
|
||||
m1 = Mesure.objects.create_with_deps(d1, 0.001, 'undefined', 'eau')
|
||||
|
||||
cat = Category.objects.get(name='eau')
|
||||
gauge = Gauge.objects.get(serial_number='undefined')
|
||||
|
||||
self.assertEqual(cat, m1.category)
|
||||
self.assertEqual(gauge, m1.gauge)
|
||||
|
||||
m2 = Mesure.objects.create_with_deps(d2, 0.002, 'undefined', 'eau')
|
||||
|
||||
self.assertEqual(cat, m2.category)
|
||||
self.assertEqual(gauge, m2.gauge)
|
||||
|
||||
|
||||
class TestMesureModel(TestCase):
|
||||
|
|
Loading…
Reference in New Issue