From 3853586abf1af0e5cc764fb994e565c0ef25a922 Mon Sep 17 00:00:00 2001 From: Hermes Agent Date: Thu, 10 Sep 2026 22:30:44 -0300 Subject: [PATCH] feat: agregar template base de Python con tests --- README.md | 19 +++++++++++++++++++ pyproject.toml | 30 ++++++++++++++++++++++++++++++ src/fieldtest/__init__.py | 5 +++++ src/fieldtest/__main__.py | 9 +++++++++ src/fieldtest/core.py | 3 +++ tests/test_core.py | 15 +++++++++++++++ 6 files changed, 81 insertions(+) create mode 100644 pyproject.toml create mode 100644 src/fieldtest/__init__.py create mode 100644 src/fieldtest/__main__.py create mode 100644 src/fieldtest/core.py create mode 100644 tests/test_core.py diff --git a/README.md b/README.md index a486ea8..c302db1 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,22 @@ # FieldTest Datos: creado desde Hermes con tea CLI. + +## Template Python + +Estructura base incluida: + +- `src/fieldtest/` paquete principal +- `tests/` pruebas unitarias (unittest) +- `pyproject.toml` configuración de empaquetado +- `.gitignore` y `LICENSE` + +## Uso rápido + +Ejecutar pruebas: + +`PYTHONPATH=src python3 -m unittest discover -s tests -v` + +Ejecutar módulo: + +`PYTHONPATH=src python3 -m fieldtest` diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..bc46838 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,30 @@ +[build-system] +requires = ["setuptools>=69", "wheel"] +build-backend = "setuptools.build_meta" + +[project] +name = "fieldtest" +version = "0.1.0" +description = "Plantilla base de proyecto Python creada desde Hermes" +readme = "README.md" +requires-python = ">=3.10" +authors = [ + { name = "deimo72" } +] +license = { text = "MIT" } +keywords = ["template", "python", "fieldtest"] +classifiers = [ + "Programming Language :: Python :: 3", + "License :: OSI Approved :: MIT License", + "Operating System :: OS Independent" +] + +[tool.setuptools] +package-dir = {"" = "src"} + +[tool.setuptools.packages.find] +where = ["src"] + +[tool.pytest.ini_options] +testpaths = ["tests"] +pythonpath = ["src"] diff --git a/src/fieldtest/__init__.py b/src/fieldtest/__init__.py new file mode 100644 index 0000000..381aba9 --- /dev/null +++ b/src/fieldtest/__init__.py @@ -0,0 +1,5 @@ +"""Paquete base FieldTest.""" + +from .core import saludar + +__all__ = ["saludar"] diff --git a/src/fieldtest/__main__.py b/src/fieldtest/__main__.py new file mode 100644 index 0000000..44f8ee0 --- /dev/null +++ b/src/fieldtest/__main__.py @@ -0,0 +1,9 @@ +from .core import saludar + + +def main() -> None: + print(saludar("desde FieldTest")) + + +if __name__ == "__main__": + main() diff --git a/src/fieldtest/core.py b/src/fieldtest/core.py new file mode 100644 index 0000000..059b1a9 --- /dev/null +++ b/src/fieldtest/core.py @@ -0,0 +1,3 @@ +def saludar(nombre: str = "mundo") -> str: + """Retorna un saludo simple.""" + return f"Hola, {nombre}!" diff --git a/tests/test_core.py b/tests/test_core.py new file mode 100644 index 0000000..4390f2a --- /dev/null +++ b/tests/test_core.py @@ -0,0 +1,15 @@ +import unittest + +from fieldtest.core import saludar + + +class TestCore(unittest.TestCase): + def test_saludar_default(self): + self.assertEqual(saludar(), "Hola, mundo!") + + def test_saludar_nombre(self): + self.assertEqual(saludar("Hermes"), "Hola, Hermes!") + + +if __name__ == "__main__": + unittest.main()