def testDefaultParseValueLists(self): self.assertEqual(parser.DefaultParseValue('[1, 2, 3]'), [1, 2, 3]) self.assertEqual(parser.DefaultParseValue('[1, "2", 3]'), [1, '2', 3]) self.assertEqual(parser.DefaultParseValue('[1, \'"2"\', 3]'), [1, '"2"', 3]) self.assertEqual(parser.DefaultParseValue('[1, "hello", 3]'), [1, 'hello', 3])
def testDefaultParseValueStrings(self): self.assertEqual(parser.DefaultParseValue('hello'), 'hello') self.assertEqual(parser.DefaultParseValue('path/file.jpg'), 'path/file.jpg') self.assertEqual(parser.DefaultParseValue('hello world'), 'hello world') self.assertEqual(parser.DefaultParseValue('--flag'), '--flag')
def testDefaultParseValueNestedContainers(self): self.assertEqual( parser.DefaultParseValue( '[(A, 2, "3"), 5, {alph: 10.2, beta: "cat"}]'), [('A', 2, '3'), 5, { 'alph': 10.2, 'beta': 'cat' }])
def testDefaultParseValueNumbers(self): self.assertEqual(parser.DefaultParseValue('23'), 23) self.assertEqual(parser.DefaultParseValue('-23'), -23) self.assertEqual(parser.DefaultParseValue('23.0'), 23.0) self.assertIsInstance(parser.DefaultParseValue('23'), int) self.assertIsInstance(parser.DefaultParseValue('23.0'), float) self.assertEqual(parser.DefaultParseValue('23.5'), 23.5) self.assertEqual(parser.DefaultParseValue('-23.5'), -23.5)
def testDefaultParseValueStringNumbers(self): self.assertEqual(parser.DefaultParseValue("'23'"), '23') self.assertEqual(parser.DefaultParseValue("'23.0'"), '23.0') self.assertEqual(parser.DefaultParseValue("'23.5'"), '23.5') self.assertEqual(parser.DefaultParseValue('"23"'), '23') self.assertEqual(parser.DefaultParseValue('"23.0"'), '23.0') self.assertEqual(parser.DefaultParseValue('"23.5"'), '23.5')
def testDefaultParseValueSpecialStrings(self): self.assertEqual(parser.DefaultParseValue('-'), '-') self.assertEqual(parser.DefaultParseValue('--'), '--') self.assertEqual(parser.DefaultParseValue('---'), '---') self.assertEqual(parser.DefaultParseValue('----'), '----') self.assertEqual(parser.DefaultParseValue('None'), None) self.assertEqual(parser.DefaultParseValue("'None'"), 'None')
def testDefaultParseValueQuotedStrings(self): self.assertEqual(parser.DefaultParseValue("'hello'"), 'hello') self.assertEqual(parser.DefaultParseValue("'hello world'"), 'hello world') self.assertEqual(parser.DefaultParseValue("'--flag'"), '--flag') self.assertEqual(parser.DefaultParseValue('"hello"'), 'hello') self.assertEqual(parser.DefaultParseValue('"hello world"'), 'hello world') self.assertEqual(parser.DefaultParseValue('"--flag"'), '--flag')
def testDefaultParseValueQuotedStringNumbers(self): self.assertEqual(parser.DefaultParseValue('"\'123\'"'), "'123'")
def testDefaultParseValueDict(self): self.assertEqual(parser.DefaultParseValue('{"abc": 5, "123": 1}'), { 'abc': 5, '123': 1 })
def testDefaultParseValueSyntaxError(self): # If it can't be parsed, we treat it as a string. self.assertEqual(parser.DefaultParseValue('"'), '"')
def testDefaultParseValueBadLiteral(self): # If it can't be parsed, we treat it as a string. This behavior may change. self.assertEqual(parser.DefaultParseValue('[(A, 2, "3"), 5'), '[(A, 2, "3"), 5') self.assertEqual(parser.DefaultParseValue('x=10'), 'x=10')
def testDefaultParseValueComments(self): self.assertEqual(parser.DefaultParseValue('"0#comments"'), '0#comments') # Comments are stripped. This behavior may change in the future. self.assertEqual(parser.DefaultParseValue('0#comments'), 0)
def testDefaultParseValueBareWordsTuple(self): self.assertEqual(parser.DefaultParseValue('(one, 2, "3")'), ('one', 2, '3')) self.assertEqual(parser.DefaultParseValue('one, "2", 3'), ('one', '2', 3))
def testDefaultParseValueBool(self): self.assertEqual(parser.DefaultParseValue('True'), True) self.assertEqual(parser.DefaultParseValue('False'), False)
def testDefaultParseValueNone(self): self.assertEqual(parser.DefaultParseValue('None'), None)
def testDefaultParseValueOtherNumbers(self): self.assertEqual(parser.DefaultParseValue('1e5'), 100000.0)
def testDefaultParseValueIgnoreBinOp(self): self.assertEqual(parser.DefaultParseValue('2017-10-10'), '2017-10-10') self.assertEqual(parser.DefaultParseValue('1+1'), '1+1')
def testDefaultParseValueBareWordsLists(self): self.assertEqual(parser.DefaultParseValue('[one, 2, "3"]'), ['one', 2, '3'])