TST: 100% coverage
This commit is contained in:
parent
02a21306fe
commit
8622e2323d
8 changed files with 166 additions and 79 deletions
|
@ -1,6 +1,7 @@
|
|||
from django.contrib import admin
|
||||
|
||||
from .models import MeasurementUnit, MeasurementType, Container, Material, Color
|
||||
from .models import (MeasurementUnit, MeasurementType, Container, Material,
|
||||
Color)
|
||||
|
||||
|
||||
class MeasurementUnitAdmin(admin.ModelAdmin):
|
||||
|
@ -13,56 +14,52 @@ class MeasurementUnitAdmin(admin.ModelAdmin):
|
|||
|
||||
class MeasurementTypeAdmin(admin.ModelAdmin):
|
||||
list_display = ('name', 'code', 'measurement_type_class', 'description',
|
||||
'measurement_unit_code', 'sort_order')
|
||||
'measurement_unit_code', 'sort_order')
|
||||
list_display_links = ('name',)
|
||||
search_fields = ('name', 'code', 'measurement_type_class',
|
||||
'default_measurement_unit__code', 'description')
|
||||
'default_measurement_unit__code', 'description')
|
||||
list_per_page = 25
|
||||
fields = ('name', 'code', 'measurement_type_class', 'description',
|
||||
'default_measurement_unit', 'sort_order')
|
||||
'default_measurement_unit', 'sort_order')
|
||||
|
||||
def measurement_unit_code(self, obj):
|
||||
if obj.default_measurement_unit:
|
||||
return obj.default_measurement_unit.code
|
||||
return obj.default_measurement_unit
|
||||
dmu = obj.default_measurement_unit
|
||||
return dmu.code if dmu else dmu
|
||||
measurement_unit_code.admin_order_field = 'default_measurement_unit__code'
|
||||
measurement_unit_code.short_description = 'Default Measurement Unit'
|
||||
|
||||
|
||||
class ContainerAdmin(admin.ModelAdmin):
|
||||
list_display = ('name', 'code', 'application', 'color_name', 'material_name',
|
||||
'volume', 'measurement_unit_name', 'sort_order')
|
||||
list_display = ('name', 'code', 'application', 'color_name',
|
||||
'material_name', 'volume', 'measurement_unit_name',
|
||||
'sort_order')
|
||||
list_display_links = ('name',)
|
||||
search_fields = ('name', 'code', 'application', 'color__name',
|
||||
'material__name', 'volume', 'measurement_unit__name')
|
||||
'material__name', 'volume', 'measurement_unit__name')
|
||||
list_per_page = 25
|
||||
fields = ('name', 'code', 'application', 'color', 'material',
|
||||
'volume', 'measurement_unit', 'sort_order')
|
||||
fields = ('name', 'code', 'application', 'color', 'material', 'volume',
|
||||
'measurement_unit', 'sort_order')
|
||||
|
||||
def color_name(self, obj):
|
||||
if obj.color:
|
||||
return obj.color.name
|
||||
return obj.color
|
||||
return obj.color.name if obj.color else obj.color
|
||||
color_name.admin_order_field = 'color__name'
|
||||
color_name.short_description = 'Color'
|
||||
|
||||
def material_name(self, obj):
|
||||
if obj.material:
|
||||
return obj.material.name
|
||||
return obj.material
|
||||
return obj.material.name if obj.material else obj.material
|
||||
material_name.admin_order_field = 'material__name'
|
||||
material_name.short_description = 'Material'
|
||||
|
||||
def measurement_unit_name(self, obj):
|
||||
if obj.measurement_unit:
|
||||
return obj.measurement_unit.name
|
||||
return obj.measurement_unit
|
||||
mu = obj.measurement_unit
|
||||
return mu.name if mu else mu
|
||||
measurement_unit_name.admin_order_field = 'measurement_unit__name'
|
||||
measurement_unit_name.short_description = 'Measurement Unit'
|
||||
|
||||
|
||||
class MaterialAdmin(admin.ModelAdmin):
|
||||
list_display = ('name', 'code', 'material_class', 'description', 'sort_order')
|
||||
list_display = ('name', 'code', 'material_class', 'description',
|
||||
'sort_order')
|
||||
list_display_links = ('name',)
|
||||
search_fields = ('name', 'code', 'material_class', 'description')
|
||||
list_per_page = 25
|
||||
|
|
41
ccdb/misc/tests/test_admin.py
Normal file
41
ccdb/misc/tests/test_admin.py
Normal file
|
@ -0,0 +1,41 @@
|
|||
from django.test import TestCase
|
||||
from django.contrib.admin.sites import AdminSite
|
||||
|
||||
from ..models import MeasurementType, Container
|
||||
from ..admin import MeasurementTypeAdmin, ContainerAdmin
|
||||
from .factories import MeasurementTypeFactory, ContainerFactory
|
||||
|
||||
|
||||
class MeasurementTypeAdminTests(TestCase):
|
||||
def setUp(self):
|
||||
self.mu = MeasurementTypeFactory()
|
||||
self.site = AdminSite()
|
||||
|
||||
def test_list_display(self):
|
||||
admin_obj = MeasurementTypeAdmin(MeasurementType, self.site)
|
||||
self.assertEqual(admin_obj.check(), [])
|
||||
|
||||
mu_code_from_callable = admin_obj.measurement_unit_code(self.mu)
|
||||
self.assertEqual(mu_code_from_callable,
|
||||
self.mu.default_measurement_unit.code)
|
||||
|
||||
|
||||
class ContainerAdminTests(TestCase):
|
||||
def setUp(self):
|
||||
self.container = ContainerFactory()
|
||||
self.site = AdminSite()
|
||||
|
||||
def test_list_display(self):
|
||||
admin_obj = ContainerAdmin(Container, self.site)
|
||||
self.assertEqual(admin_obj.check(), [])
|
||||
|
||||
color_name_from_callable = admin_obj.color_name(self.container)
|
||||
self.assertEqual(color_name_from_callable, self.container.color.name)
|
||||
|
||||
material_name_from_callable = admin_obj.material_name(self.container)
|
||||
self.assertEqual(material_name_from_callable,
|
||||
self.container.material.name)
|
||||
|
||||
mu_name_from_callable = admin_obj.measurement_unit_name(self.container)
|
||||
self.assertEqual(mu_name_from_callable,
|
||||
self.container.measurement_unit.name)
|
Loading…
Add table
Add a link
Reference in a new issue