Add basic form generation tests
This commit is contained in:
parent
16d8ac0c6d
commit
7fbd57d1b1
1 changed files with 73 additions and 0 deletions
73
src/tests/test_form_config.py
Normal file
73
src/tests/test_form_config.py
Normal file
|
|
@ -0,0 +1,73 @@
|
||||||
|
from unittest.mock import Mock
|
||||||
|
|
||||||
|
from django.db import models
|
||||||
|
|
||||||
|
from servala.core.crd import generate_custom_form_class
|
||||||
|
from servala.core.models import ControlPlaneCRD
|
||||||
|
|
||||||
|
|
||||||
|
def test_custom_model_form_class_is_none_when_no_form_config():
|
||||||
|
crd = Mock(spec=ControlPlaneCRD)
|
||||||
|
service_def = Mock()
|
||||||
|
service_def.form_config = None
|
||||||
|
crd.service_definition = service_def
|
||||||
|
crd.django_model = Mock()
|
||||||
|
|
||||||
|
if not (
|
||||||
|
crd.django_model
|
||||||
|
and crd.service_definition
|
||||||
|
and crd.service_definition.form_config
|
||||||
|
and crd.service_definition.form_config.get("fieldsets")
|
||||||
|
):
|
||||||
|
result = None
|
||||||
|
else:
|
||||||
|
result = generate_custom_form_class(
|
||||||
|
crd.service_definition.form_config, crd.django_model
|
||||||
|
)
|
||||||
|
|
||||||
|
assert result is None
|
||||||
|
|
||||||
|
|
||||||
|
def test_custom_model_form_class_returns_class_when_form_config_exists():
|
||||||
|
|
||||||
|
crd = Mock(spec=ControlPlaneCRD)
|
||||||
|
service_def = Mock()
|
||||||
|
service_def.form_config = {
|
||||||
|
"fieldsets": [
|
||||||
|
{
|
||||||
|
"title": "General",
|
||||||
|
"fields": [
|
||||||
|
{
|
||||||
|
"type": "text",
|
||||||
|
"label": "Name",
|
||||||
|
"controlplane_field_mapping": "name",
|
||||||
|
"required": True,
|
||||||
|
}
|
||||||
|
],
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
crd.service_definition = service_def
|
||||||
|
|
||||||
|
class TestModel(models.Model):
|
||||||
|
name = models.CharField(max_length=100)
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
app_label = "test"
|
||||||
|
|
||||||
|
crd.django_model = TestModel
|
||||||
|
|
||||||
|
if not (
|
||||||
|
crd.django_model
|
||||||
|
and crd.service_definition
|
||||||
|
and crd.service_definition.form_config
|
||||||
|
and crd.service_definition.form_config.get("fieldsets")
|
||||||
|
):
|
||||||
|
result = None
|
||||||
|
else:
|
||||||
|
result = generate_custom_form_class(
|
||||||
|
crd.service_definition.form_config, crd.django_model
|
||||||
|
)
|
||||||
|
|
||||||
|
assert result is not None
|
||||||
|
assert hasattr(result, "form_config")
|
||||||
Loading…
Add table
Add a link
Reference in a new issue