# (c) cavaliba.com - tests dataview is_enabled cell (csv must re-import)

from django.conf import settings
from django.test import TestCase

import app_home.cache as cache
from app_data.data import Instance
from app_data.dataview import DataView
from tests import helper

AAA = {"username": "testuser", "perms": ["p_data_admin"]}


class TestDataViewIsEnabledCell(TestCase):
    def setUp(self):
        cache.clear()
        helper.add_schema(
            classname="enabledcell",
            field_definition={"mystring": {"dataformat": "string", "displayname": "MyString"}},
        )
        helper.add_instance(
            classname="_dataview",
            keyname="enabledcell_view",
            fields={
                "target_class": "enabledcell",
                "content": "columns:\n  - keyname\n  - is_enabled\n",
            },
        )
        self.dataview = DataView(keyname="enabledcell_view")

    def _instance(self, enabled):
        instance = Instance(classname="enabledcell")
        instance.merge_import({"classname": "enabledcell", "keyname": "obj01"}, aaa=AAA)
        instance.is_enabled = enabled
        return instance

    def test_csv_cell_is_importable(self):
        for enabled in (True, False):
            cell = self.dataview.cell(self._instance(enabled), "is_enabled", "csv")
            self.assertEqual(cell in settings.TRUE_LIST, enabled)

    def test_ui_cell_keeps_marker(self):
        self.assertEqual(self.dataview.cell(self._instance(True), "is_enabled", "datapoint"), "X")
        self.assertEqual(self.dataview.cell(self._instance(False), "is_enabled", "datapoint"), "")
