From f279e7319e0a633981a73540840e0abbaf80d266 Mon Sep 17 00:00:00 2001 From: "Salvador E. Tropea" Date: Wed, 27 Jan 2021 11:51:26 -0300 Subject: [PATCH] Added test for a BoM from multiple projects. --- tests/board_samples/kicad_5/merge_1.sch | 71 ++++++++++++++++ tests/board_samples/kicad_5/merge_2.sch | 82 +++++++++++++++++++ tests/board_samples/kicad_5/merge_3.sch | 71 ++++++++++++++++ tests/test_plot/test_int_bom.py | 11 +++ .../int_bom_merge_csv_1.kibot.yaml | 23 ++++++ 5 files changed, 258 insertions(+) create mode 100644 tests/board_samples/kicad_5/merge_1.sch create mode 100644 tests/board_samples/kicad_5/merge_2.sch create mode 100644 tests/board_samples/kicad_5/merge_3.sch create mode 100644 tests/yaml_samples/int_bom_merge_csv_1.kibot.yaml diff --git a/tests/board_samples/kicad_5/merge_1.sch b/tests/board_samples/kicad_5/merge_1.sch new file mode 100644 index 00000000..ef91e7ac --- /dev/null +++ b/tests/board_samples/kicad_5/merge_1.sch @@ -0,0 +1,71 @@ +EESchema Schematic File Version 4 +EELAYER 30 0 +EELAYER END +$Descr A4 11693 8268 +encoding utf-8 +Sheet 1 1 +Title "" +Date "" +Rev "" +Comp "" +Comment1 "" +Comment2 "" +Comment3 "" +Comment4 "" +$EndDescr +$Comp +L Device:R R1 +U 1 1 60116835 +P 2500 1900 +F 0 "R1" H 2570 1946 50 0000 L CNN +F 1 "1k" H 2570 1855 50 0000 L CNN +F 2 "" V 2430 1900 50 0001 C CNN +F 3 "~" H 2500 1900 50 0001 C CNN + 1 2500 1900 + 1 0 0 -1 +$EndComp +$Comp +L Device:R R2 +U 1 1 60116C74 +P 3000 1900 +F 0 "R2" H 3070 1946 50 0000 L CNN +F 1 "1k" H 3070 1855 50 0000 L CNN +F 2 "" V 2930 1900 50 0001 C CNN +F 3 "~" H 3000 1900 50 0001 C CNN + 1 3000 1900 + 1 0 0 -1 +$EndComp +$Comp +L Device:R R3 +U 1 1 60117409 +P 3500 1900 +F 0 "R3" H 3570 1946 50 0000 L CNN +F 1 "1k" H 3570 1855 50 0000 L CNN +F 2 "" V 3430 1900 50 0001 C CNN +F 3 "~" H 3500 1900 50 0001 C CNN + 1 3500 1900 + 1 0 0 -1 +$EndComp +$Comp +L Device:C C1 +U 1 1 60117926 +P 2500 2400 +F 0 "C1" H 2615 2446 50 0000 L CNN +F 1 "1nF" H 2615 2355 50 0000 L CNN +F 2 "" H 2538 2250 50 0001 C CNN +F 3 "~" H 2500 2400 50 0001 C CNN + 1 2500 2400 + 1 0 0 -1 +$EndComp +$Comp +L Device:C C2 +U 1 1 60117DD1 +P 3000 2400 +F 0 "C2" H 3115 2446 50 0000 L CNN +F 1 "10nF" H 3115 2355 50 0000 L CNN +F 2 "" H 3038 2250 50 0001 C CNN +F 3 "~" H 3000 2400 50 0001 C CNN + 1 3000 2400 + 1 0 0 -1 +$EndComp +$EndSCHEMATC diff --git a/tests/board_samples/kicad_5/merge_2.sch b/tests/board_samples/kicad_5/merge_2.sch new file mode 100644 index 00000000..903dbbae --- /dev/null +++ b/tests/board_samples/kicad_5/merge_2.sch @@ -0,0 +1,82 @@ +EESchema Schematic File Version 4 +EELAYER 30 0 +EELAYER END +$Descr A4 11693 8268 +encoding utf-8 +Sheet 1 1 +Title "" +Date "" +Rev "" +Comp "" +Comment1 "" +Comment2 "" +Comment3 "" +Comment4 "" +$EndDescr +$Comp +L Device:R R1 +U 1 1 60116835 +P 2500 1900 +F 0 "R1" H 2570 1946 50 0000 L CNN +F 1 "10k" H 2570 1855 50 0000 L CNN +F 2 "" V 2430 1900 50 0001 C CNN +F 3 "~" H 2500 1900 50 0001 C CNN + 1 2500 1900 + 1 0 0 -1 +$EndComp +$Comp +L Device:R R2 +U 1 1 60116C74 +P 3000 1900 +F 0 "R2" H 3070 1946 50 0000 L CNN +F 1 "1000" H 3070 1855 50 0000 L CNN +F 2 "" V 2930 1900 50 0001 C CNN +F 3 "~" H 3000 1900 50 0001 C CNN + 1 3000 1900 + 1 0 0 -1 +$EndComp +$Comp +L Device:R R3 +U 1 1 60117409 +P 3500 1900 +F 0 "R3" H 3570 1946 50 0000 L CNN +F 1 "1000" H 3570 1855 50 0000 L CNN +F 2 "" V 3430 1900 50 0001 C CNN +F 3 "~" H 3500 1900 50 0001 C CNN + 1 3500 1900 + 1 0 0 -1 +$EndComp +$Comp +L Device:C C1 +U 1 1 60117926 +P 2500 2400 +F 0 "C1" H 2615 2446 50 0000 L CNN +F 1 "10nF" H 2615 2355 50 0000 L CNN +F 2 "" H 2538 2250 50 0001 C CNN +F 3 "~" H 2500 2400 50 0001 C CNN + 1 2500 2400 + 1 0 0 -1 +$EndComp +$Comp +L Device:C C2 +U 1 1 60117DD1 +P 3000 2400 +F 0 "C2" H 3115 2446 50 0000 L CNN +F 1 "1nF" H 3115 2355 50 0000 L CNN +F 2 "" H 3038 2250 50 0001 C CNN +F 3 "~" H 3000 2400 50 0001 C CNN + 1 3000 2400 + 1 0 0 -1 +$EndComp +$Comp +L Device:R R4 +U 1 1 601182F4 +P 4000 1900 +F 0 "R4" H 4070 1946 50 0000 L CNN +F 1 "1000" H 4070 1855 50 0000 L CNN +F 2 "" V 3930 1900 50 0001 C CNN +F 3 "~" H 4000 1900 50 0001 C CNN + 1 4000 1900 + 1 0 0 -1 +$EndComp +$EndSCHEMATC diff --git a/tests/board_samples/kicad_5/merge_3.sch b/tests/board_samples/kicad_5/merge_3.sch new file mode 100644 index 00000000..c6d6f463 --- /dev/null +++ b/tests/board_samples/kicad_5/merge_3.sch @@ -0,0 +1,71 @@ +EESchema Schematic File Version 4 +EELAYER 30 0 +EELAYER END +$Descr A4 11693 8268 +encoding utf-8 +Sheet 1 1 +Title "" +Date "" +Rev "" +Comp "" +Comment1 "" +Comment2 "" +Comment3 "" +Comment4 "" +$EndDescr +$Comp +L Device:R R1 +U 1 1 60116835 +P 2500 1900 +F 0 "R1" H 2570 1946 50 0000 L CNN +F 1 "10k" H 2570 1855 50 0000 L CNN +F 2 "" V 2430 1900 50 0001 C CNN +F 3 "~" H 2500 1900 50 0001 C CNN + 1 2500 1900 + 1 0 0 -1 +$EndComp +$Comp +L Device:R R2 +U 1 1 60116C74 +P 3000 1900 +F 0 "R2" H 3070 1946 50 0000 L CNN +F 1 "10k" H 3070 1855 50 0000 L CNN +F 2 "" V 2930 1900 50 0001 C CNN +F 3 "~" H 3000 1900 50 0001 C CNN + 1 3000 1900 + 1 0 0 -1 +$EndComp +$Comp +L Device:R R3 +U 1 1 60117409 +P 3500 1900 +F 0 "R3" H 3570 1946 50 0000 L CNN +F 1 "10k" H 3570 1855 50 0000 L CNN +F 2 "" V 3430 1900 50 0001 C CNN +F 3 "~" H 3500 1900 50 0001 C CNN + 1 3500 1900 + 1 0 0 -1 +$EndComp +$Comp +L Device:R R4 +U 1 1 601182F4 +P 4000 1900 +F 0 "R4" H 4070 1946 50 0000 L CNN +F 1 "10k" H 4070 1855 50 0000 L CNN +F 2 "" V 3930 1900 50 0001 C CNN +F 3 "~" H 4000 1900 50 0001 C CNN + 1 4000 1900 + 1 0 0 -1 +$EndComp +$Comp +L Device:R R5 +U 1 1 60118A56 +P 4500 1900 +F 0 "R5" H 4570 1946 50 0000 L CNN +F 1 "1k" H 4570 1855 50 0000 L CNN +F 2 "" V 4430 1900 50 0001 C CNN +F 3 "~" H 4500 1900 50 0001 C CNN + 1 4500 1900 + 1 0 0 -1 +$EndComp +$EndSCHEMATC diff --git a/tests/test_plot/test_int_bom.py b/tests/test_plot/test_int_bom.py index 2ece4d19..3548b3ca 100644 --- a/tests/test_plot/test_int_bom.py +++ b/tests/test_plot/test_int_bom.py @@ -1444,3 +1444,14 @@ def test_int_bom_variant_5(): ref_column = header.index(REF_COLUMN_NAME) check_kibom_test_netlist(rows, ref_column, 1, ['C1', 'C2', 'R1'], ['R2']) ctx.clean_up() + + +def test_int_bom_merge_csv_1(): + prj = 'merge_1' + ctx = context.TestContextSCH('test_int_bom_merge_csv_1', prj, 'int_bom_merge_csv_1', BOM_DIR) + ctx.run() + rows, header, info = ctx.load_csv(prj+'-bom.csv') + ref_column = header.index(REF_COLUMN_NAME) + comps = ['A:R1-A:R3', 'A:C1', 'A:C2', 'B:R1', 'B:R2-B:R4', 'B:C1', 'B:C2', 'C:R1-C:R4', 'C:R5'] + check_kibom_test_netlist(rows, ref_column, 4, None, comps) + ctx.clean_up() diff --git a/tests/yaml_samples/int_bom_merge_csv_1.kibot.yaml b/tests/yaml_samples/int_bom_merge_csv_1.kibot.yaml new file mode 100644 index 00000000..1d8a7b03 --- /dev/null +++ b/tests/yaml_samples/int_bom_merge_csv_1.kibot.yaml @@ -0,0 +1,23 @@ +# Example KiBot config file +kibot: + version: 1 + +outputs: + - name: 'bom_csv' + comment: "Bill of Materials in CSV format" + type: bom + dir: BoM + options: + format: CSV + ref_id: 'A:' + source_by_id: true + use_alt: true + aggregate: + - file: tests/board_samples/kicad_5/merge_2.sch + name: 2nd project + ref_id: 'B:' + number: 2 + - file: tests/board_samples/kicad_5/merge_3.sch + ref_id: 'C:' + number: 4 +