示例#1
0
 def test_bad_option(self):
     with self.assertRaises(BadSpecError):
         TransformFactory.get_transform(
             {
                 "type": "translation",
                 "mobile_or_web": "neither!",
                 "translations": {"0": "zero", "1": {"en": "one", "es": "uno"}, "2": {"en": "two", "es": "dos"}},
             }
         )
示例#2
0
 def test_string_transform(self):
     transform = TransformFactory.get_transform({
         "type": "custom",
         "custom_type": "days_elapsed_from_date"
     })
     date = (datetime.utcnow() - timedelta(days=5)).strftime('%Y-%m-%d')
     self.assertEqual(transform.transform(date), 5)
示例#3
0
 def get_format_fn(self):
     """
     A function that gets applied to the data just in time before the report is rendered.
     """
     if self.transform:
         return TransformFactory.get_transform(self.transform).get_transform_function()
     return None
示例#4
0
 def setUp(self):
     self.transform = TransformFactory.get_transform({
         "type":
         "custom",
         "custom_type":
         "ethiopian_date_to_gregorian_date",
     }).get_transform_function()
示例#5
0
 def get_format_fn(self):
     """
     A function that gets applied to the data just in time before the report is rendered.
     """
     if self.transform:
         return TransformFactory.get_transform(self.transform).get_transform_function()
     return None
示例#6
0
def test_gregorian_to_ethiopian(self, date_string, expected_result):
    transform = TransformFactory.get_transform({
        "type": "custom",
        "custom_type": "gregorian_date_to_ethiopian_date",
    }).get_transform_function()

    self.assertEqual(expected_result, transform(date_string))
示例#7
0
 def setUp(self):
     self.transform = TransformFactory.get_transform({
         "type":
         "number_format",
         "format_string":
         "{0:.0f}"
     }).get_transform_function()
示例#8
0
def test_gregorian_to_ethiopian(self, date_string, expected_result):
    transform = TransformFactory.get_transform({
        "type": "custom",
        "custom_type": "gregorian_date_to_ethiopian_date",
    }).get_transform_function()

    self.assertEqual(expected_result, transform(date_string))
示例#9
0
 def test_string_transform(self):
     transform = TransformFactory.get_transform({
         "type": "custom",
         "custom_type": "days_elapsed_from_date"
     })
     date = (datetime.utcnow() - timedelta(days=5)).strftime('%Y-%m-%d')
     self.assertEqual(transform.transform(date), 5)
示例#10
0
 def test_bad_option(self):
     with self.assertRaises(BadSpecError):
         TransformFactory.get_transform({
             "type": "translation",
             "mobile_or_web": "neither!",
             "translations": {
                 "0": "zero",
                 "1": {
                     "en": "one",
                     "es": "uno"
                 },
                 "2": {
                     "en": "two",
                     "es": "dos"
                 }
             },
         })
示例#11
0
 def testValidCustom(self):
     transform = TransformFactory.get_transform({
         "type":
         "custom",
         "custom_type":
         "user_display"
     })
     self.assertTrue(isinstance(transform, CustomTransform))
示例#12
0
 def test_basic_translation(self):
     transform = TransformFactory.get_transform({
         "type": "translation",
         "translations": {
             "#0000FF": "Blue"
         },
     }).get_transform_function()
     self.assertEqual(transform('#0000FF'), 'Blue')
     self.assertEqual(transform('#123456'), '#123456')
示例#13
0
 def test_datetime_transform(self):
     transform = TransformFactory.get_transform({
         "type":
         "custom",
         "custom_type":
         "days_elapsed_from_date"
     })
     self.assertEqual(
         transform.transform(datetime.utcnow() - timedelta(days=5)), 5)
示例#14
0
 def test_basic_translation(self):
     transform = TransformFactory.get_transform({
         "type": "translation",
         "translations": {
             "#0000FF": "Blue"
         },
     }).get_transform_function()
     self.assertEqual(transform('#0000FF'), 'Blue')
     self.assertEqual(transform('#123456'), '#123456')
示例#15
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)
示例#16
0
 def test_spanish_language_translation(self):
     transform = TransformFactory.get_transform(
         {
             "type": "translation",
             "translations": {"#0000FF": {"en": "Blue", "es": "Azul"}, "#800080": {"en": "Purple", "es": "Morado"}},
         }
     ).get_transform_function()
     self.assertEqual(transform("#0000FF"), "Azul")
     self.assertEqual(transform("#800080"), "Morado")
     self.assertEqual(transform("#123456"), "#123456")
示例#17
0
 def test_markdown_rendering(self):
     transform = TransformFactory.get_transform({
         "type": "markdown",
     }).get_transform_function()
     self.assertEqual(transform('Hello World!'), '<p>Hello World!</p>')
     self.assertEqual(transform('Hello **strong** world!'), '<p>Hello <strong>strong</strong> world!</p>')
     self.assertEqual(transform('Hello [example](http://www.example.com)!'),
                      '<p>Hello <a href="http://www.example.com">example</a>!</p>')
     self.assertEqual(transform('Hello <script>alert("pwned!");</script>'),
                      '<p>Hello &lt;script&gt;alert(&quot;pwned!&quot;);&lt;/script&gt;</p>')
示例#18
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)
示例#19
0
 def test_dont_translate_for_mobile(self):
     transform = TransformFactory.get_transform({
         "type": "translation",
         "mobile_or_web": "mobile",
         "translations": {
             "#0000FF": "Blue",
             "#800080": [["en", "Purple"], ["es", "Morado"]],  # legacy, mobile-only format
         },
     }).get_transform_function()
     self.assertEqual(transform('#0000FF'), '#0000FF')
     self.assertEqual(transform('#800080'), '#800080')
     self.assertEqual(transform('#123456'), '#123456')
