Контекст:
Например, здесь это две задачи:
- Задание А: Написание 1 страницы от руки карандашом (здесь указано значение и единица измерения). измерения).
- Задание Б: Ввод страниц с помощью компьютера (оно не содержит значения, но содержит единицу измерения)
Вот моя текущая реализация:
Код: Выделить всё
from django.test import TestCase
from app.myapp.models import MyModel
def convert_units(value, from_model, to_model, unit, conversion_map):
try:
conversion_function = conversion_map[(from_model, to_model)][unit]
return conversion_function(value)
except KeyError:
return None
class ConversionTest(TestCase):
def setUp(self):
self.model_a = MyModel.objects.create(name='writing_by_hand')
self.model_b = MyModel.objects.create(name='typing')
self.conversion_map = {
('writing_by_hand', 'typing'): {
'pages': lambda x: x * 3
},
}
def test_convert_units(self):
value = 1
model_a_to_model_b = convert_units(value, self.model_a.name, self.model_b.name, 'pages', self.conversion_map)
self.assertEqual(model_a_to_model_b, value * 3)
self.assertIsNotNone(model_a_to_model_b)
Подробнее здесь: https://stackoverflow.com/questions/790 ... -in-django