alles neu mit black formatiert. handler_context.py impl. um weniger Übergabeparameter zu haben
This commit is contained in:
+217
-72
@@ -4,6 +4,7 @@ import difflib
|
||||
from utils import check_environment_var, setup_logger
|
||||
import plant2dxf
|
||||
|
||||
|
||||
class TestDXFGeometry(unittest.TestCase):
|
||||
testordner_path = Path(check_environment_var("PROJECT_TEST"))
|
||||
lib_path = Path(check_environment_var("PROJECT_DATA"))
|
||||
@@ -12,8 +13,26 @@ class TestDXFGeometry(unittest.TestCase):
|
||||
default_lib_path = lib_path / "blocks.dxf"
|
||||
cfg_path = config_dir / "shapes.cfg"
|
||||
allgemein_cfg_path = config_dir / "allgemein.cfg"
|
||||
|
||||
GEOM_CODES = {"0", "8", "10", "20", "30", "11", "21", "31", "41", "42", "43", "70", "71", "72", "73", "74", "75"}
|
||||
|
||||
GEOM_CODES = {
|
||||
"0",
|
||||
"8",
|
||||
"10",
|
||||
"20",
|
||||
"30",
|
||||
"11",
|
||||
"21",
|
||||
"31",
|
||||
"41",
|
||||
"42",
|
||||
"43",
|
||||
"70",
|
||||
"71",
|
||||
"72",
|
||||
"73",
|
||||
"74",
|
||||
"75",
|
||||
}
|
||||
|
||||
def extract_geometry_lines(self, file_path):
|
||||
"""
|
||||
@@ -39,125 +58,251 @@ class TestDXFGeometry(unittest.TestCase):
|
||||
geom1 = self.extract_geometry_lines(file1)
|
||||
geom2 = self.extract_geometry_lines(file2)
|
||||
if geom1 != geom2:
|
||||
diff = "".join(difflib.unified_diff(geom1, geom2, fromfile=str(file1), tofile=str(file2)))
|
||||
diff = "".join(
|
||||
difflib.unified_diff(
|
||||
geom1, geom2, fromfile=str(file1), tofile=str(file2)
|
||||
)
|
||||
)
|
||||
raise AssertionError(f"Geometrische Daten unterscheiden sich:\n{diff}")
|
||||
|
||||
def test_omniflobogen_dxf_file(self):
|
||||
omniflo_bogen = "omniflo_bogen"
|
||||
omniflo_bogen_csv = self.testordner_path / f"{omniflo_bogen}.csv"
|
||||
omniflo_bogen_csv = self.testordner_path / f"{omniflo_bogen}.csv"
|
||||
omniflo_bogen_dxf = f"{omniflo_bogen}.dxf"
|
||||
omniflo_bogen_jason = self.work_dir / f"{omniflo_bogen}.jason"
|
||||
omniflo_bogen_output = self.work_dir / omniflo_bogen_dxf
|
||||
omniflo_bogen_reference = self.testordner_path / omniflo_bogen_dxf
|
||||
plant2dxf.main(omniflo_bogen_csv , self.default_lib_path, self.cfg_path, self.allgemein_cfg_path, omniflo_bogen_output,omniflo_bogen_jason)
|
||||
omniflo_bogen_json = self.work_dir / f"{omniflo_bogen}.json"
|
||||
omniflo_bogen_output = self.work_dir / omniflo_bogen_dxf
|
||||
omniflo_bogen_reference = self.testordner_path / omniflo_bogen_dxf
|
||||
plant2dxf.main(
|
||||
omniflo_bogen_csv,
|
||||
self.default_lib_path,
|
||||
self.cfg_path,
|
||||
self.allgemein_cfg_path,
|
||||
omniflo_bogen_output,
|
||||
omniflo_bogen_json,
|
||||
)
|
||||
self.assert_dxf_geometry_equal(omniflo_bogen_output, omniflo_bogen_reference)
|
||||
|
||||
|
||||
def test_weiche_90_dxf_file(self):
|
||||
weiche_90= "weiche_90"
|
||||
weiche_90_csv = self.testordner_path / f"{weiche_90}.csv"
|
||||
weiche_90 = "weiche_90"
|
||||
weiche_90_csv = self.testordner_path / f"{weiche_90}.csv"
|
||||
weiche_90_dxf = f"{weiche_90}.dxf"
|
||||
weiche_90_jason = self.work_dir /f"{weiche_90}.jason"
|
||||
weiche_90_json = self.work_dir / f"{weiche_90}.json"
|
||||
weiche_90_output = self.work_dir / weiche_90_dxf
|
||||
weiche_90_reference = self.testordner_path / weiche_90_dxf
|
||||
plant2dxf.main(weiche_90_csv , self.default_lib_path, self.cfg_path, self.allgemein_cfg_path, weiche_90_output,weiche_90_jason)
|
||||
plant2dxf.main(
|
||||
weiche_90_csv,
|
||||
self.default_lib_path,
|
||||
self.cfg_path,
|
||||
self.allgemein_cfg_path,
|
||||
weiche_90_output,
|
||||
weiche_90_json,
|
||||
)
|
||||
self.assert_dxf_geometry_equal(weiche_90_output, weiche_90_reference)
|
||||
|
||||
def test_weiche_45_simple_dxf_file(self):
|
||||
weiche_45_simple= "weiche_45_simple"
|
||||
weiche_45_simple_csv = self.testordner_path / f"{weiche_45_simple}.csv"
|
||||
weiche_45_simple = "weiche_45_simple"
|
||||
weiche_45_simple_csv = self.testordner_path / f"{weiche_45_simple}.csv"
|
||||
weiche_45_simple_dxf = f"{weiche_45_simple}.dxf"
|
||||
weiche_45_simple_jason = self.work_dir/ f"{weiche_45_simple}.jason"
|
||||
weiche_45_simple_json = self.work_dir / f"{weiche_45_simple}.json"
|
||||
weiche_45_simple_output = self.work_dir / weiche_45_simple_dxf
|
||||
weiche_45_simple_reference = self.testordner_path / weiche_45_simple_dxf
|
||||
plant2dxf.main(weiche_45_simple_csv , self.default_lib_path, self.cfg_path, self.allgemein_cfg_path, weiche_45_simple_output,weiche_45_simple_jason)
|
||||
self.assert_dxf_geometry_equal(weiche_45_simple_output, weiche_45_simple_reference)
|
||||
plant2dxf.main(
|
||||
weiche_45_simple_csv,
|
||||
self.default_lib_path,
|
||||
self.cfg_path,
|
||||
self.allgemein_cfg_path,
|
||||
weiche_45_simple_output,
|
||||
weiche_45_simple_json,
|
||||
)
|
||||
self.assert_dxf_geometry_equal(
|
||||
weiche_45_simple_output, weiche_45_simple_reference
|
||||
)
|
||||
|
||||
def test_weiche_45_doppel_dxf_file(self):
|
||||
weiche_45_doppel= "weiche_45_doppel"
|
||||
weiche_45_doppel_csv = self.testordner_path / f"{weiche_45_doppel}.csv"
|
||||
weiche_45_doppel = "weiche_45_doppel"
|
||||
weiche_45_doppel_csv = self.testordner_path / f"{weiche_45_doppel}.csv"
|
||||
weiche_45_doppel_dxf = f"{weiche_45_doppel}.dxf"
|
||||
weiche_45_doppel_jason = self.work_dir /f"{weiche_45_doppel}.jason"
|
||||
weiche_45_doppel_json = self.work_dir / f"{weiche_45_doppel}.json"
|
||||
weiche_45_doppel_output = self.work_dir / weiche_45_doppel_dxf
|
||||
weiche_45_doppel_reference = self.testordner_path / weiche_45_doppel_dxf
|
||||
plant2dxf.main(weiche_45_doppel_csv , self.default_lib_path, self.cfg_path, self.allgemein_cfg_path, weiche_45_doppel_output,weiche_45_doppel_jason)
|
||||
self.assert_dxf_geometry_equal(weiche_45_doppel_output, weiche_45_doppel_reference)
|
||||
plant2dxf.main(
|
||||
weiche_45_doppel_csv,
|
||||
self.default_lib_path,
|
||||
self.cfg_path,
|
||||
self.allgemein_cfg_path,
|
||||
weiche_45_doppel_output,
|
||||
weiche_45_doppel_json,
|
||||
)
|
||||
self.assert_dxf_geometry_equal(
|
||||
weiche_45_doppel_output, weiche_45_doppel_reference
|
||||
)
|
||||
|
||||
def test_weiche_45_dreiwege_dxf_file(self):
|
||||
weiche_45_dreiwege= "weiche_45_dreiwege"
|
||||
weiche_45_dreiwege_csv = self.testordner_path / f"{weiche_45_dreiwege}.csv"
|
||||
weiche_45_dreiwege = "weiche_45_dreiwege"
|
||||
weiche_45_dreiwege_csv = self.testordner_path / f"{weiche_45_dreiwege}.csv"
|
||||
weiche_45_dreiwege_dxf = f"{weiche_45_dreiwege}.dxf"
|
||||
weiche_45_dreiwege_jason = self.work_dir /f"{weiche_45_dreiwege}.jason"
|
||||
weiche_45_dreiwege_json = self.work_dir / f"{weiche_45_dreiwege}.json"
|
||||
weiche_45_dreiwege_output = self.work_dir / weiche_45_dreiwege_dxf
|
||||
weiche_45_dreiwege_reference = self.testordner_path / weiche_45_dreiwege_dxf
|
||||
plant2dxf.main(weiche_45_dreiwege_csv , self.default_lib_path, self.cfg_path, self.allgemein_cfg_path, weiche_45_dreiwege_output,weiche_45_dreiwege_jason)
|
||||
self.assert_dxf_geometry_equal(weiche_45_dreiwege_output, weiche_45_dreiwege_reference)
|
||||
plant2dxf.main(
|
||||
weiche_45_dreiwege_csv,
|
||||
self.default_lib_path,
|
||||
self.cfg_path,
|
||||
self.allgemein_cfg_path,
|
||||
weiche_45_dreiwege_output,
|
||||
weiche_45_dreiwege_json,
|
||||
)
|
||||
self.assert_dxf_geometry_equal(
|
||||
weiche_45_dreiwege_output, weiche_45_dreiwege_reference
|
||||
)
|
||||
|
||||
def test_weichenkoerper_dxf_file(self):
|
||||
weichenkoerper= "weichenkoerper"
|
||||
weichenkoerper_csv = self.testordner_path / f"{weichenkoerper}.csv"
|
||||
weichenkoerper = "weichenkoerper"
|
||||
weichenkoerper_csv = self.testordner_path / f"{weichenkoerper}.csv"
|
||||
weichenkoerper_dxf = f"{weichenkoerper}.dxf"
|
||||
weichenkoerper_jason = self.work_dir /f"{weichenkoerper}.jason"
|
||||
weichenkoerper_json = self.work_dir / f"{weichenkoerper}.json"
|
||||
weichenkoerper_output = self.work_dir / weichenkoerper_dxf
|
||||
weichenkoerper_reference = self.testordner_path / weichenkoerper_dxf
|
||||
plant2dxf.main(weichenkoerper_csv , self.default_lib_path, self.cfg_path, self.allgemein_cfg_path, weichenkoerper_output,weichenkoerper_jason)
|
||||
plant2dxf.main(
|
||||
weichenkoerper_csv,
|
||||
self.default_lib_path,
|
||||
self.cfg_path,
|
||||
self.allgemein_cfg_path,
|
||||
weichenkoerper_output,
|
||||
weichenkoerper_json,
|
||||
)
|
||||
self.assert_dxf_geometry_equal(weichenkoerper_output, weichenkoerper_reference)
|
||||
|
||||
def test_weichenkombination_dxf_file(self):
|
||||
weichenkombination= "weichenkombination"
|
||||
weichenkombination_csv = self.testordner_path / f"{weichenkombination}.csv"
|
||||
weichenkombination = "weichenkombination"
|
||||
weichenkombination_csv = self.testordner_path / f"{weichenkombination}.csv"
|
||||
weichenkombination_dxf = f"{weichenkombination}.dxf"
|
||||
weichenkombination_jason = self.work_dir /f"{weichenkombination}.jason"
|
||||
weichenkombination_json = self.work_dir / f"{weichenkombination}.json"
|
||||
weichenkombination_output = self.work_dir / weichenkombination_dxf
|
||||
weichenkombination_reference = self.testordner_path / weichenkombination_dxf
|
||||
plant2dxf.main(weichenkombination_csv , self.default_lib_path, self.cfg_path, self.allgemein_cfg_path, weichenkombination_output,weichenkombination_jason)
|
||||
self.assert_dxf_geometry_equal(weichenkombination_output, weichenkombination_reference)
|
||||
|
||||
plant2dxf.main(
|
||||
weichenkombination_csv,
|
||||
self.default_lib_path,
|
||||
self.cfg_path,
|
||||
self.allgemein_cfg_path,
|
||||
weichenkombination_output,
|
||||
weichenkombination_json,
|
||||
)
|
||||
self.assert_dxf_geometry_equal(
|
||||
weichenkombination_output, weichenkombination_reference
|
||||
)
|
||||
|
||||
def test_gefaelle_dxf_file(self):
|
||||
gefaelle= "gefaelle"
|
||||
gefaelle_csv = self.testordner_path / f"{gefaelle}.csv"
|
||||
gefaelle = "gefaelle"
|
||||
gefaelle_csv = self.testordner_path / f"{gefaelle}.csv"
|
||||
gefaelle_dxf = f"{gefaelle}.dxf"
|
||||
gefaelle_jason = self.work_dir /f"{gefaelle}.jason"
|
||||
gefaelle_json = self.work_dir / f"{gefaelle}.json"
|
||||
weichenkombination_output = self.work_dir / gefaelle_dxf
|
||||
weichenkombination_reference = self.testordner_path / gefaelle_dxf
|
||||
plant2dxf.main(gefaelle_csv , self.default_lib_path, self.cfg_path, self.allgemein_cfg_path, weichenkombination_output,gefaelle_jason)
|
||||
self.assert_dxf_geometry_equal(weichenkombination_output, weichenkombination_reference)
|
||||
plant2dxf.main(
|
||||
gefaelle_csv,
|
||||
self.default_lib_path,
|
||||
self.cfg_path,
|
||||
self.allgemein_cfg_path,
|
||||
weichenkombination_output,
|
||||
gefaelle_json,
|
||||
)
|
||||
self.assert_dxf_geometry_equal(
|
||||
weichenkombination_output, weichenkombination_reference
|
||||
)
|
||||
|
||||
def test_gefaelle_ausnahme_gleiche_orientierung_dxf_file(self):
|
||||
gefaelle_ausnahme_gleiche_orientierung= "gefaelle_ausnahme_gleiche_orientierung"
|
||||
gefaelle_ausnahme_gleiche_orientierung_csv = self.testordner_path / f"{gefaelle_ausnahme_gleiche_orientierung}.csv"
|
||||
gefaelle_ausnahme_gleiche_orientierung_dxf = f"{gefaelle_ausnahme_gleiche_orientierung}.dxf"
|
||||
gefaelle_ausnahme_gleiche_orientierung_jason = self.work_dir /f"{gefaelle_ausnahme_gleiche_orientierung}.jason"
|
||||
gefaelle_ausnahme_gleiche_orientierung_output = self.work_dir / gefaelle_ausnahme_gleiche_orientierung_dxf
|
||||
gefaelle_ausnahme_gleiche_orientierung_reference = self.testordner_path / gefaelle_ausnahme_gleiche_orientierung_dxf
|
||||
plant2dxf.main(gefaelle_ausnahme_gleiche_orientierung_csv , self.default_lib_path, self.cfg_path, self.allgemein_cfg_path, gefaelle_ausnahme_gleiche_orientierung_output,gefaelle_ausnahme_gleiche_orientierung_jason)
|
||||
self.assert_dxf_geometry_equal(gefaelle_ausnahme_gleiche_orientierung_output, gefaelle_ausnahme_gleiche_orientierung_reference)
|
||||
gefaelle_ausnahme_gleiche_orientierung = (
|
||||
"gefaelle_ausnahme_gleiche_orientierung"
|
||||
)
|
||||
gefaelle_ausnahme_gleiche_orientierung_csv = (
|
||||
self.testordner_path / f"{gefaelle_ausnahme_gleiche_orientierung}.csv"
|
||||
)
|
||||
gefaelle_ausnahme_gleiche_orientierung_dxf = (
|
||||
f"{gefaelle_ausnahme_gleiche_orientierung}.dxf"
|
||||
)
|
||||
gefaelle_ausnahme_gleiche_orientierung_json = (
|
||||
self.work_dir / f"{gefaelle_ausnahme_gleiche_orientierung}.json"
|
||||
)
|
||||
gefaelle_ausnahme_gleiche_orientierung_output = (
|
||||
self.work_dir / gefaelle_ausnahme_gleiche_orientierung_dxf
|
||||
)
|
||||
gefaelle_ausnahme_gleiche_orientierung_reference = (
|
||||
self.testordner_path / gefaelle_ausnahme_gleiche_orientierung_dxf
|
||||
)
|
||||
plant2dxf.main(
|
||||
gefaelle_ausnahme_gleiche_orientierung_csv,
|
||||
self.default_lib_path,
|
||||
self.cfg_path,
|
||||
self.allgemein_cfg_path,
|
||||
gefaelle_ausnahme_gleiche_orientierung_output,
|
||||
gefaelle_ausnahme_gleiche_orientierung_json,
|
||||
)
|
||||
self.assert_dxf_geometry_equal(
|
||||
gefaelle_ausnahme_gleiche_orientierung_output,
|
||||
gefaelle_ausnahme_gleiche_orientierung_reference,
|
||||
)
|
||||
|
||||
def test_gefaelle_ausnahme_unterschiedlich_orientierung_dxf_file(self):
|
||||
gefaelle_ausnahme_unterschiedlich_orientierung= "gefaelle_ausnahme_unterschiedlich_orientierung"
|
||||
gefaelle_ausnahme_unterschiedlich_orientierung_csv = self.testordner_path / f"{gefaelle_ausnahme_unterschiedlich_orientierung}.csv"
|
||||
gefaelle_ausnahme_unterschiedlich_orientierung_dxf = f"{gefaelle_ausnahme_unterschiedlich_orientierung}.dxf"
|
||||
gefaelle_ausnahme_unterschiedlich_orientierung_jason = self.work_dir /f"{gefaelle_ausnahme_unterschiedlich_orientierung}.jason"
|
||||
gefaelle_ausnahme_unterschiedlich_orientierung_output = self.work_dir / gefaelle_ausnahme_unterschiedlich_orientierung_dxf
|
||||
gefaelle_ausnahme_unterschiedlich_orientierung_reference = self.testordner_path / gefaelle_ausnahme_unterschiedlich_orientierung_dxf
|
||||
plant2dxf.main(gefaelle_ausnahme_unterschiedlich_orientierung_csv , self.default_lib_path, self.cfg_path, self.allgemein_cfg_path, gefaelle_ausnahme_unterschiedlich_orientierung_output,gefaelle_ausnahme_unterschiedlich_orientierung_jason)
|
||||
self.assert_dxf_geometry_equal(gefaelle_ausnahme_unterschiedlich_orientierung_output, gefaelle_ausnahme_unterschiedlich_orientierung_reference)
|
||||
gefaelle_ausnahme_unterschiedlich_orientierung = (
|
||||
"gefaelle_ausnahme_unterschiedlich_orientierung"
|
||||
)
|
||||
gefaelle_ausnahme_unterschiedlich_orientierung_csv = (
|
||||
self.testordner_path
|
||||
/ f"{gefaelle_ausnahme_unterschiedlich_orientierung}.csv"
|
||||
)
|
||||
gefaelle_ausnahme_unterschiedlich_orientierung_dxf = (
|
||||
f"{gefaelle_ausnahme_unterschiedlich_orientierung}.dxf"
|
||||
)
|
||||
gefaelle_ausnahme_unterschiedlich_orientierung_json = (
|
||||
self.work_dir / f"{gefaelle_ausnahme_unterschiedlich_orientierung}.json"
|
||||
)
|
||||
gefaelle_ausnahme_unterschiedlich_orientierung_output = (
|
||||
self.work_dir / gefaelle_ausnahme_unterschiedlich_orientierung_dxf
|
||||
)
|
||||
gefaelle_ausnahme_unterschiedlich_orientierung_reference = (
|
||||
self.testordner_path / gefaelle_ausnahme_unterschiedlich_orientierung_dxf
|
||||
)
|
||||
plant2dxf.main(
|
||||
gefaelle_ausnahme_unterschiedlich_orientierung_csv,
|
||||
self.default_lib_path,
|
||||
self.cfg_path,
|
||||
self.allgemein_cfg_path,
|
||||
gefaelle_ausnahme_unterschiedlich_orientierung_output,
|
||||
gefaelle_ausnahme_unterschiedlich_orientierung_json,
|
||||
)
|
||||
self.assert_dxf_geometry_equal(
|
||||
gefaelle_ausnahme_unterschiedlich_orientierung_output,
|
||||
gefaelle_ausnahme_unterschiedlich_orientierung_reference,
|
||||
)
|
||||
|
||||
def test_gefaelle_einzeln_verbunden_dxf_file(self):
|
||||
gefaelle_einzeln_verbunden= "gefaelle_einzeln_verbunden"
|
||||
gefaelle_einzeln_verbunden_csv = self.testordner_path / f"{gefaelle_einzeln_verbunden}.csv"
|
||||
gefaelle_einzeln_verbunden = "gefaelle_einzeln_verbunden"
|
||||
gefaelle_einzeln_verbunden_csv = (
|
||||
self.testordner_path / f"{gefaelle_einzeln_verbunden}.csv"
|
||||
)
|
||||
gefaelle_einzeln_verbunden_dxf = f"{gefaelle_einzeln_verbunden}.dxf"
|
||||
gefaelle_einzeln_verbunden_jason = self.work_dir /f"{gefaelle_einzeln_verbunden}.jason"
|
||||
gefaelle_einzeln_verbunden_output = self.work_dir / gefaelle_einzeln_verbunden_dxf
|
||||
gefaelle_einzeln_verbunden_reference = self.testordner_path / gefaelle_einzeln_verbunden_dxf
|
||||
plant2dxf.main(gefaelle_einzeln_verbunden_csv , self.default_lib_path, self.cfg_path, self.allgemein_cfg_path, gefaelle_einzeln_verbunden_output,gefaelle_einzeln_verbunden_jason)
|
||||
self.assert_dxf_geometry_equal(gefaelle_einzeln_verbunden_output, gefaelle_einzeln_verbunden_reference)
|
||||
|
||||
|
||||
|
||||
gefaelle_einzeln_verbunden_json = (
|
||||
self.work_dir / f"{gefaelle_einzeln_verbunden}.json"
|
||||
)
|
||||
gefaelle_einzeln_verbunden_output = (
|
||||
self.work_dir / gefaelle_einzeln_verbunden_dxf
|
||||
)
|
||||
gefaelle_einzeln_verbunden_reference = (
|
||||
self.testordner_path / gefaelle_einzeln_verbunden_dxf
|
||||
)
|
||||
plant2dxf.main(
|
||||
gefaelle_einzeln_verbunden_csv,
|
||||
self.default_lib_path,
|
||||
self.cfg_path,
|
||||
self.allgemein_cfg_path,
|
||||
gefaelle_einzeln_verbunden_output,
|
||||
gefaelle_einzeln_verbunden_json,
|
||||
)
|
||||
self.assert_dxf_geometry_equal(
|
||||
gefaelle_einzeln_verbunden_output, gefaelle_einzeln_verbunden_reference
|
||||
)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user