示例#20
0
 def test_dont_translate_for_mobile(self):
     transform = TransformFactory.get_transform({
         "type": "translation",
         "mobile_or_web": "mobile",
         "translations": {
             "#0000FF": "Blue",
             "#800080": [["en", "Purple"], ["es", "Morado"]],  # legacy, mobile-only format
         },
     }).get_transform_function()
     self.assertEqual(transform('#0000FF'), '#0000FF')
     self.assertEqual(transform('#800080'), '#800080')
     self.assertEqual(transform('#123456'), '#123456')
示例#21
0
 def test_multi_translation(self):
     transform = TransformFactory.get_transform({
         "type": "multiple_value_string_translation",
         "translations": {
             "#0000FF": "Blue",
             "#800080": "Purple"
         },
         "delimiter": " "
     }).get_transform_function()
     self.assertEqual(transform('#0000FF #800080'), 'Blue Purple')
     self.assertEqual(transform('#800080 #123456'), 'Purple #123456')
     self.assertEqual(transform('#123 #123456'), '#123 #123456')
     self.assertEqual(transform("#0000FF"), "Blue")
示例#22
0
 def test_multi_translation(self):
     transform = TransformFactory.get_transform({
         "type": "multiple_value_string_translation",
         "translations": {
             "#0000FF": "Blue",
             "#800080": "Purple"
         },
         "delimiter": " "
     }).get_transform_function()
     self.assertEqual(transform('#0000FF #800080'), 'Blue Purple')
     self.assertEqual(transform('#800080 #123456'), 'Purple #123456')
     self.assertEqual(transform('#123 #123456'), '#123 #123456')
     self.assertEqual(transform("#0000FF"), "Blue")
示例#23
0
 def test_spanish_language_translation(self):
     transform = TransformFactory.get_transform({
         "type": "translation",
         "translations": {
             "#0000FF": {
                 "en": "Blue",
                 "es": "Azul",
             },
             "#800080": {
                 "en": "Purple",
                 "es": "Morado",
             }
         },
     }).get_transform_function()
     self.assertEqual(transform('#0000FF'), 'Azul')
     self.assertEqual(transform('#800080'), 'Morado')
     self.assertEqual(transform('#123456'), '#123456')
示例#24
0
 def test_spanish_language_translation(self):
     transform = TransformFactory.get_transform({
         "type": "translation",
         "translations": {
             "#0000FF": {
                 "en": "Blue",
                 "es": "Azul",
             },
             "#800080": {
                 "en": "Purple",
                 "es": "Morado",
             }
         },
     }).get_transform_function()
     self.assertEqual(transform('#0000FF'), 'Azul')
     self.assertEqual(transform('#800080'), 'Morado')
     self.assertEqual(transform('#123456'), '#123456')
示例#25
0
 def testMissingType(self):
     with self.assertRaises(BadSpecError):
         TransformFactory.get_transform({"custom_type": "user_display"})
示例#26
0
 def testInvalidCustomType(self):
     with self.assertRaises(BadSpecError):
         TransformFactory.get_transform({
             "type": "custom",
             "custom_type": "not_valid"
         })
示例#27
0
 def testMissingType(self):
     with self.assertRaises(BadSpecError):
         TransformFactory.get_transform({"custom_type": "user_display"})
示例#28
0
 def testInvalidType(self):
     with self.assertRaises(BadSpecError):
         TransformFactory.get_transform({"type": "not_a_transform_type", "custom_type": "user_display"})
示例#29
0
 def testInvalidType(self):
     with self.assertRaises(BadSpecError):
         TransformFactory.get_transform({
             "type": "not_a_transform_type",
             "custom_type": "user_display"
         })
示例#30
0
 def test_basic_translation(self):
     transform = TransformFactory.get_transform(
         {"type": "translation", "translations": {"#0000FF": "Blue"}}
     ).get_transform_function()
     self.assertEqual(transform("#0000FF"), "Blue")
     self.assertEqual(transform("#123456"), "#123456")
示例#31
0
 def get_format_fn(self):
     if self.transform:
         return TransformFactory.get_transform(self.transform).get_transform_function()
     return None
示例#32
0
 def test_missing_translation(self):
     transform = TransformFactory.get_transform({
         "type": "translation",
         "translations": {},
     }).get_transform_function()
     self.assertEqual(transform('foo'), 'foo')
示例#33
0
 def testInvalidCustomType(self):
     with self.assertRaises(BadSpecError):
         TransformFactory.get_transform({"type": "custom", "custom_type": "not_valid"})
示例#34
0
 def testValidCustom(self):
     transform = TransformFactory.get_transform({"type": "custom", "custom_type": "user_display"})
     self.assertTrue(isinstance(transform, CustomTransform))
示例#35
0
 def test_datetime_transform(self):
     transform = TransformFactory.get_transform({"type": "custom", "custom_type": "days_elapsed_from_date"})
     self.assertEqual(transform.transform(datetime.utcnow() - timedelta(days=5)), 5)
示例#36
0
 def setUp(self):
     self.transform = TransformFactory.get_transform(
         {"type": "number_format", "format_string": "{0:.0f}"}
     ).get_transform_function()
示例#37
0
 def test_missing_translation(self):
     transform = TransformFactory.get_transform({"type": "translation", "translations": {}}).get_transform_function()
     self.assertEqual(transform("foo"), "foo")