atst/script/render_vue_component.py

53 lines
1.8 KiB
Python

import os
import sys
parent_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), ".."))
sys.path.append(parent_dir)
from jinja2 import Environment, FileSystemLoader
from wtforms.widgets import CheckboxInput, FileInput
from wtforms.fields import StringField, FileField
from wtforms.validators import InputRequired
from wtforms import Form
from atst.filters import iconSvg
env = Environment(loader=FileSystemLoader('templates'))
env.filters['iconSvg'] = iconSvg
# override tojson as identity function to prevent
# wrapping strings in extra quotes
env.filters['tojson'] = lambda x: x
class InitialValueForm(Form):
datafield = StringField(
label="initialvalue value",
default="initialvalue"
)
errorfield = StringField(
label="error",
validators=[InputRequired(message="Test Error Message")]
)
checkbox_template = env.get_template('components/checkbox_input.html')
ci_macro = getattr(checkbox_template.module, 'CheckboxInput')
checkbox_input_form = InitialValueForm()
checkbox_input_form.datafield.widget = CheckboxInput()
rendered_checkbox_macro = ci_macro(checkbox_input_form.datafield)
with open("js/test_templates/checkbox_input_template.html", "w") as fh:
fh.write(rendered_checkbox_macro)
upload_template = env.get_template('components/upload_input.html')
up_macro = getattr(upload_template.module, 'UploadInput')
rendered_upload_macro = up_macro(InitialValueForm().datafield)
with open("js/test_templates/upload_input_template.html", "w") as fh:
fh.write(rendered_upload_macro)
erroredform = InitialValueForm()
erroredform.validate()
rendered_upload_error_macro = up_macro(erroredform.errorfield)
with open("js/test_templates/upload_input_error_template.html", "w") as fh:
fh.write(rendered_upload_error_macro)