# (c) cavaliba.com - test / views / ipam_subnet instance_list hardcoded columns hack

from django.test import TestCase, override_settings
from django.urls import reverse

import app_home.cache as cache
from tests import helper


class ViewsIpamSubnetListTest(TestCase):
    def setUp(self):
        cache.clear()

    @override_settings(CAVALIBA_AUTH_MODE="unittest")
    def test_default_dataview_shows_subnet_columns(self):
        helper.add_admin_user(login="unittest")
        helper.add_instance(
            classname="ipam_subnet",
            keyname="203.0.9.0/24",
            fields={"description": "list hack test subnet"},
        )

        response = self.client.get(
            reverse("app_data:instance_list", kwargs={"classname": "ipam_subnet"})
        )

        self.assertEqual(response.status_code, 200)
        self.assertContains(response, "203.0.9.0/24")
        self.assertContains(response, "list hack test subnet")
        self.assertContains(response, "Occupancy")

    @override_settings(CAVALIBA_AUTH_MODE="unittest")
    def test_other_schema_list_unaffected(self):
        helper.add_admin_user(login="unittest")
        helper.add_schema(classname="notipam", displayname="Not IPAM")
        helper.add_instance(classname="notipam", keyname="obj1")

        response = self.client.get(
            reverse("app_data:instance_list", kwargs={"classname": "notipam"})
        )

        self.assertEqual(response.status_code, 200)
        self.assertNotContains(response, "Occupancy")
