diff --git a/src/requirements_to_gherkin/models.py b/src/requirements_to_gherkin/models.py new file mode 100644 index 0000000..43cce45 --- /dev/null +++ b/src/requirements_to_gherkin/models.py @@ -0,0 +1,35 @@ +from dataclasses import dataclass, field +from typing import List + + +@dataclass +class Step: + type: str + description: str + + +@dataclass +class Scenario: + name: str + steps: List[Step] = field(default_factory=list) + + def add_step(self, step: Step) -> None: + self.steps.append(step) + + +@dataclass +class Feature: + name: str + elements: List[Scenario] = field(default_factory=list) + + def add_element(self, element: Scenario) -> None: + self.elements.append(element) + + def to_gherkin(self) -> str: + lines = [f"Feature: {self.name}", ""] + for element in self.elements: + lines.append(f" Scenario: {element.name}") + for step in element.steps: + lines.append(f" {step.type} {step.description}") + lines.append("") + return "\n".join(lines)