# (c) cavaliba.com - tests / demo / cmt check

import os

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

from app_data.data import Instance
from app_data.loader import load_broker
from app_data.permissions import permission_all_keynames


class DemoCmtCheck(TestCase):
    def test_cavaliba_www_check_loads(self):
        filepath = os.path.join(settings.BASE_DIR, "builtin", "demo", "210_cmt.yml")
        with open(filepath) as f:
            datalist = yaml.safe_load(f)

        aaa = {"perms": permission_all_keynames()}
        load_broker(datalist=datalist, aaa=aaa)

        instances = Instance.list_classname(classname="_cmtcheck")
        matched = [i for i in instances if i.displayname == "Cavaliba Website"]
        self.assertEqual(len(matched), 1)

        instance = matched[0]
        self.assertEqual(instance.get_attribute_first("module"), "http")

        conf = yaml.safe_load(instance.get_attribute_first("conf"))
        self.assertEqual(conf["url"], "https://www.cavaliba.com/")
        self.assertEqual(conf["http_code"], 200)
