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"}},
             }
         )
 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)
Exemple #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
Exemple #4
0
 def setUp(self):
     self.transform = TransformFactory.get_transform({
         "type":
         "custom",
         "custom_type":
         "ethiopian_date_to_gregorian_date",
     }).get_transform_function()
Exemple #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
Exemple #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))
Exemple #7
0
 def setUp(self):
     self.transform = TransformFactory.get_transform({
         "type":
         "number_format",
         "format_string":
         "{0:.0f}"
     }).get_transform_function()
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))
Exemple #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)
Exemple #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"
                 }
             },
         })
Exemple #11
0
 def testValidCustom(self):
     transform = TransformFactory.get_transform({
         "type":
         "custom",
         "custom_type":
         "user_display"
     })
     self.assertTrue(isinstance(transform, CustomTransform))
Exemple #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')
Exemple #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)
Exemple #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')
Exemple #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)
Exemple #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")
Exemple #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>')
Exemple #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)
Exemple #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')
Exemple #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')
Exemple #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")
Exemple #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")
Exemple #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')
Exemple #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')
Exemple #25
0
 def testMissingType(self):
     with self.assertRaises(BadSpecError):
         TransformFactory.get_transform({"custom_type": "user_display"})
Exemple #26
0
 def testInvalidCustomType(self):
     with self.assertRaises(BadSpecError):
         TransformFactory.get_transform({
             "type": "custom",
             "custom_type": "not_valid"
         })
Exemple #27
0
 def testMissingType(self):
     with self.assertRaises(BadSpecError):
         TransformFactory.get_transform({"custom_type": "user_display"})
Exemple #28
0
 def testInvalidType(self):
     with self.assertRaises(BadSpecError):
         TransformFactory.get_transform({"type": "not_a_transform_type", "custom_type": "user_display"})
Exemple #29
0
 def testInvalidType(self):
     with self.assertRaises(BadSpecError):
         TransformFactory.get_transform({
             "type": "not_a_transform_type",
             "custom_type": "user_display"
         })
Exemple #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")
Exemple #31
0
 def get_format_fn(self):
     if self.transform:
         return TransformFactory.get_transform(self.transform).get_transform_function()
     return None
Exemple #32
0
 def test_missing_translation(self):
     transform = TransformFactory.get_transform({
         "type": "translation",
         "translations": {},
     }).get_transform_function()
     self.assertEqual(transform('foo'), 'foo')
Exemple #33
0
 def testInvalidCustomType(self):
     with self.assertRaises(BadSpecError):
         TransformFactory.get_transform({"type": "custom", "custom_type": "not_valid"})
Exemple #34
0
 def testValidCustom(self):
     transform = TransformFactory.get_transform({"type": "custom", "custom_type": "user_display"})
     self.assertTrue(isinstance(transform, CustomTransform))
Exemple #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)
Exemple #36
0
 def setUp(self):
     self.transform = TransformFactory.get_transform(
         {"type": "number_format", "format_string": "{0:.0f}"}
     ).get_transform_function()
Exemple #37
0
 def test_missing_translation(self):
     transform = TransformFactory.get_transform({"type": "translation", "translations": {}}).get_transform_function()
     self.assertEqual(transform("foo"), "foo")