Beispiel #1
0
 def parsed_expression(self, context):
     from corehq.apps.userreports.expressions.factory import ExpressionFactory
     expression = ExpressionFactory.from_spec(self.expression, context)
     datatype_transform = transform_from_datatype(self.datatype)
     if self.transform:
         generic_transform = TransformFactory.get_transform(self.transform).get_transform_function()
         inner_getter = TransformedGetter(expression, generic_transform)
     else:
         inner_getter = expression
     return TransformedGetter(inner_getter, datatype_transform)
Beispiel #2
0
 def getter(self):
     transform = transform_for_datatype(self.datatype)
     getter = getter_from_property_reference(self)
     return TransformedGetter(getter, transform)
Beispiel #3
0
 def test_basic(self):
     getter = TransformedGetter(self.base_getter, lambda x: '{}-transformed'.format(x))
     self.assertEqual('bar-transformed', getter({'foo': 'bar'}))
     self.assertEqual('1-transformed', getter({'foo': 1}))
Beispiel #4
0
 def test_no_transform(self):
     getter = TransformedGetter(self.base_getter, None)
     self.assertEqual('bar', getter({'foo': 'bar'}))
     self.assertEqual(1, getter({'foo': 1}))
Beispiel #5
0
 def expression(self):
     transform = transform_from_datatype(self.datatype)
     getter = NestedDictGetter(self.property_path)
     return TransformedGetter(getter, transform)