diff --git a/lib/test.py b/lib/test.py new file mode 100644 index 0000000..97f6126 --- /dev/null +++ b/lib/test.py @@ -0,0 +1,216 @@ +import unittest +import os + +import manage_configs + + +class TestTOSGroupsFromLocalConfigs(unittest.TestCase): + + def setUp(self): + self.config_dir = os.environ.get('CREMIG_CFG') + + def test_get_keywords_of_level_from_local_file(self): + """ + Test whether the extraction of the different TOS Level works + loaded from local config and environment variable + if config is changed, test will fail + """ + + TOS_CFG = manage_configs.TOSGroupsConfig(self.config_dir) + allKeywords = TOS_CFG.get_all_keywords() + + result = ['TOS_Schoenenberger_Produkt', 'TOS_Automation', 'TOS_Maschinenelement', 'TOS_Schoenenberger_Komponenten', 'TOS_Pneumatik', 'TOS_Konfig'] + level1 = TOS_CFG.get_keywords_of_level(allKeywords, 1) + self.assertCountEqual(level1, result) + + def test_get_all_keywords_from_local_file(self): + """ + Test whether the extraction of the different TOS Level works + loaded from local config and environment variable + if config is changed, test will fail + """ + + TOS_CFG = manage_configs.TOSGroupsConfig(self.config_dir) + + allKeywords = TOS_CFG.get_all_keywords() + + result = {'TOS-Gruppe': 0, + 'TOS_Schoenenberger_Produkt': 1, + 'TOS_Automation': 1, + 'TOS_Maschinenelement': 1, + 'TOS_Schoenenberger_Komponenten': 1, + 'TOS_Pneumatik': 1, + 'TOS_Konfig': 1, + 'TOS_ILS': 2, + 'TOS_MAS': 2, + 'TOS_Spinnereikomponente': 2, + 'TOS_Betriebsmittel': 2, + 'TOS_Geruest': 2, + 'TOS_FremdTransport': 2, + 'TOS_MAS_Konfig': 2, + 'TOS_ILS_2': 3, + 'TOS_ILS_Foerderer': 3, + 'TOS_Trolley': 3, + 'TOS_Trolley_Projekte': 3, + 'TOS_Trolley_Omniflo': 4, + 'TOS_Trolley_Spinnerei': 4, + 'TOS_Trolley_ILS': 4, + 'TOS_Schaltschrank': 2, + 'TOS_Schalt_Einbau': 2, + 'TOS_Dezentral': 2, + 'TOS_Automation_Sensorik': 2, + 'TOS_Kabel': 2, + 'TOS_Installation': 2, + 'TOS_Automation_Sonstiges': 2, + 'TOS_Verbindungselement': 2, + 'TOS_Lager': 2, + 'TOS_Kraft_Drehmoment': 2, + 'TOS_Sicherungselement': 2, + 'TOS_Bedienungselement': 2} + self.assertCountEqual(allKeywords, result) + +class TestTOSGroupsGeneral(unittest.TestCase): + + def setUp(self): + + self.tos_test_str = """ +{ + "root": "TOS-Gruppe", + "TOS-Gruppe": { + "TOS-level": 1, + "children": { + "0": "Intern/Referenzgruppe", + "1": "Halbzeug", + "2": "Verkaufsprodukte", + "3": "Schönenberger Produkte", + "4": "Automation", + "5": "Maschinenelement", + "6": "Schönenberger Komponenten", + "7": "Pneumatik", + "8": "Konfiguration", + "9": "." + }, + "reference-ids": { + "0": "TOS_Intern_Ref", + "1": "TOS_Halbzeug", + "2": "TOS_Verkaufsprodukte", + "3": "TOS_Schoenenberger_Produkt", + "4": "TOS_Automation", + "5": "TOS_Maschinenelement", + "6": "TOS_Schoenenberger_Komponenten", + "7": "TOS_Pneumatik", + "8": "TOS_Konfig" + } + }, + "TOS_Schoenenberger_Produkt": { + "TOS-level": 2, + "children": { + "30": "ILS IntraLogistikSystem", + "31": "MAS Mittenabgehängtes System - OMNIFLO", + "32": "Spinnereikomponente", + "33": "Betriebsmittel", + "34": "Gerüst", + "35": "Fremd-Transportsysteme & SSG-Anbauten", + "36": "Förderer MAS aktuell Konfiguration", + "37": "Frei", + "38": "CAD-Übernahme Weiche", + "39": "Farbe" + }, + "reference-ids": { + "30": "TOS_ILS", + "31": "TOS_MAS", + "32": "TOS_Spinnereikomponente", + "33": "TOS_Betriebsmittel", + "34": "TOS_Geruest", + "35": "TOS_FremdTransport", + "36": "TOS_MAS_Konfig" + } + }, + "TOS_ILS": { + "TOS-level": 3, + "children": { + "300": "ILS 2.0", + "301": "ILS 3.0", + "302": "Förderer" + }, + "reference-ids": { + "300": "TOS_ILS_2", + "302": "TOS_ILS_Foerderer" + } + }, + "TOS_MAS": { + "TOS-level": 3, + "children": { + "310": "Fahrstrecke", + "311": "Ein- und Anbaugruppe für Omniflo System", + "312": "Verbinder und Kleinteil", + "313": "Baugruppe für Aktionen an/mit Trolleys", + "314": "Förderer" + }, + "reference-ids": { + "310": "TOS_MAS_Fahrstecke" + } + }, + "TOS_Spinnereikomponente": { + "TOS-level": 3, + "children": { + "320": "Hülsenreiniger automatisch", + "321": "Hülsenreiniger manuell", + "322": "Reibradantrieb RA" + }, + "reference-ids": {} + }, + "TOS_Betriebsmittel": { + "TOS-level": 3, + "children": { + "330": "Trolley Standard", + "331": "Trolley Projekte" + }, + "reference-ids": { + "330": "TOS_Trolley", + "331": "TOS_Trolley_Projekte" + } + } +} +""" + + + def test_get_keywords_of_level_from_local_file(self): + """ + Test whether the extraction of the different TOS Level works + loaded from local config and environment variable + """ + + TOS_CFG = manage_configs.TOSGroupsConfig() + TOS_CFG.from_json(self.tos_test_str) + allKeywords = TOS_CFG.get_all_keywords() + + level0 = TOS_CFG.get_keywords_of_level(allKeywords, 0) + self.assertCountEqual(level0, ["TOS-Gruppe"]) + level1 = TOS_CFG.get_keywords_of_level(allKeywords, 1) + self.assertCountEqual(level1, ["TOS_Schoenenberger_Produkt"]) + level2 = TOS_CFG.get_keywords_of_level(allKeywords, 2) + self.assertCountEqual(level2, ["TOS_ILS", "TOS_MAS", "TOS_Spinnereikomponente", "TOS_Betriebsmittel"]) + + def test_get_all_keywords_from_local_file(self): + """ + Test whether the extraction of the different TOS Level works + loaded from local config and environment variable + """ + + TOS_CFG = manage_configs.TOSGroupsConfig() + TOS_CFG.from_json(self.tos_test_str) + + allKeywords = TOS_CFG.get_all_keywords() + + result = {'TOS-Gruppe': 0, + 'TOS_Schoenenberger_Produkt': 1, + 'TOS_ILS': 2, + 'TOS_MAS': 2, + 'TOS_Spinnereikomponente': 2, + 'TOS_Betriebsmittel': 2} + self.assertCountEqual(allKeywords, result) + + +if __name__ == '__main__': + unittest.main()