# (c) cavaliba.com - tests / ipam / permission gating on all 5 new views (p_ipam_access)

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

import app_home.cache as cache


@override_settings(CAVALIBA_AUTH_MODE="local")
class IpamViewPermissionTest(TestCase):
    def setUp(self):
        cache.clear()
        self.client.logout()

    def test_ip_view_unauthenticated_redirects(self):
        response = self.client.get(reverse("app_ipam:ip_view"), {"ip": "10.1.1.1"})
        self.assertEqual(response.status_code, 302)

    def test_subnet_view_unauthenticated_redirects(self):
        response = self.client.get(reverse("app_ipam:subnet_view"), {"subnet": "10.0.0.0/8"})
        self.assertEqual(response.status_code, 302)

    def test_subnet_list_unauthenticated_redirects(self):
        response = self.client.get(reverse("app_ipam:subnet_list"))
        self.assertEqual(response.status_code, 302)

    def test_vlan_view_unauthenticated_redirects(self):
        response = self.client.get(reverse("app_ipam:vlan_view"), {"vlan": "X"})
        self.assertEqual(response.status_code, 302)

    def test_vlan_list_unauthenticated_redirects(self):
        response = self.client.get(reverse("app_ipam:vlan_list"))
        self.assertEqual(response.status_code, 302)
