455 lines
13 KiB
Python
455 lines
13 KiB
Python
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_MAS_Fahrstrecke': 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.config_dir = os.environ.get('CREMIG_CFG')
|
|
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_string(self):
|
|
"""
|
|
Test whether the extraction of the different TOS Level works
|
|
loaded from local config and environment variable
|
|
"""
|
|
|
|
TOS_CFG = manage_configs.TOSGroupsConfig(self.config_dir)
|
|
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_string(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)
|
|
|
|
class TestMaterialien(unittest.TestCase):
|
|
|
|
def setUp(self):
|
|
self.config_dir = os.environ.get('CREMIG_CFG')
|
|
self.materials_str = """
|
|
{
|
|
"1.4301": {
|
|
"Werkstoff": "1.4301 (X5CrNi18-10)",
|
|
"Werkstofftyp": "Stahl"
|
|
},
|
|
"1.4305": {
|
|
"Werkstoff": "1.4305 (X8CrNiS18-9)",
|
|
"Werkstofftyp": "Stahl"
|
|
},
|
|
"1.4305 / 671": {
|
|
"Werkstoff": "1.4305 (X8CrNiS18-9)",
|
|
"Werkstofftyp": "Stahl"
|
|
},
|
|
"PA6 GF30": {
|
|
"Werkstoff": "PA 6 GF 30",
|
|
"Werkstofftyp": "Kunst-/ Verbundstoff",
|
|
"Oberfläche": "Masterbatch (Grundfarbe)"
|
|
},
|
|
"S235JR galv. verzinkt Fe/Zn 8-15 B": {
|
|
"Werkstoff": "1.0038 (S235JR) ",
|
|
"Werkstofftyp": "Stahl",
|
|
"Oberfläche": "verzinken"
|
|
},
|
|
"VA": {
|
|
"Werkstoff": "false",
|
|
"Message": "individuell nach Verwendungszweck anhand von Stahlschlüssel anpassen"
|
|
}
|
|
}
|
|
"""
|
|
|
|
def test_get_all_materials_from_string(self):
|
|
"""
|
|
Test whether all materials are found
|
|
"""
|
|
|
|
TOS_CFG = manage_configs.MaterialTransConfig(self.config_dir)
|
|
TOS_CFG.from_json(self.materials_str)
|
|
|
|
allMaterials = TOS_CFG.get_all_materials()
|
|
|
|
result = ["1.4301", "1.4305", "1.4305 / 671", "PA6 GF30", "S235JR galv. verzinkt Fe/Zn 8-15 B", "VA"]
|
|
self.assertCountEqual(allMaterials, result)
|
|
|
|
def test_get_material_of_type(self):
|
|
"""
|
|
Test whether material of steel, etc. is found
|
|
"""
|
|
|
|
TOS_CFG = manage_configs.MaterialTransConfig(self.config_dir)
|
|
TOS_CFG.from_json(self.materials_str)
|
|
|
|
content = TOS_CFG.get_material_of_type("1.4301")
|
|
self.assertCountEqual(content, { 'Werkstoff': '1.4301 (X5CrNi18-10)', 'Werkstofftyp': 'Stahl'})
|
|
|
|
content = TOS_CFG.get_material_of_type("VA")
|
|
self.assertCountEqual(content, {"Werkstoff": "false", "Message": "individuell nach Verwendungszweck anhand von Stahlschlüssel anpassen"})
|
|
|
|
|
|
class TestWerkstoffeFromLocalConfigs(unittest.TestCase):
|
|
|
|
def setUp(self):
|
|
self.config_dir = os.environ.get('CREMIG_CFG')
|
|
|
|
def test_get_wkstoffe_of_type(self):
|
|
"""
|
|
get list of steels, aluminum, etc.
|
|
"""
|
|
|
|
WKST_CFG = manage_configs.WerkstoffeConfig(self.config_dir, 'Werkstoff.cfg')
|
|
|
|
steels = WKST_CFG.get_werkstoffe_of_name("Stahl")
|
|
result = ['1.0035 (S185)', '1.0038 (S235JR)', '1.0122 (S235JRC)',
|
|
'1.0122+C (S235JRC+C)', '1.0330 (DC01)', '1.0401 (C15)',
|
|
'1.0501 (C35)', '1.0503 (C45)', '1.0503+N (C45+N)',
|
|
'1.0553 (S355J0)', '1.0577 (S355J2)', '1.0711 (9S20)',
|
|
'1.0715 (11SMn30)', '1.0715+C (11SMn30+C)', '1.0917 (DX51D+Z)',
|
|
'1.1191 (C45E)', '1.2842 (90MnCrV8)', '1.4035 (X45CrS13)',
|
|
'1.4301 (X5CrNi18-10)', '1.4305 (X8CrNiS18-9)',
|
|
'1.4310 (X10CrNi18-8)', '1.5023 (38Si7)', '1.7131 (16MnCr5)',
|
|
'siehe Hersteller' ]
|
|
self.assertCountEqual(steels, result)
|
|
|
|
steels = WKST_CFG.get_werkstoffe_of_name("Aluminium")
|
|
result = [ "EN AW-1050A (3.0255)", "EN AW-2007 (3.1645)", "EN AW-2014-T3 (3.1255-T3)",
|
|
"EN AW-2014-T4 (3.1255-T4)", "EN AW-6060 (3.3206)",
|
|
"EN AW-6060-T66 (3.3206-T66)", "EN AW-7075 (3.4365)",
|
|
"EN AW-6063-T66", 'siehe Hersteller' ]
|
|
self.assertCountEqual(steels, result)
|
|
|
|
class TestWerkstoffe(unittest.TestCase):
|
|
|
|
def setUp(self):
|
|
self.config_dir = os.environ.get('CREMIG_CFG')
|
|
|
|
self.wkstoffe = """
|
|
[Werkstofftyp]
|
|
Stahl
|
|
Aluminium
|
|
Kunst-/ Verbundstoff
|
|
Schwermetall
|
|
Festigkeitsklasse
|
|
siehe Hersteller
|
|
|
|
[Stahl]
|
|
1.0035 (S185)
|
|
1.0038 (S235JR)
|
|
1.0122 (S235JRC)
|
|
1.0122+C (S235JRC+C)
|
|
1.0330 (DC01)
|
|
1.0401 (C15)
|
|
1.0501 (C35)
|
|
1.0503 (C45)
|
|
1.0503+N (C45+N)
|
|
siehe Hersteller
|
|
|
|
[Aluminium]
|
|
EN AW-1050A (3.0255)
|
|
EN AW-2007 (3.1645)
|
|
EN AW-2014-T3 (3.1255-T3)
|
|
EN AW-7075 (3.4365)
|
|
EN AW-6063-T66
|
|
siehe Hersteller
|
|
|
|
[Kunst-/ Verbundstoff]
|
|
ABS
|
|
ASA
|
|
CR/SBR-A65
|
|
Hostaform 13031 MB1.5
|
|
Irogran A87
|
|
Murtfeldt "S" 1000
|
|
PA
|
|
PA 2200
|
|
PA 2200 SLS
|
|
POM
|
|
POM-C
|
|
POM-H
|
|
siehe Hersteller
|
|
"""
|
|
|
|
def test_get_wkstoffe_of_type(self):
|
|
"""
|
|
get list of steels
|
|
"""
|
|
|
|
WKST_CFG = manage_configs.WerkstoffeConfig(self.config_dir)
|
|
WKST_CFG.from_cfg_str(self.wkstoffe)
|
|
|
|
steels = WKST_CFG.get_werkstoffe_of_name("Stahl")
|
|
|
|
result = ["1.0035 (S185)", "1.0038 (S235JR)", "1.0122 (S235JRC)",
|
|
"1.0122+C (S235JRC+C)", "1.0330 (DC01)", "1.0401 (C15)", "1.0501 (C35)",
|
|
"1.0503 (C45)", "1.0503+N (C45+N)", "siehe Hersteller"]
|
|
self.assertCountEqual(steels, result)
|
|
|
|
class TestAllgmein(unittest.TestCase):
|
|
|
|
def setUp(self):
|
|
self.config_dir = os.environ.get('CREMIG_CFG')
|
|
self.allgemein = """
|
|
|
|
[Kategorien]
|
|
Baugruppe
|
|
Einzelteil
|
|
Kaufteil
|
|
NichtSivas
|
|
Normteil
|
|
Schweissbaugruppe
|
|
|
|
[Dispogruppe]
|
|
Fahrstrecke=10
|
|
Förderer=20
|
|
Gerüst=30
|
|
Betriebsmittel=40
|
|
Automation=50
|
|
Kleinteil=60
|
|
Rohmaterial=70
|
|
Sonstiges Intern=80
|
|
Baustelleneinrichtung=90
|
|
Sonderkonstruktionen=100
|
|
|
|
[Dispolaufgruppe]
|
|
Omniflo=10
|
|
Intra Logistic System + alt-HFS=20
|
|
Fremd-Transportsysteme + SSG-Anbauten=30
|
|
Spinnereikomponente=40
|
|
Automotiv=45
|
|
Nicht eindeutig, Sonder=50
|
|
|
|
[Kalkulationsart]
|
|
Eigenbau
|
|
Kaufteil
|
|
Mischteil
|
|
"""
|
|
|
|
def test_get_allgmein(self):
|
|
"""
|
|
get list of sections in allgmein
|
|
"""
|
|
|
|
ALLG_CFG = manage_configs.AllgemeinConfig(self.config_dir)
|
|
ALLG_CFG.from_cfg_str(self.allgemein)
|
|
|
|
allg_secs = ALLG_CFG.get_sections()
|
|
result = ['Kategorien', 'Dispogruppe', 'Dispolaufgruppe', 'Kalkulationsart']
|
|
self.assertCountEqual(allg_secs, result)
|
|
|
|
opts = ALLG_CFG.get_options('Kalkulationsart')
|
|
result = ['Eigenbau', 'Kaufteil', 'Mischteil']
|
|
self.assertCountEqual(opts, result)
|
|
|
|
opts = ALLG_CFG.get_options('Dispolaufgruppe')
|
|
result = ['Omniflo', 'Intra Logistic System + alt-HFS',
|
|
'Fremd-Transportsysteme + SSG-Anbauten',
|
|
'Spinnereikomponente', 'Automotiv', "Nicht eindeutig, Sonder"]
|
|
self.assertCountEqual(opts, result)
|
|
|
|
val = ALLG_CFG.get_int('Dispolaufgruppe', 'Omniflo')
|
|
self.assertEqual(val, 10)
|
|
|
|
dint = ALLG_CFG.get_dict('Dispogruppe')
|
|
res = { 'Fahrstrecke':10,
|
|
'Förderer':20,
|
|
'Gerüst':30,
|
|
'Betriebsmittel':40,
|
|
'Automation':50,
|
|
'Kleinteil':60,
|
|
'Rohmaterial':70,
|
|
'Sonstiges Intern':80,
|
|
'Baustelleneinrichtung':90,
|
|
'Sonderkonstruktionen':100,
|
|
}
|
|
self.assertCountEqual(dint, res)
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|
|
unittest.main()
|