示例#1
0
 def test_expands_vars_with_braces(self):
   self.assertEqual(
       'foo',
       gclient_eval._gclient_eval('"{bar}"', vars_dict={'bar': 'foo'}))
   self.assertEqual(
       'baz',
       gclient_eval._gclient_eval(
           '"{bar}"',
           vars_dict={'bar': gclient_eval.ConstantString('baz')}))
示例#2
0
 def test_expands_vars(self):
   self.assertEqual(
       'foo',
       gclient_eval._gclient_eval('Var("bar")', vars_dict={'bar': 'foo'}))
   self.assertEqual(
       'baz',
       gclient_eval._gclient_eval(
           'Var("bar")',
           vars_dict={'bar': gclient_eval.ConstantString('baz')}))
 def test_dict_ordered(self):
     for test_case in itertools.permutations(range(4)):
         input_data = ['{'] + ['"%s": "%s",' % (n, n)
                               for n in test_case] + ['}']
         expected = [(str(n), str(n)) for n in test_case]
         result = gclient_eval._gclient_eval(''.join(input_data))
         self.assertEqual(expected, result.items())
示例#4
0
 def test_expands_vars_with_braces(self):
     self.assertEqual(
         'foo',
         gclient_eval._gclient_eval('"{bar}"', vars_dict={'bar': 'foo'}))
示例#5
0
 def test_invalid_call(self):
     with self.assertRaises(ValueError) as cm:
         gclient_eval._gclient_eval('Foo("bar")')
     self.assertIn('Var is the only allowed function', str(cm.exception))
示例#6
0
 def test_call(self):
     self.assertEqual(
         'bar',
         gclient_eval._gclient_eval('Foo("bar")', {'Foo': lambda x: x}))
示例#7
0
 def test_invalid_var(self):
     with self.assertRaises(ValueError) as cm:
         gclient_eval._gclient_eval('"{bar}"', {}, True, '<unknwon>')
     self.assertIn('bar was used as a variable, but was not declared',
                   str(cm.exception))
 def test_plus(self):
     self.assertEqual('foo', gclient_eval._gclient_eval('"f" + "o" + "o"'))
 def test_dict(self):
     self.assertEqual({'a': 'b'}, gclient_eval._gclient_eval('{"a": "b"}'))
示例#10
0
 def test_call(self):
     self.assertEqual(
         '{bar}',
         gclient_eval._gclient_eval('Var("bar")', None, False, '<unknown>'))
示例#11
0
 def test_name_safe(self):
     self.assertEqual(
         True, gclient_eval._gclient_eval('True', None, False, '<unknown>'))
示例#12
0
 def test_dict(self):
     self.assertEqual({'a': 'b'},
                      gclient_eval._gclient_eval('{"a": "b"}', None, False,
                                                 '<unknown>'))
示例#13
0
 def test_list(self):
     self.assertEqual(['a', 'b'],
                      gclient_eval._gclient_eval('["a", "b"]', None, False,
                                                 '<unknown>'))
示例#14
0
 def test_tuple(self):
     self.assertEqual(('a', 'b'),
                      gclient_eval._gclient_eval('("a", "b")', None, False,
                                                 '<unknown>'))
示例#15
0
 def test_str(self):
     self.assertEqual(
         'foo', gclient_eval._gclient_eval('"foo"', None, False,
                                           '<unknown>'))
示例#16
0
 def test_format(self):
     self.assertEqual(
         'foo',
         gclient_eval._gclient_eval('"%s" % "foo"', None, False,
                                    '<unknown>'))
 def test_tuple(self):
     self.assertEqual(('a', 'b'), gclient_eval._gclient_eval('("a", "b")'))
示例#18
0
 def test_str(self):
   self.assertEqual('foo', gclient_eval._gclient_eval('"foo"'))
 def test_name_unsafe(self):
     with self.assertRaises(ValueError) as cm:
         gclient_eval._gclient_eval('UnsafeName')
     self.assertIn('invalid name \'UnsafeName\'', str(cm.exception))
示例#20
0
 def test_tuple(self):
   self.assertEqual(('a', 'b'), gclient_eval._gclient_eval('("a", "b")'))
 def test_not_expression(self):
     with self.assertRaises(SyntaxError) as cm:
         gclient_eval._gclient_eval('def foo():\n  pass')
     self.assertIn('invalid syntax', str(cm.exception))
