diff --git a/kibot/out_position.py b/kibot/out_position.py index 2c7f2dba..b7238d7b 100644 --- a/kibot/out_position.py +++ b/kibot/out_position.py @@ -184,7 +184,7 @@ class PositionOptions(VariantOptions): @staticmethod def is_pure_smd_6(m): - return m.GetAttributes() & (MOD_THROUGH_HOLE | MOD_SMD) == MOD_SMD + return m.GetAttributes() & (MOD_THROUGH_HOLE | MOD_SMD) == MOD_SMD # pragma: no cover (Ki6) @staticmethod def is_not_virtual_5(m): @@ -192,13 +192,13 @@ class PositionOptions(VariantOptions): @staticmethod def is_not_virtual_6(m): - return not (m.GetAttributes() & MOD_EXCLUDE_FROM_POS_FILES) + return not (m.GetAttributes() & MOD_EXCLUDE_FROM_POS_FILES) # pragma: no cover (Ki6) @staticmethod def get_attr_tests(): if GS.kicad_version_n < KICAD_VERSION_5_99: return PositionOptions.is_pure_smd_5, PositionOptions.is_not_virtual_5 - return PositionOptions.is_pure_smd_6, PositionOptions.is_not_virtual_6 + return PositionOptions.is_pure_smd_6, PositionOptions.is_not_virtual_6 # pragma: no cover (Ki6) def get_targets(self, parent, out_dir): ext = 'pos' if self.format == 'ASCII' else 'csv' diff --git a/tests/test_plot/test_yaml_errors.py b/tests/test_plot/test_yaml_errors.py index 0d70c0a5..e519ce7a 100644 --- a/tests/test_plot/test_yaml_errors.py +++ b/tests/test_plot/test_yaml_errors.py @@ -633,3 +633,10 @@ def test_error_makefile_wrong_out(test_dir): ctx.run(WRONG_ARGUMENTS) assert ctx.search_err("Unknown output `position` selected in") ctx.clean_up() + + +def test_error_no_column_id(test_dir): + ctx = context.TestContext(test_dir, 'test_error_no_column_id', 'bom', 'error_no_column_id', '') + ctx.run(EXIT_BAD_CONFIG) + assert ctx.search_err("Missing or empty `id` in columns list") + ctx.clean_up() diff --git a/tests/yaml_samples/error_no_column_id.kibot.yaml b/tests/yaml_samples/error_no_column_id.kibot.yaml new file mode 100644 index 00000000..6e5a4e52 --- /dev/null +++ b/tests/yaml_samples/error_no_column_id.kibot.yaml @@ -0,0 +1,26 @@ +kibot: + version: 1 + +outputs: + - name: 'position' + comment: "Pick and place file, JLC style" + type: position + options: + variant: default + output: '%f_cpl_jlc.%x' + format: CSV + units: millimeters + separate_files_for_front_and_back: false + only_smd: true + columns: + - name: Designator + - Val + - Package + - id: PosX + name: "Mid X" + - id: PosY + name: "Mid Y" + - id: Rot + name: Rotation + - id: Side + name: Layer