Moving max_even_if_none

This commit is contained in:
Gregory Trullemans 2023-04-29 17:19:52 +02:00
parent a3479a963e
commit 982f44b38b
5 changed files with 25 additions and 32 deletions

View File

@ -1,7 +1,7 @@
from django.db import models
from django.db.models import Q, Count
from jarvis.tools.models import Markdownizable
from jarvis.tools.models import Markdownizable, max_even_if_none
class Educative(Markdownizable):
@ -410,20 +410,3 @@ class RoutineSkill(models.Model):
def __str__(self):
return f"{self.rank} - {self.routine.short_label} : {self.skill.short_label}"
def max_even_if_none(value_1, value_2):
"""
Renvoie le maximum de deux valeurs même si l'une des deux vaut None.
"""
if value_1 is not None and value_2 is not None:
if value_1 > value_2:
return value_1
else:
return value_2
elif value_1 is not None:
return value_1
elif value_2 is not None:
return value_2
else:
return 0

View File

@ -2,7 +2,6 @@ from django.test import TestCase
from jarvis.objective.models import (
Educative,
Skill,
max_even_if_none,
TouchPosition,
Routine,
RoutineSkill,
@ -59,12 +58,6 @@ class ToolsModels(TestCase):
routine=routine_1, skill=skill_2, rank=2
)
def test_max_even_if_none(self):
self.assertEqual(max_even_if_none(None, None), 0)
self.assertEqual(max_even_if_none(1, None), 1)
self.assertEqual(max_even_if_none(1, 2), 2)
self.assertEqual(max_even_if_none(None, 2), 2)
def test_touch_position_to_string(self):
touch_position = TouchPosition.objects.get(long_label="debout")
self.assertEqual(str(touch_position), touch_position.long_label)

View File

@ -1,7 +1,5 @@
from datetime import datetime, time
from django.db import models
import pendulum
from jarvis.tools.models import (
@ -13,9 +11,6 @@ from jarvis.people.models import Gymnast
from jarvis.location.models import Place
# User = get_user_model()
class EventType(models.Model):
"""
Classe représentant les types d'évènements.

View File

@ -216,3 +216,20 @@ class Markdownizable(models.Model):
"""Convertit le champ `informations` en (Github-flavored) Markdown."""
return markdown.markdown(self.informations)
def max_even_if_none(value_1, value_2):
"""
Renvoie le maximum de deux valeurs même si l'une des deux vaut None.
"""
if value_1 is not None and value_2 is not None:
if value_1 > value_2:
return value_1
else:
return value_2
elif value_1 is not None:
return value_1
elif value_2 is not None:
return value_2
else:
return 0

View File

@ -1,8 +1,7 @@
""" Test des models """
from django.test import TestCase
from .models import Season
import pendulum
from .models import Season, max_even_if_none
class ModelTestCase(TestCase):
@ -53,3 +52,9 @@ class ModelTestCase(TestCase):
season.label = "drgnldsjgklfdtngl"
self.assertEqual(season.is_valid(), False)
def test_max_even_if_none(self):
self.assertEqual(max_even_if_none(None, None), 0)
self.assertEqual(max_even_if_none(1, None), 1)
self.assertEqual(max_even_if_none(1, 2), 2)
self.assertEqual(max_even_if_none(None, 2), 2)