Add tests for Passe model (regexp validation)
This commit is contained in:
parent
cb410dd7c2
commit
fabe678312
|
@ -47,3 +47,4 @@ static/js/plugins/fullcalendar/locales-all.min.js
|
|||
*.png
|
||||
*.drawio*
|
||||
*.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
|
||||
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):
|
||||
last_place = len(pattern) - 1
|
||||
if pattern[0] != "." and pattern[last_place] != ".":
|
||||
return False
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
from django.test import TestCase
|
||||
from jarvis.objective.models import Educative, Passe
|
||||
from jarvis.objective.models import Educative
|
||||
|
||||
|
||||
class EducativeTestCase(TestCase):
|
||||
|
@ -87,52 +87,3 @@ class EducativeTestCase(TestCase):
|
|||
[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,
|
||||
Routine,
|
||||
RoutineSkill,
|
||||
Passe,
|
||||
)
|
||||
from jarvis.core.global_vars import ROUTINE_TYPE_CHOICE
|
||||
|
||||
|
||||
class ToolsModels(TestCase):
|
||||
|
@ -102,3 +104,154 @@ class ToolsModels(TestCase):
|
|||
+ " : "
|
||||
+ 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