예제 #1
0
 def test_nested_object(t):
     t.assertEqual(
         safe_format('{foo.bar}', dict(foo=dict(bar="123"))),
         '123',
     )
     t.assertEqual(
         safe_format('{foo[bar]}', dict(foo=dict(bar="456"))),
         '456',
     )
예제 #2
0
 def test_nested_object(t):
     t.assertEqual(
         safe_format('{foo.bar}', dict(foo=dict(bar="123"))),
         '123',
     )
     t.assertEqual(
         safe_format('{foo[bar]}', dict(foo=dict(bar="123"))),
         '123',
     )
     t.assertEqual(
         safe_format('{foo[0].ding}', dict(foo=[dict(ding='DONG')])),
         'DONG')
예제 #3
0
def format_template(template_key, payload, fallback=''):
    config = payload['configuration']
    template = config.get(template_key)
    if template is not None:
        fallback = template
        try:
            args = deepcopy(payload)
            args['configuration']['webhook_url'] = '****'
            args['configuration']['webhook_url_override'] = '****'
            return safe_format(template, args)
        except:
            log("WARN Failed to format template %s \"%s\" -" % (template_key, template), sys.exc_info()[1])
    return fallback
예제 #4
0
 def test_convert_values(t):
     t.assertEqual(safe_format('{foo}', dict(foo="a string")), 'a string')
     t.assertEqual(safe_format('{foo}', dict(foo=4711)), '4711')
     t.assertEqual(safe_format('{foo}', dict(foo=None)), 'None')
     t.assertEqual(safe_format('{foo}', dict(foo=True)), 'True')
     t.assertEqual(safe_format('{foo}', dict(foo=[1, 2, 3])), '[1, 2, 3]')
     t.assertEqual(safe_format('{foo}', dict(foo=dict(foo='bar'))),
                   '{"foo": "bar"}')
예제 #5
0
 def test_nested_object_missing(t):
     t.assertEqual(
         safe_format('{foo.bar}', dict(foo=dict())),
         '{foo.bar}',
     )
     t.assertEqual(
         safe_format('{foo.bar}', dict()),
         '{foo.bar}',
     )
     t.assertEqual(
         safe_format('{foo[bar]}', dict()),
         '{foo[bar]}',
     )
     t.assertEqual(safe_format('{foo[0].ding}', dict(foo=[dict(x='DONG')])),
                   '{foo[0].ding}')
     t.assertEqual(safe_format('{foo[0].ding}', dict(foo=[])),
                   '{foo[0].ding}')
     t.assertEqual(safe_format('{foo[0].ding}', dict()), '{foo[0].ding}')
예제 #6
0
 def test_num_placeholder(t):
     t.assertEqual(safe_format('{0}', dict()), '{0}')
     t.assertEqual(safe_format('{buu.5}', dict(buu=[1, 2, 3, 4, 5, 6])),
                   '{buu.5}')
예제 #7
0
 def test_empty_placeholder(t):
     t.assertEqual(safe_format('{0}', dict()), '{0}')
     t.assertEqual(safe_format('A {0} B {1}', dict()), 'A {0} B {1}')
     t.assertEqual(safe_format('A {0} B {x}', dict(x=1)), 'A {0} B 1')
예제 #8
0
 def test_no_attr_access(t):
     t.assertEqual(safe_format('{foo.__class__}', dict(foo="1")),
                   '{foo.__class__}')
예제 #9
0
 def test_without_placeholder(t):
     t.assertEqual(safe_format('foo'), 'foo')
예제 #10
0
 def test_object_index_missing(t):
     t.assertEqual(
         safe_format('{foo}', dict(bar="BAR")),
         '{foo}',
     )
예제 #11
0
 def test_object_index(t):
     t.assertEqual(
         safe_format('{bar}!', dict(bar="BAR")),
         'BAR!',
     )