override default Mesures manager

This commit is contained in:
Fred Pauchet 2016-08-08 13:05:30 +02:00
parent de40cc0d0d
commit 60114a0303
2 changed files with 19 additions and 3 deletions

View File

@ -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)

View File

@ -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):