12826 make RackType.form_factor required (#17327)

* 12826 make RackType.form_factor required

* 12826 fix tests
This commit is contained in:
Arthur Hanson 2024-08-30 10:43:07 -07:00 committed by GitHub
parent 6db29880cc
commit 8fff4e2a5d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 22 additions and 13 deletions

View File

@ -39,7 +39,7 @@ class Migration(migrations.Migration):
)), )),
('model', models.CharField(max_length=100)), ('model', models.CharField(max_length=100)),
('slug', models.SlugField(max_length=100, unique=True)), ('slug', models.SlugField(max_length=100, unique=True)),
('form_factor', models.CharField(blank=True, max_length=50)), ('form_factor', models.CharField(max_length=50)),
('width', models.PositiveSmallIntegerField(default=19)), ('width', models.PositiveSmallIntegerField(default=19)),
('u_height', models.PositiveSmallIntegerField( ('u_height', models.PositiveSmallIntegerField(
default=42, default=42,

View File

@ -41,12 +41,6 @@ class RackBase(WeightMixin, PrimaryModel):
""" """
Base class for RackType & Rack. Holds Base class for RackType & Rack. Holds
""" """
form_factor = models.CharField(
choices=RackFormFactorChoices,
max_length=50,
blank=True,
verbose_name=_('form factor')
)
width = models.PositiveSmallIntegerField( width = models.PositiveSmallIntegerField(
choices=RackWidthChoices, choices=RackWidthChoices,
default=RackWidthChoices.WIDTH_19IN, default=RackWidthChoices.WIDTH_19IN,
@ -125,6 +119,11 @@ class RackType(RackBase):
Devices are housed within Racks. Each rack has a defined height measured in rack units, and a front and rear face. Devices are housed within Racks. Each rack has a defined height measured in rack units, and a front and rear face.
Each Rack is assigned to a Site and (optionally) a Location. Each Rack is assigned to a Site and (optionally) a Location.
""" """
form_factor = models.CharField(
choices=RackFormFactorChoices,
max_length=50,
verbose_name=_('form factor')
)
manufacturer = models.ForeignKey( manufacturer = models.ForeignKey(
to='dcim.Manufacturer', to='dcim.Manufacturer',
on_delete=models.PROTECT, on_delete=models.PROTECT,
@ -246,6 +245,12 @@ class Rack(ContactsMixin, ImageAttachmentsMixin, RackBase):
'outer_unit', 'mounting_depth', 'weight', 'weight_unit', 'max_weight', 'outer_unit', 'mounting_depth', 'weight', 'weight_unit', 'max_weight',
) )
form_factor = models.CharField(
choices=RackFormFactorChoices,
max_length=50,
blank=True,
verbose_name=_('form factor')
)
rack_type = models.ForeignKey( rack_type = models.ForeignKey(
to='dcim.RackType', to='dcim.RackType',
on_delete=models.PROTECT, on_delete=models.PROTECT,

View File

@ -287,9 +287,9 @@ class RackTypeTest(APIViewTestCases.APIViewTestCase):
Manufacturer.objects.bulk_create(manufacturers) Manufacturer.objects.bulk_create(manufacturers)
rack_types = ( rack_types = (
RackType(manufacturer=manufacturers[0], model='Rack Type 1', slug='rack-type-1'), RackType(manufacturer=manufacturers[0], model='Rack Type 1', slug='rack-type-1', form_factor=RackFormFactorChoices.TYPE_CABINET,),
RackType(manufacturer=manufacturers[0], model='Rack Type 2', slug='rack-type-2'), RackType(manufacturer=manufacturers[0], model='Rack Type 2', slug='rack-type-2', form_factor=RackFormFactorChoices.TYPE_CABINET,),
RackType(manufacturer=manufacturers[0], model='Rack Type 3', slug='rack-type-3'), RackType(manufacturer=manufacturers[0], model='Rack Type 3', slug='rack-type-3', form_factor=RackFormFactorChoices.TYPE_CABINET,),
) )
RackType.objects.bulk_create(rack_types) RackType.objects.bulk_create(rack_types)
@ -298,16 +298,19 @@ class RackTypeTest(APIViewTestCases.APIViewTestCase):
'manufacturer': manufacturers[1].pk, 'manufacturer': manufacturers[1].pk,
'model': 'Rack Type 4', 'model': 'Rack Type 4',
'slug': 'rack-type-4', 'slug': 'rack-type-4',
'form_factor': RackFormFactorChoices.TYPE_CABINET,
}, },
{ {
'manufacturer': manufacturers[1].pk, 'manufacturer': manufacturers[1].pk,
'model': 'Rack Type 5', 'model': 'Rack Type 5',
'slug': 'rack-type-5', 'slug': 'rack-type-5',
'form_factor': RackFormFactorChoices.TYPE_CABINET,
}, },
{ {
'manufacturer': manufacturers[1].pk, 'manufacturer': manufacturers[1].pk,
'model': 'Rack Type 6', 'model': 'Rack Type 6',
'slug': 'rack-type-6', 'slug': 'rack-type-6',
'form_factor': RackFormFactorChoices.TYPE_CABINET,
}, },
] ]

View File

@ -346,9 +346,9 @@ class RackTypeTestCase(ViewTestCases.PrimaryObjectViewTestCase):
Manufacturer.objects.bulk_create(manufacturers) Manufacturer.objects.bulk_create(manufacturers)
rack_types = ( rack_types = (
RackType(manufacturer=manufacturers[0], model='RackType 1', slug='rack-type-1',), RackType(manufacturer=manufacturers[0], model='RackType 1', slug='rack-type-1', form_factor=RackFormFactorChoices.TYPE_CABINET,),
RackType(manufacturer=manufacturers[0], model='RackType 2', slug='rack-type-2',), RackType(manufacturer=manufacturers[0], model='RackType 2', slug='rack-type-2', form_factor=RackFormFactorChoices.TYPE_CABINET,),
RackType(manufacturer=manufacturers[0], model='RackType 3', slug='rack-type-3',), RackType(manufacturer=manufacturers[0], model='RackType 3', slug='rack-type-3', form_factor=RackFormFactorChoices.TYPE_CABINET,),
) )
RackType.objects.bulk_create(rack_types) RackType.objects.bulk_create(rack_types)
@ -369,6 +369,7 @@ class RackTypeTestCase(ViewTestCases.PrimaryObjectViewTestCase):
'weight': 100, 'weight': 100,
'max_weight': 2000, 'max_weight': 2000,
'weight_unit': WeightUnitChoices.UNIT_POUND, 'weight_unit': WeightUnitChoices.UNIT_POUND,
'form_factor': RackFormFactorChoices.TYPE_CABINET,
'comments': 'Some comments', 'comments': 'Some comments',
'tags': [t.pk for t in tags], 'tags': [t.pk for t in tags],
} }