diff --git a/promicro.js b/promicro.js new file mode 100644 index 0000000..e69de29 diff --git a/promicro.kicad_mod b/promicro.kicad_mod new file mode 100644 index 0000000..e69de29 diff --git a/src/ergogen_footprint_converter/converter.py b/src/ergogen_footprint_converter/converter.py index a0586cb..0bfba72 100644 --- a/src/ergogen_footprint_converter/converter.py +++ b/src/ergogen_footprint_converter/converter.py @@ -8,3 +8,7 @@ class Converter: def convert(self) -> str: return "" + + @staticmethod + def replace_template(params, main, captions, pins) -> str: + return "" diff --git a/src/ergogen_footprint_converter/main.py b/src/ergogen_footprint_converter/main.py index 0e2f15e..cf57ce6 100644 --- a/src/ergogen_footprint_converter/main.py +++ b/src/ergogen_footprint_converter/main.py @@ -11,7 +11,7 @@ from kiutils.footprint import Footprint def main (args) -> None: check_args(args) - print("> Converting " + args["in_file"].__str__()) + print("> Input: " + args["in_file"].absolute().__str__()) converted = convert(args["in_file"]) @@ -22,10 +22,16 @@ def main (args) -> None: print("> Output written! Exiting...") def convert(in_file: Path) -> str: + print("> Parsing input...") + parsed = Footprint.from_file(in_file.absolute().__str__()) + print("> Input parsed!") + converter = Converter(parsed) + print("> Converting...") + return converter.convert() @@ -33,7 +39,7 @@ def write_output (output: str, in_file: Path, out_dir: Path) -> None: filename = in_file.name.split('.')[0] + ".js" out_file = out_dir / filename - print("> Writing output to " + out_file.__str__()) + print("> Writing output to " + out_file.absolute().__str__()) with open(out_file, 'w') as file: file.writelines(output) diff --git a/tests/integration/data/simple/promicro.js b/tests/integration/data/simple/promicro.js index fc11a5c..fea8bb9 100644 --- a/tests/integration/data/simple/promicro.js +++ b/tests/integration/data/simple/promicro.js @@ -1,9 +1,3 @@ -// Arduino ProMicro atmega32u4au -// Params -// orientation: default is down -// if down, power led will face the pcb -// if up, power led will face away from pcb - module.exports = { params: { designator: 'MCU', @@ -126,4 +120,4 @@ module.exports = { ` } } -} \ No newline at end of file +} diff --git a/tests/unit/test_converter.py b/tests/unit/test_converter.py index 16fa624..c5d7b62 100644 --- a/tests/unit/test_converter.py +++ b/tests/unit/test_converter.py @@ -1,8 +1,43 @@ from ergogen_footprint_converter.converter import Converter -def test_convert(): - input = "" - converter = Converter(input) +import pytest + +from kiutils.footprint import Footprint + +@pytest.fixture +def footprint(): + return Footprint.create_new("test", "test") + +@pytest.fixture +def template() -> str: + return open("res/template.js").read() + +def test_empty(footprint, template): + converter = Converter(footprint) + res = converter.convert() + expected = """ + (module test) + """ + + assert res == expected + +def test_replace_template(template: str): + replacements = { + "{% params %}": "one", + "{% main %}": "two", + "{% captions %}": "three", + "{% pins %}": "four" + } + + for key in replacements: + template = template.replace(key, replacements[key]) + + res = Converter.replace_template("one", "two", "three", "four") + + assert res == template + + +