示例#22
0
 def test_list(self):
   self.assertEqual(['a', 'b'], gclient_eval._gclient_eval('["a", "b"]'))
示例#23
0
 def test_dict_ordered(self):
   for test_case in itertools.permutations(range(4)):
     input_data = ['{'] + ['"%s": "%s",' % (n, n) for n in test_case] + ['}']
     expected = [(str(n), str(n)) for n in test_case]
     result = gclient_eval._gclient_eval(''.join(input_data))
     self.assertEqual(expected, result.items())
示例#24
0
 def test_dict(self):
   self.assertEqual({'a': 'b'}, gclient_eval._gclient_eval('{"a": "b"}'))
示例#25
0
 def test_name_safe(self):
   self.assertEqual(True, gclient_eval._gclient_eval('True'))
示例#26
0
 def test_name_unsafe(self):
   with self.assertRaises(ValueError) as cm:
     gclient_eval._gclient_eval('UnsafeName')
   self.assertIn('invalid name \'UnsafeName\'', str(cm.exception))
示例#27
0
 def test_expands_vars(self):
     self.assertEqual(
         'foo',
         gclient_eval._gclient_eval('Var("bar")', {'bar': 'foo'}, True))
示例#28
0
 def test_invalid_call(self):
   with self.assertRaises(ValueError) as cm:
     gclient_eval._gclient_eval('Foo("bar")')
   self.assertIn('Var is the only allowed function', str(cm.exception))
示例#29
0
 def test_expands_vars(self):
     self.assertEqual(
         'foo',
         gclient_eval._gclient_eval('Var("bar")', vars_dict={'bar': 'foo'}))
示例#30
0
 def test_expands_vars(self):
   self.assertEqual(
       'foo',
       gclient_eval._gclient_eval('Var("bar")', vars_dict={'bar': 'foo'}))
示例#31
0
 def test_invalid_var(self):
     with self.assertRaises(KeyError) as cm:
         gclient_eval._gclient_eval('"{bar}"', vars_dict={})
     self.assertIn('bar was used as a variable, but was not declared',
                   str(cm.exception))
示例#32
0
 def test_expands_vars_with_braces(self):
   self.assertEqual(
       'foo',
       gclient_eval._gclient_eval('"{bar}"', vars_dict={'bar': 'foo'}))
 def test_str(self):
     self.assertEqual('foo', gclient_eval._gclient_eval('"foo"'))
示例#34
0
 def test_invalid_var(self):
   with self.assertRaises(KeyError) as cm:
     gclient_eval._gclient_eval('"{bar}"', vars_dict={})
   self.assertIn('bar was used as a variable, but was not declared',
                 str(cm.exception))
 def test_list(self):
     self.assertEqual(['a', 'b'], gclient_eval._gclient_eval('["a", "b"]'))
示例#36
0
 def test_plus(self):
   self.assertEqual('foo', gclient_eval._gclient_eval('"f" + "o" + "o"'))
 def test_name_safe(self):
     self.assertEqual(True, gclient_eval._gclient_eval('True'))
示例#38
0
 def test_format(self):
   self.assertEqual('foo', gclient_eval._gclient_eval('"%s" % "foo"'))
 def test_call(self):
     self.assertEqual('{bar}', gclient_eval._gclient_eval('Var("bar")'))
示例#40
0
 def test_not_expression(self):
   with self.assertRaises(SyntaxError) as cm:
     gclient_eval._gclient_eval('def foo():\n  pass')
   self.assertIn('invalid syntax', str(cm.exception))
 def test_format(self):
     self.assertEqual('foo', gclient_eval._gclient_eval('"%s" % "foo"'))
示例#42
0
 def test_not_whitelisted(self):
   with self.assertRaises(ValueError) as cm:
     gclient_eval._gclient_eval('[x for x in [1, 2, 3]]')
   self.assertIn(
       'unexpected AST node: <_ast.ListComp object', str(cm.exception))
 def test_not_whitelisted(self):
     with self.assertRaises(ValueError) as cm:
         gclient_eval._gclient_eval('[x for x in [1, 2, 3]]')
     self.assertIn('unexpected AST node: <_ast.ListComp object',
                   str(cm.exception))
示例#44
0
 def test_expands_vars_with_braces(self):
     self.assertEqual(
         'foo',
         gclient_eval._gclient_eval('"{bar}"', {'bar': 'foo'}, True,
                                    '<unknown>'))