Source code for pact_testgen.dialects.django

from jinja2 import Environment, FileSystemLoader, select_autoescape
from pathlib import Path

from pact_testgen.models import TestCase
from pact_testgen.utils import jsondump, to_camel_case, to_query_string, to_snake_case

from .base import BaseDialect


[docs]class Dialect(BaseDialect): def __init__(self): path = Path(__file__).parent / "templates" / "django" env = Environment( loader=FileSystemLoader(searchpath=path), autoescape=select_autoescape() ) env.filters["camel_case"] = to_camel_case env.filters["snake_case"] = to_snake_case env.filters["urlencode"] = to_query_string env.filters["jsondump"] = jsondump self.template_env = env
[docs] def get_setup_function_name(self, test_case: TestCase) -> str: return f"setup_{to_snake_case(test_case.combined_provider_state_names)}"
@property def method_template(self): return self.template_env.get_template("test_methods.jinja") @property def test_case_template(self): return self.template_env.get_template("test_case.jinja") @property def test_file_template(self): return self.template_env.get_template("test_file.jinja") @property def provider_state_template(self): return self.template_env.get_template("provider_states.jinja")