First integration test

This commit is contained in:
Jonas Zeunert
2024-04-26 20:26:30 +02:00
parent 041aaa5d88
commit 254c714c8b
3 changed files with 30 additions and 11 deletions

12
pdm.lock generated
View File

@@ -5,7 +5,7 @@
groups = ["default", "test", "dev"] groups = ["default", "test", "dev"]
strategy = ["cross_platform", "inherit_metadata"] strategy = ["cross_platform", "inherit_metadata"]
lock_version = "4.4.1" lock_version = "4.4.1"
content_hash = "sha256:675d0087ff46f3bfd5b3e026e1cbb3aa6840cff9ac0dcedbb9710d5cfbce38ac" content_hash = "sha256:253ddec953150d944f40ed508f2472dad64d4691281c7a8741683c5fd8c5ccba"
[[package]] [[package]]
name = "argparse" name = "argparse"
@@ -33,7 +33,7 @@ name = "colorama"
version = "0.4.6" version = "0.4.6"
requires_python = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" requires_python = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7"
summary = "Cross-platform colored terminal text." summary = "Cross-platform colored terminal text."
groups = ["dev", "test"] groups = ["default", "dev", "test"]
marker = "sys_platform == \"win32\"" marker = "sys_platform == \"win32\""
files = [ files = [
{file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"},
@@ -57,7 +57,7 @@ name = "iniconfig"
version = "2.0.0" version = "2.0.0"
requires_python = ">=3.7" requires_python = ">=3.7"
summary = "brain-dead simple config-ini parsing" summary = "brain-dead simple config-ini parsing"
groups = ["test"] groups = ["default", "dev", "test"]
files = [ files = [
{file = "iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374"}, {file = "iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374"},
{file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"}, {file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"},
@@ -90,7 +90,7 @@ name = "packaging"
version = "24.0" version = "24.0"
requires_python = ">=3.7" requires_python = ">=3.7"
summary = "Core utilities for Python packages" summary = "Core utilities for Python packages"
groups = ["test"] groups = ["default", "dev", "test"]
files = [ files = [
{file = "packaging-24.0-py3-none-any.whl", hash = "sha256:2ddfb553fdf02fb784c234c7ba6ccc288296ceabec964ad2eae3777778130bc5"}, {file = "packaging-24.0-py3-none-any.whl", hash = "sha256:2ddfb553fdf02fb784c234c7ba6ccc288296ceabec964ad2eae3777778130bc5"},
{file = "packaging-24.0.tar.gz", hash = "sha256:eb82c5e3e56209074766e6885bb04b8c38a0c015d0a30036ebe7ece34c9989e9"}, {file = "packaging-24.0.tar.gz", hash = "sha256:eb82c5e3e56209074766e6885bb04b8c38a0c015d0a30036ebe7ece34c9989e9"},
@@ -122,7 +122,7 @@ name = "pluggy"
version = "1.5.0" version = "1.5.0"
requires_python = ">=3.8" requires_python = ">=3.8"
summary = "plugin and hook calling mechanisms for python" summary = "plugin and hook calling mechanisms for python"
groups = ["test"] groups = ["default", "dev", "test"]
files = [ files = [
{file = "pluggy-1.5.0-py3-none-any.whl", hash = "sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669"}, {file = "pluggy-1.5.0-py3-none-any.whl", hash = "sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669"},
{file = "pluggy-1.5.0.tar.gz", hash = "sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1"}, {file = "pluggy-1.5.0.tar.gz", hash = "sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1"},
@@ -154,7 +154,7 @@ name = "pytest"
version = "8.1.1" version = "8.1.1"
requires_python = ">=3.8" requires_python = ">=3.8"
summary = "pytest: simple powerful testing with Python" summary = "pytest: simple powerful testing with Python"
groups = ["test"] groups = ["default", "dev", "test"]
dependencies = [ dependencies = [
"colorama; sys_platform == \"win32\"", "colorama; sys_platform == \"win32\"",
"iniconfig", "iniconfig",

View File

@@ -25,11 +25,15 @@ classifiers = [
dependencies = [ dependencies = [
"argparse", "argparse",
"pathlib", "pathlib",
"pytest>=8.1.1",
] ]
license = {text = "GPL"} license = {text = "GPL"}
[project.optional-dependencies] [project.optional-dependencies]
dev = ["pylint"] dev = [
"pylint",
"pytest>=8.1.1",
]
test = ["pytest"] test = ["pytest"]
[project.urls] [project.urls]

View File

@@ -1,19 +1,34 @@
from pytest import fixture
import ergogen_footprint_converter.main as main import ergogen_footprint_converter.main as main
def test_simple(tmp_path):
@fixture
def out_dir (tmp_path):
out_dir = tmp_path / "out" out_dir = tmp_path / "out"
out_dir.mkdir() out_dir.mkdir()
return out_dir
@fixture
def call_main (in_name, out_dir):
args = { args = {
"in": "./data/simple/promicro.kicad_mod", "in": "tests/integration/data/simple/" + in_name,
"out": out_dir "out": out_dir
} }
main.main(args) main.main(args)
expected = open("tests/integration/data/simple/promicro.js").readlines() return out_dir / (in_name.split('.')[0] + ".js")
def test_exists(call_main):
out = call_main("promicro.kicad_mod")
assert out.exists()
def test_simple(call_main):
out = call_main("promicro.kicad_mod")
expected = open("tests/integration/data/simple/promicro.js").readlines()
out = out_dir / "promicro.js"
assert out.read_text() == expected assert out.read_text() == expected