From 60114a0303236edfbadb1324d61d2f30753abc1f Mon Sep 17 00:00:00 2001 From: Fred Pauchet Date: Mon, 8 Aug 2016 13:05:30 +0200 Subject: [PATCH] override default Mesures manager --- src/sherlock/models.py | 4 +++- src/sherlock/tests.py | 18 ++++++++++++++++-- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/src/sherlock/models.py b/src/sherlock/models.py index 630b7cf..1e2f7b2 100644 --- a/src/sherlock/models.py +++ b/src/sherlock/models.py @@ -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) diff --git a/src/sherlock/tests.py b/src/sherlock/tests.py index 83581ca..ad003c2 100644 --- a/src/sherlock/tests.py +++ b/src/sherlock/tests.py @@ -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):