Add tests for Passe model (regexp validation)
This commit is contained in:
parent
cb410dd7c2
commit
fabe678312
|
@ -46,4 +46,5 @@ static/js/plugins/fullcalendar/locales-all.min.js
|
||||||
*.bkp
|
*.bkp
|
||||||
*.png
|
*.png
|
||||||
*.drawio*
|
*.drawio*
|
||||||
*.docx
|
*.docx
|
||||||
|
*.pdf
|
|
@ -598,8 +598,11 @@ class Passe(Markdownizable):
|
||||||
"""Reçoit une chaine de caratère et vérifie que si elle contient un point (.), il se trouve
|
"""Reçoit une chaine de caratère et vérifie que si elle contient un point (.), il se trouve
|
||||||
soit à la première position soit à la dernière position.
|
soit à la première position soit à la dernière position.
|
||||||
"""
|
"""
|
||||||
last_place = len(pattern) - 1
|
if len(re.findall("\.", pattern)) > 1:
|
||||||
|
return False
|
||||||
|
|
||||||
if re.search("\.", pattern):
|
if re.search("\.", pattern):
|
||||||
|
last_place = len(pattern) - 1
|
||||||
if pattern[0] != "." and pattern[last_place] != ".":
|
if pattern[0] != "." and pattern[last_place] != ".":
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
from django.test import TestCase
|
from django.test import TestCase
|
||||||
from jarvis.objective.models import Educative, Passe
|
from jarvis.objective.models import Educative
|
||||||
|
|
||||||
|
|
||||||
class EducativeTestCase(TestCase):
|
class EducativeTestCase(TestCase):
|
||||||
|
@ -87,52 +87,3 @@ class EducativeTestCase(TestCase):
|
||||||
[educ_1, educ_2, educ_9],
|
[educ_1, educ_2, educ_9],
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
class PasseTestCase(TestCase):
|
|
||||||
def setUp(self):
|
|
||||||
"""
|
|
||||||
Structure finale :
|
|
||||||
1 -> 2
|
|
||||||
1 -> 6
|
|
||||||
3 -> 4 -> 5 -> 6 -> 7
|
|
||||||
1 -> 2 -> 9
|
|
||||||
3 -> 4 -> 5 -> 6 -> 7 -> 9
|
|
||||||
"""
|
|
||||||
# 1 et 3 Eductative sans pre-requis
|
|
||||||
educ_1 = Educative.objects.create(
|
|
||||||
long_label="1/2 vrille", difficulty=0.1, level=1, rank=1
|
|
||||||
)
|
|
||||||
educ_3 = Educative.objects.create(
|
|
||||||
long_label="4 pattes", difficulty=0.1, level=1, rank=1
|
|
||||||
)
|
|
||||||
|
|
||||||
def test_check_regexp(self):
|
|
||||||
label = ""
|
|
||||||
regexp = ""
|
|
||||||
educatives_list = []
|
|
||||||
|
|
||||||
self.assertEqual(Passe.check_regexp(regexp, label, educatives_list), False)
|
|
||||||
regexp = "Q1R1 [4-8] WC"
|
|
||||||
self.assertEqual(Passe.check_regexp(regexp, label, educatives_list), False)
|
|
||||||
regexp = "Q1R1"
|
|
||||||
self.assertEqual(Passe.check_regexp(regexp, label, educatives_list), True)
|
|
||||||
regexp = "Q1R1 [4-8"
|
|
||||||
self.assertEqual(Passe.check_regexp(regexp, label, educatives_list), False)
|
|
||||||
regexp = "Q1R1 [4-8]"
|
|
||||||
self.assertEqual(Passe.check_regexp(regexp, label, educatives_list), True)
|
|
||||||
regexp = "Q1R1 [4-]"
|
|
||||||
self.assertEqual(Passe.check_regexp(regexp, label, educatives_list), True)
|
|
||||||
regexp = "Q1R1 [-8]"
|
|
||||||
self.assertEqual(Passe.check_regexp(regexp, label, educatives_list), True)
|
|
||||||
regexp = "Q1R1 [8-4]"
|
|
||||||
self.assertEqual(Passe.check_regexp(regexp, label, educatives_list), False)
|
|
||||||
regexp = "WC"
|
|
||||||
self.assertEqual(Passe.check_regexp(regexp, label, educatives_list), False)
|
|
||||||
educ_1 = Educative.objects.get(long_label="1/2 vrille")
|
|
||||||
educatives_list.append(educ_1)
|
|
||||||
regexp = "1|"
|
|
||||||
self.assertEqual(Passe.check_regexp(regexp, label, educatives_list), True)
|
|
||||||
educ_3 = Educative.objects.get(long_label="4 pattes")
|
|
||||||
educatives_list.append(educ_3)
|
|
||||||
self.assertEqual(Passe.check_regexp(regexp, label, educatives_list), True)
|
|
||||||
|
|
|
@ -5,7 +5,9 @@ from jarvis.objective.models import (
|
||||||
TouchPosition,
|
TouchPosition,
|
||||||
Routine,
|
Routine,
|
||||||
RoutineSkill,
|
RoutineSkill,
|
||||||
|
Passe,
|
||||||
)
|
)
|
||||||
|
from jarvis.core.global_vars import ROUTINE_TYPE_CHOICE
|
||||||
|
|
||||||
|
|
||||||
class ToolsModels(TestCase):
|
class ToolsModels(TestCase):
|
||||||
|
@ -102,3 +104,154 @@ class ToolsModels(TestCase):
|
||||||
+ " : "
|
+ " : "
|
||||||
+ routine_skill_1.skill.short_label,
|
+ routine_skill_1.skill.short_label,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
class PasseTestCase(TestCase):
|
||||||
|
def setUp(self):
|
||||||
|
"""
|
||||||
|
Structure finale :
|
||||||
|
1 -> 2
|
||||||
|
1 -> 6
|
||||||
|
3 -> 4 -> 5 -> 6 -> 7
|
||||||
|
1 -> 2 -> 9
|
||||||
|
3 -> 4 -> 5 -> 6 -> 7 -> 9
|
||||||
|
"""
|
||||||
|
# 1 et 3 Eductative sans pre-requis
|
||||||
|
educ_1 = Educative.objects.create(
|
||||||
|
long_label="1/2 vrille", difficulty=0.1, level=1, rank=1
|
||||||
|
)
|
||||||
|
educ_3 = Educative.objects.create(
|
||||||
|
long_label="4 pattes", difficulty=0.1, level=1, rank=1
|
||||||
|
)
|
||||||
|
|
||||||
|
def test_is_valid_dot(self):
|
||||||
|
arg = ""
|
||||||
|
self.assertEqual(Passe.is_valid_dot(arg), True)
|
||||||
|
arg = "Q1R1"
|
||||||
|
self.assertEqual(Passe.is_valid_dot(arg), True)
|
||||||
|
arg = ".Q1R1"
|
||||||
|
self.assertEqual(Passe.is_valid_dot(arg), True)
|
||||||
|
arg = "Q1R1."
|
||||||
|
self.assertEqual(Passe.is_valid_dot(arg), True)
|
||||||
|
arg = "Q1.R1"
|
||||||
|
self.assertEqual(Passe.is_valid_dot(arg), False)
|
||||||
|
arg = ".Q1.R1."
|
||||||
|
self.assertEqual(Passe.is_valid_dot(arg), False)
|
||||||
|
|
||||||
|
def test_is_valid_subset(self):
|
||||||
|
subset = ""
|
||||||
|
self.assertEqual(Passe.is_valid_subset(subset), False)
|
||||||
|
subset = "[2-8]"
|
||||||
|
self.assertEqual(Passe.is_valid_subset(subset), True)
|
||||||
|
subset = "[-5]"
|
||||||
|
self.assertEqual(Passe.is_valid_subset(subset), True)
|
||||||
|
subset = "[3-]"
|
||||||
|
self.assertEqual(Passe.is_valid_subset(subset), True)
|
||||||
|
subset = "[8-2]"
|
||||||
|
self.assertEqual(Passe.is_valid_subset(subset), False)
|
||||||
|
subset = "[-]"
|
||||||
|
self.assertEqual(Passe.is_valid_subset(subset), False)
|
||||||
|
subset = "[1-]"
|
||||||
|
self.assertEqual(Passe.is_valid_subset(subset), False)
|
||||||
|
subset = "[-1]"
|
||||||
|
self.assertEqual(Passe.is_valid_subset(subset), False)
|
||||||
|
subset = "[4]"
|
||||||
|
self.assertEqual(Passe.is_valid_subset(subset), False)
|
||||||
|
subset = "[6-6]"
|
||||||
|
self.assertEqual(Passe.is_valid_subset(subset), False)
|
||||||
|
subset = "4"
|
||||||
|
self.assertEqual(Passe.is_valid_subset(subset), False)
|
||||||
|
subset = "[6-6"
|
||||||
|
self.assertEqual(Passe.is_valid_subset(subset), False)
|
||||||
|
subset = "[66]"
|
||||||
|
self.assertEqual(Passe.is_valid_subset(subset), False)
|
||||||
|
subset = "4-8"
|
||||||
|
self.assertEqual(Passe.is_valid_subset(subset), False)
|
||||||
|
subset = "6-]"
|
||||||
|
self.assertEqual(Passe.is_valid_subset(subset), False)
|
||||||
|
subset = "[4-"
|
||||||
|
self.assertEqual(Passe.is_valid_subset(subset), False)
|
||||||
|
subset = "[6"
|
||||||
|
self.assertEqual(Passe.is_valid_subset(subset), False)
|
||||||
|
subset = "Q1R1 [4-8]"
|
||||||
|
self.assertEqual(Passe.is_valid_subset(subset), False)
|
||||||
|
subset = "Q1R1 [-8]"
|
||||||
|
self.assertEqual(Passe.is_valid_subset(subset), False)
|
||||||
|
|
||||||
|
def test_is_valid_routine_type(self):
|
||||||
|
for item in ROUTINE_TYPE_CHOICE:
|
||||||
|
self.assertEqual(Passe.is_valid_routine_type(item[1]), True)
|
||||||
|
|
||||||
|
routine_type = ""
|
||||||
|
self.assertEqual(Passe.is_valid_routine_type(routine_type), False)
|
||||||
|
routine_type = ".Q1R1"
|
||||||
|
self.assertEqual(Passe.is_valid_routine_type(routine_type), False)
|
||||||
|
routine_type = "SFS."
|
||||||
|
self.assertEqual(Passe.is_valid_routine_type(routine_type), False)
|
||||||
|
routine_type = "Q1R1 [4-8]"
|
||||||
|
self.assertEqual(Passe.is_valid_routine_type(routine_type), False)
|
||||||
|
routine_type = "SFS [-8]"
|
||||||
|
self.assertEqual(Passe.is_valid_routine_type(routine_type), False)
|
||||||
|
|
||||||
|
def test_is_valid_regexp_one_arg(self):
|
||||||
|
arg = ""
|
||||||
|
self.assertEqual(Passe.is_valid_regexp_one_arg(arg), False)
|
||||||
|
arg = "WC"
|
||||||
|
self.assertEqual(Passe.is_valid_regexp_one_arg(arg), True)
|
||||||
|
arg = "1|"
|
||||||
|
self.assertEqual(Passe.is_valid_regexp_one_arg(arg), True)
|
||||||
|
arg = ".Q1R1"
|
||||||
|
self.assertEqual(Passe.is_valid_regexp_one_arg(arg), True)
|
||||||
|
arg = "Q1R2."
|
||||||
|
self.assertEqual(Passe.is_valid_regexp_one_arg(arg), True)
|
||||||
|
arg = ".Q1R1 [4-8"
|
||||||
|
self.assertEqual(Passe.is_valid_regexp_one_arg(arg), False)
|
||||||
|
arg = "Q1R2. [4-8"
|
||||||
|
self.assertEqual(Passe.is_valid_regexp_one_arg(arg), False)
|
||||||
|
arg = "Q1R1 [4-8]"
|
||||||
|
self.assertEqual(Passe.is_valid_regexp_one_arg(arg), False)
|
||||||
|
arg = "Q1R1 [8-4]"
|
||||||
|
self.assertEqual(Passe.is_valid_regexp_one_arg(arg), False)
|
||||||
|
|
||||||
|
def test_is_valid_regexp_two_args(self):
|
||||||
|
arg1 = ""
|
||||||
|
arg2 = ""
|
||||||
|
self.assertEqual(Passe.is_valid_regexp_two_args(arg1, arg2), False)
|
||||||
|
arg1 = "Q1R1"
|
||||||
|
self.assertEqual(Passe.is_valid_regexp_two_args(arg1, arg2), False)
|
||||||
|
arg2 = "[4-8]"
|
||||||
|
self.assertEqual(Passe.is_valid_regexp_two_args(arg1, arg2), True)
|
||||||
|
arg2 = "[8-8]"
|
||||||
|
self.assertEqual(Passe.is_valid_regexp_two_args(arg1, arg2), False)
|
||||||
|
arg2 = "[8-4]"
|
||||||
|
self.assertEqual(Passe.is_valid_regexp_two_args(arg1, arg2), False)
|
||||||
|
arg2 = "[-8]"
|
||||||
|
self.assertEqual(Passe.is_valid_regexp_two_args(arg1, arg2), True)
|
||||||
|
arg2 = "[4-]"
|
||||||
|
self.assertEqual(Passe.is_valid_regexp_two_args(arg1, arg2), True)
|
||||||
|
arg1 = "Q1R1."
|
||||||
|
self.assertEqual(Passe.is_valid_regexp_two_args(arg1, arg2), True)
|
||||||
|
|
||||||
|
def test_is_valid_regexp(self):
|
||||||
|
regexp = ""
|
||||||
|
self.assertEqual(Passe.is_valid_regexp(regexp), False)
|
||||||
|
regexp = "Q1R1 [4-8]"
|
||||||
|
self.assertEqual(Passe.is_valid_regexp(regexp), True)
|
||||||
|
regexp = "Q1R1 [8-8]"
|
||||||
|
self.assertEqual(Passe.is_valid_regexp(regexp), False)
|
||||||
|
regexp = "Q1R1 [8-4]"
|
||||||
|
self.assertEqual(Passe.is_valid_regexp(regexp), False)
|
||||||
|
regexp = "Q1R1 [-8]"
|
||||||
|
self.assertEqual(Passe.is_valid_regexp(regexp), True)
|
||||||
|
regexp = "Q1R1 [4-]"
|
||||||
|
self.assertEqual(Passe.is_valid_regexp(regexp), True)
|
||||||
|
regexp = "Q1R1. [4-8]"
|
||||||
|
self.assertEqual(Passe.is_valid_regexp(regexp), True)
|
||||||
|
regexp = "Q1R1. [4-]"
|
||||||
|
self.assertEqual(Passe.is_valid_regexp(regexp), True)
|
||||||
|
regexp = ".Q1R1 [-8]"
|
||||||
|
self.assertEqual(Passe.is_valid_regexp(regexp), True)
|
||||||
|
regexp = "Q1R1. [8-8]"
|
||||||
|
self.assertEqual(Passe.is_valid_regexp(regexp), False)
|
||||||
|
regexp = ".Q1R1 [8-4]"
|
||||||
|
self.assertEqual(Passe.is_valid_regexp(regexp), False)
|
||||||
|
|
Loading…
Reference in New Issue