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")