57 lines
2.7 KiB
Python
57 lines
2.7 KiB
Python
from django.test import SimpleTestCase
|
|
|
|
from ...utils.alimentation import BOCols as Cols
|
|
|
|
|
|
class BOColsTestCase(SimpleTestCase):
|
|
""" tests pour BOCols """
|
|
|
|
def test_attributes(self):
|
|
""" vérifie que les nouveaux attributs sont renseignés correctement """
|
|
|
|
for col in Cols:
|
|
self.assertIsInstance(col.value, str, f"{col} : la valeur n'a pas le bon type")
|
|
|
|
def test_columns(self):
|
|
""" vérifie les colonnes renvoyées """
|
|
members = list(Cols)
|
|
|
|
col_names = [col.value for col in members]
|
|
self.assertCountEqual(col_names, Cols.columns(), "les noms de colonnes (sans argument) ne sont pas les bons")
|
|
|
|
col = members[0]
|
|
col_names = [col.value]
|
|
self.assertCountEqual(col_names, Cols.columns(col), "les noms de colonnes (un argument) ne sont pas les bons")
|
|
|
|
col_list = members[0:2]
|
|
col_names = [col.value for col in col_list]
|
|
self.assertCountEqual(col_names, Cols.columns(*col_list), "les noms de colonnes (plusieurs arguments) ne sont pas les bons")
|
|
|
|
def test_col_mapping(self):
|
|
""" vérifie les correspondances renvoyés """
|
|
|
|
members = list(Cols)
|
|
std_mapping = {'a': 1, 'b': 'test'}
|
|
enum_mapping = {members[0]: (2, 3), members[1]: members[1].name}
|
|
mapping_before = {**enum_mapping, **std_mapping}
|
|
mapping_after = Cols.col_mapping(mapping_before)
|
|
self.assertTrue(all(k in mapping_after for k in std_mapping.keys()), "toutes les clés standard doivent faire partie du mapping final")
|
|
self.assertTrue(all(v == mapping_after.get(k) for k, v in std_mapping.items()), "les valeurs de clés standard ne doivent pas changer")
|
|
self.assertTrue(all(k.value in mapping_after for k in enum_mapping.keys()), f"tous les noms de colonnes de clés de type {Cols.__name__} doivent faire partie du mapping final")
|
|
self.assertTrue(all(v == mapping_after.get(k.value) for k, v in enum_mapping.items()), f"les valeurs de clés de type {Cols.__name__} ne doivent pas changer")
|
|
|
|
def test_converters(self):
|
|
""" vérifie les convertisseurs renvoyés """
|
|
members = list(Cols)
|
|
|
|
col_names = [col.value for col in members if col.converter]
|
|
self.assertCountEqual(col_names, Cols.converters().keys(), "les convertisseurs (sans argument) ne sont pas les bons")
|
|
|
|
col = members[0]
|
|
col_names = [col.value]
|
|
self.assertCountEqual(col_names, Cols.converters(col).keys(), "les convertisseurs (un argument) ne sont pas les bons")
|
|
|
|
col_list = members[0:2]
|
|
col_names = [col.value for col in col_list]
|
|
self.assertCountEqual(col_names, Cols.converters(*col_list).keys(), "les convertisseurs (plusieurs arguments) ne sont pas les bons")
|