#6732 - Fix tests for utilities

This commit is contained in:
Daniel Sheppard 2021-10-28 11:46:55 -05:00
parent 96565c31d9
commit 1902e112f6

View File

@ -5,6 +5,9 @@ from django.test import TestCase
from mptt.fields import TreeForeignKey from mptt.fields import TreeForeignKey
from taggit.managers import TaggableManager from taggit.managers import TaggableManager
from circuits.choices import CircuitStatusChoices
from circuits.filtersets import CircuitFilterSet
from circuits.models import Circuit, Provider, CircuitType
from dcim.choices import * from dcim.choices import *
from dcim.fields import MACAddressField from dcim.fields import MACAddressField
from dcim.filtersets import DeviceFilterSet, SiteFilterSet from dcim.filtersets import DeviceFilterSet, SiteFilterSet
@ -13,6 +16,7 @@ from dcim.models import (
) )
from extras.filters import TagFilter from extras.filters import TagFilter
from extras.models import TaggedItem from extras.models import TaggedItem
from ipam.models import RIR, ASN
from netbox.filtersets import BaseFilterSet from netbox.filtersets import BaseFilterSet
from utilities.filters import ( from utilities.filters import (
MACAddressFilter, MultiValueCharFilter, MultiValueDateFilter, MultiValueDateTimeFilter, MultiValueNumberFilter, MACAddressFilter, MultiValueCharFilter, MultiValueDateFilter, MultiValueDateTimeFilter, MultiValueNumberFilter,
@ -337,10 +341,26 @@ class DynamicFilterLookupExpressionTest(TestCase):
device_filterset = DeviceFilterSet device_filterset = DeviceFilterSet
site_queryset = Site.objects.all() site_queryset = Site.objects.all()
site_filterset = SiteFilterSet site_filterset = SiteFilterSet
circuit_queryset = Circuit.objects.all()
circuit_filterset = CircuitFilterSet
@classmethod @classmethod
def setUpTestData(cls): def setUpTestData(cls):
provider = Provider.objects.create(name='Test Provider', slug='test-provider')
circuit_type = CircuitType.objects.create(name='Test Circuit Type', slug='test-circuit-type')
circuits = (
Circuit(cid='CID12123', provider=provider, type=circuit_type,
status=CircuitStatusChoices.STATUS_ACTIVE, commit_rate=1000),
Circuit(cid='CID12124', provider=provider, type=circuit_type,
status=CircuitStatusChoices.STATUS_ACTIVE, commit_rate=10000),
Circuit(cid='CID12125', provider=provider, type=circuit_type,
status=CircuitStatusChoices.STATUS_ACTIVE, commit_rate=100000)
)
Circuit.objects.bulk_create(circuits)
manufacturers = ( manufacturers = (
Manufacturer(name='Manufacturer 1', slug='manufacturer-1'), Manufacturer(name='Manufacturer 1', slug='manufacturer-1'),
Manufacturer(name='Manufacturer 2', slug='manufacturer-2'), Manufacturer(name='Manufacturer 2', slug='manufacturer-2'),
@ -378,12 +398,25 @@ class DynamicFilterLookupExpressionTest(TestCase):
region.save() region.save()
sites = ( sites = (
Site(name='Site 1', slug='abc-site-1', region=regions[0], asn=65001), Site(name='Site 1', slug='abc-site-1', region=regions[0]),
Site(name='Site 2', slug='def-site-2', region=regions[1], asn=65101), Site(name='Site 2', slug='def-site-2', region=regions[1]),
Site(name='Site 3', slug='ghi-site-3', region=regions[2], asn=65201), Site(name='Site 3', slug='ghi-site-3', region=regions[2]),
) )
Site.objects.bulk_create(sites) Site.objects.bulk_create(sites)
rir = RIR.objects.create(name='RFC 6996', is_private=True)
asns = [
ASN(asn=65001, rir=rir),
ASN(asn=65101, rir=rir),
ASN(asn=65201, rir=rir)
]
ASN.objects.bulk_create(asns)
asns[0].sites.add(sites[0])
asns[1].sites.add(sites[1])
asns[2].sites.add(sites[2])
racks = ( racks = (
Rack(name='Rack 1', site=sites[0]), Rack(name='Rack 1', site=sites[0]),
Rack(name='Rack 2', site=sites[1]), Rack(name='Rack 2', site=sites[1]),
@ -436,21 +469,21 @@ class DynamicFilterLookupExpressionTest(TestCase):
params = {'slug__niew': ['-1']} params = {'slug__niew': ['-1']}
self.assertEqual(SiteFilterSet(params, self.site_queryset).qs.count(), 2) self.assertEqual(SiteFilterSet(params, self.site_queryset).qs.count(), 2)
def test_site_asn_lt(self): def test_circuit_commit_lt(self):
params = {'asn__lt': [65101]} params = {'commit_rate__lt': [10000]}
self.assertEqual(SiteFilterSet(params, self.site_queryset).qs.count(), 1) self.assertEqual(CircuitFilterSet(params, self.circuit_queryset).qs.count(), 1)
def test_site_asn_lte(self): def test_circuit_commit_lte(self):
params = {'asn__lte': [65101]} params = {'commit_rate__lte': [10000]}
self.assertEqual(SiteFilterSet(params, self.site_queryset).qs.count(), 2) self.assertEqual(CircuitFilterSet(params, self.circuit_queryset).qs.count(), 2)
def test_site_asn_gt(self): def test_circuit_commit_gt(self):
params = {'asn__lt': [65101]} params = {'commit_rate__gt': [10000]}
self.assertEqual(SiteFilterSet(params, self.site_queryset).qs.count(), 1) self.assertEqual(CircuitFilterSet(params, self.circuit_queryset).qs.count(), 1)
def test_site_asn_gte(self): def test_circuit_commit_gte(self):
params = {'asn__gte': [65101]} params = {'commit_rate__gte': [10000]}
self.assertEqual(SiteFilterSet(params, self.site_queryset).qs.count(), 2) self.assertEqual(CircuitFilterSet(params, self.circuit_queryset).qs.count(), 2)
def test_site_region_negation(self): def test_site_region_negation(self):
params = {'region__n': ['region-1']} params = {'region__n': ['region-1']}