# (c) cavaliba.com - test_schema_displayname_help

from django.test import TestCase

import app_home.cache as cache
from tests import helper


class TestSchemaDisplaynameHelp(TestCase):
    def setUp(self):
        """Reset the app-level cache before each test."""
        cache.clear()

    def test_displayname_help_default_is_empty_string(self):
        schema = helper.add_schema(classname="unittestschema", verbose=False)
        self.assertEqual(schema.displayname_help, "")

    def test_displayname_help_stored_and_returned(self):
        schema = helper.add_schema(
            classname="unittestschema",
            options={"displayname_help": "Human friendly name"},
            verbose=False,
        )
        self.assertEqual(schema.displayname_help, "Human friendly name")

    def test_displayname_help_to_dict_includes_when_set(self):
        schema = helper.add_schema(
            classname="unittestschema", options={"displayname_help": "some help"}, verbose=False
        )
        d = schema.to_dict()
        self.assertEqual(d["_options"]["displayname_help"], "some help")

    def test_displayname_help_to_dict_omits_when_empty(self):
        schema = helper.add_schema(classname="unittestschema", verbose=False)
        d = schema.to_dict()
        self.assertNotIn("displayname_help", d["_options"])
