Files
Netbox-Utilities/netbox_utilities/tests/test_tenant_scope.py
T

40 lines
1.6 KiB
Python

from types import SimpleNamespace
from django.test import SimpleTestCase
from netbox_utilities.tenant_scope import object_matches_tenant, object_matches_tenant_ids
class FakeMeta:
def __init__(self, *field_names):
self.fields = [SimpleNamespace(name=name) for name in field_names]
def get_fields(self):
return self.fields
class TenantScopeTest(SimpleTestCase):
def test_direct_tenant_match(self):
obj = SimpleNamespace(_meta=FakeMeta("tenant"), tenant_id=42)
self.assertTrue(object_matches_tenant(obj, 42))
self.assertFalse(object_matches_tenant(obj, 7))
def test_child_inherits_tenant_from_device(self):
device = SimpleNamespace(_meta=FakeMeta("tenant"), tenant_id=42)
interface = SimpleNamespace(_meta=FakeMeta("device"), device=device)
self.assertTrue(object_matches_tenant(interface, 42))
self.assertFalse(object_matches_tenant(interface, 7))
def test_shared_reference_data_remains_visible(self):
manufacturer = SimpleNamespace(_meta=FakeMeta("name"))
self.assertTrue(object_matches_tenant(manufacturer, 42))
def test_unassigned_tenant_object_is_hidden(self):
obj = SimpleNamespace(_meta=FakeMeta("tenant"), tenant_id=None)
self.assertFalse(object_matches_tenant(obj, 42))
def test_object_matches_any_tenant_in_group_scope(self):
obj = SimpleNamespace(_meta=FakeMeta("tenant"), tenant_id=43)
self.assertTrue(object_matches_tenant_ids(obj, frozenset({42, 43})))
self.assertFalse(object_matches_tenant_ids(obj, frozenset({7, 8})))