flake8 integration

This commit is contained in:
Fred Pauchet 2016-08-08 08:42:22 +02:00
parent 37f389d593
commit 028e95ab5e
6 changed files with 38 additions and 19 deletions

View File

@ -5,5 +5,6 @@ test:python-3.4:
stage: test
image: python:3.4-slim
script:
- flake8 src/
- coverage run src/manage.py test sherlock
- coverage report -m

View File

@ -1,3 +1,4 @@
-r base.txt
coverage
django_coverage_plugin
flake8

View File

@ -1,7 +1,9 @@
from django.contrib import admin
from .models import Category, Gauge, Mesure
class MesureAdmin(admin.ModelAdmin):
model = Mesure

View File

@ -1,11 +1,13 @@
from django.db import models
class Category(models.Model):
name = models.CharField(max_length=255, unique=True)
def __str__(self):
return self.name
class Gauge(models.Model):
serial_number = models.CharField(max_length=40)
category = models.ForeignKey(Category)
@ -16,19 +18,22 @@ class Gauge(models.Model):
class Meta:
ordering = ['category']
class Diff(object):
def __init__(self, mesure_1, mesure_2):
self.increase = abs(mesure_1.diff(mesure_2))
self.timedelta = abs(mesure_1.moment - mesure_2.moment)
class MesureManager(models.Manager):
def create(self, moment, value, gauge_sn, category_label):
category, cat_created = Category.objects.get_or_create(name=category_label)
gauge, gauge_created = Gauge.objects.get_or_create(serial_number=gauge_sn, category=category)
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)
return mesure
class Mesure(models.Model):
moment = models.DateTimeField()
value = models.DecimalField(max_digits=10, decimal_places=4)

View File

@ -1,10 +1,13 @@
from datetime import datetime
from django.test import TestCase
from django.utils import timezone
from .models import Category, Gauge, Mesure
class TestCategoryModel(TestCase):
def test_str(self):
@ -12,6 +15,7 @@ class TestCategoryModel(TestCase):
self.assertEqual('test', str(cat))
class TestGaugeModel(TestCase):
def test_str(self):
@ -37,16 +41,20 @@ class TestGaugeModel(TestCase):
self.assertEqual(gauge_3, gauges_list[3])
def test_mesures_related_name(self):
now = timezone.make_aware(datetime.now())
cat_water = Category.objects.create(name='eau')
gauge_1 = Gauge.objects.create(serial_number='undefined', category=cat_water)
self.mesure_1 = Mesure.objects.create(moment=timezone.make_aware(datetime.now()), value=0.001, gauge=gauge_1)
self.mesure_1 = Mesure.objects.create(moment=now, value=0.001, gauge=gauge_1)
self.assertEqual(1, len(gauge_1.mesures.all()))
class TestMesureManager(TestCase):
def test_create(self):
raise Exception('not implemented yet')
class TestMesureModel(TestCase):
def setUp(self):
@ -74,7 +82,7 @@ class TestMesureModel(TestCase):
def test_diff_raises_exception(self):
with self.assertRaises(Exception):
mesure_1.diff(mesure_2)
self.mesure_1.diff(self.mesure_2)
def test_previous(self):
self.assertEqual(self.mesure_1, self.mesure_3.previous)
@ -83,4 +91,3 @@ class TestMesureModel(TestCase):
def test_next(self):
self.assertEqual(self.mesure_3, self.mesure_1.next)
self.assertIsNone(self.mesure_3.next)

3
tox.ini Normal file
View File

@ -0,0 +1,3 @@
[flake8]
max-line-length = 100
exclude = migrations, manage.py