#!/usr/bin/env python3 import re from gcode import ( analyze_gcode_str, GcodeAnalysis, OPTION_PATTERN, parse_prusa_config_str, ) def test_option_pattern(): assert re.match(OPTION_PATTERN, "\n") is None assert re.findall(OPTION_PATTERN, "; foo = bar\n") assert re.findall(OPTION_PATTERN, "; foo = bar\n; baz = qux") def test_parse_config_str(): assert parse_prusa_config_str("") == {} assert ( parse_prusa_config_str( """ ; prusaslicer_config = begin ; foo = bar ; prusaslicer_config = end """ ) == {"foo": "bar"} ) def test_analyze_gcode(): assert ( analyze_gcode_str( """ gcode garbage ; some comment more garbage ; prusaslicer_config = begin ; bed_shape = 5x5,95x5,95x95,5x95 ; max_print_height = 100 ; first_layer_bed_temperature = 100 ; first_layer_temperature = 195 ; filament_type = PETG ; nozzle_diameter = 1.0 ; prusaslicer_config = end """ ) == GcodeAnalysis(100, 100, 100, 100, 195, "PETG", 1.0) )