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