Ejemplo n.º 1
0
def test_empty_children():
    doc = parse('foo { }')
    assert len(doc[0].children) == 0
    assert str(doc) == 'foo'
    doc = parse('foo {}')
    assert len(doc[0].children) == 0
    assert str(doc) == 'foo'
Ejemplo n.º 2
0
def test_messy_identifiers():
    assert str(parse('struct :Mod')) == 'struct :Mod'
    assert str(
        parse('stringref<uint32>[:numFiles] :Files') ==
        'stringref<uint32>[:numFiles] :Files')
    assert str(
        parse('Placeable[:numPlaceables] :Placeables') ==
        'Placeable[:numPlaceables] :Placeables')
    assert str(
        parse('foo :obj:stringTable[:index...]') ==
        'foo :obj:stringTable[:index...]')
Ejemplo n.º 3
0
def test_bare_empty():
    doc = parse('bare')
    assert len(doc) == 1
    node = doc[0]
    assert node.name == 'bare'
    assert len(list(node)) == 0
    assert str(doc) == 'bare'
Ejemplo n.º 4
0
def test_bare_true_arg():
    doc = parse('bare true')
    assert len(doc) == 1
    node = doc[0]
    assert node.name == 'bare'
    assert len(list(node)) == 1
    assert node[0] == True
    assert str(doc) == 'bare true'
Ejemplo n.º 5
0
def test_bare_int_arg():
    doc = parse('bare 123')
    assert len(doc) == 1
    node = doc[0]
    assert node.name == 'bare'
    assert len(list(node)) == 1
    assert node[0] == 123
    assert str(doc) == 'bare 123'
Ejemplo n.º 6
0
def test_bare_hex_arg():
    doc = parse('bare 0xdeadbeef')
    assert len(doc) == 1
    node = doc[0]
    assert node.name == 'bare'
    assert len(list(node)) == 1
    assert node[0] == 0xdeadbeef
    assert str(doc) == 'bare 3735928559'
Ejemplo n.º 7
0
def test_bare_octal_arg():
    doc = parse('bare 0o1237')
    assert len(doc) == 1
    node = doc[0]
    assert node.name == 'bare'
    assert len(list(node)) == 1
    assert node[0] == 0o1237
    assert str(doc) == 'bare 671'
Ejemplo n.º 8
0
def test_bare_float_us_arg():
    doc = parse('bare 12_3.5')
    assert len(doc) == 1
    node = doc[0]
    assert node.name == 'bare'
    assert len(list(node)) == 1
    assert node[0] == 123.5
    assert str(doc) == 'bare 123.5'
Ejemplo n.º 9
0
def test_bare_null_arg():
    doc = parse('bare null')
    assert len(doc) == 1
    node = doc[0]
    assert node.name == 'bare'
    assert len(list(node)) == 1
    assert node[0] is None
    assert str(doc) == 'bare null'
Ejemplo n.º 10
0
def test_bare_false_arg():
    doc = parse('bare false')
    assert len(doc) == 1
    node = doc[0]
    assert node.name == 'bare'
    assert len(list(node)) == 1
    assert node[0] == False
    assert str(doc) == 'bare false'
Ejemplo n.º 11
0
def test_prop():
    doc = parse('bare foo="bar"')
    assert len(doc) == 1
    node = doc[0]
    assert node.name == 'bare'
    assert len(list(node)) == 1
    assert node['foo'] == 'bar'
    assert str(doc) == 'bare foo="bar"'
Ejemplo n.º 12
0
def test_bare_binary_us_arg():
    doc = parse('bare 0b1_010')
    assert len(doc) == 1
    node = doc[0]
    assert node.name == 'bare'
    assert len(list(node)) == 1
    assert node[0] == 0b1010
    assert str(doc) == 'bare 10'
Ejemplo n.º 13
0
def test_commented_child():
    doc = parse('bare { foo; /-bar; baz; }')
    assert len(doc) == 1
    node = doc[0]
    assert node.name == 'bare'
    assert len(list(node)) == 2
    assert node.children[0].name == 'foo'
    assert node.children[1].name == 'baz'
    assert str(doc) == '''bare {
Ejemplo n.º 14
0
def test_from_file():
	os.chdir(os.path.dirname(__file__))
	with open('complex.kdl', 'r') as fp:
		doc = parse(fp)
	if sys.version_info.major == 3:
		with open('complex_formatted.kdl', 'r', encoding='utf-8') as fp:
			assert fp.read() == str(doc)
	else:
		with open('complex_formatted.kdl', 'r') as fp:
			assert fp.read().decode('utf-8') == str(doc)
Ejemplo n.º 15
0
def test_deep_raw_string_name():
    doc = parse('r####"name\\goes\\here"####')
    assert len(doc) == 1
    assert doc[0].name == 'name\\goes\\here'
    assert str(doc) == 'r#"name\\goes\\here"#'
Ejemplo n.º 16
0
def test_bare_deep_raw_string_symbol():
    doc = parse('bare :r####"name\\goes\\here"####')
    assert len(doc) == 1
    assert doc[0][0] == Symbol('name\\goes\\here')
    assert str(doc) == 'bare :r#"name\\goes\\here"#'
Ejemplo n.º 17
0
def test_bare_string_symbol():
    doc = parse('bare :"name goes here"')
    assert len(doc) == 1
    assert doc[0][0] == Symbol('name goes here')
    assert str(doc) == 'bare :"name goes here"'
Ejemplo n.º 18
0
def test_symbol_comparison():
    assert parse('bare :foo')[0][0] == Symbol('foo')
    assert parse('bare :foo')[0][0] == 'foo'
    assert parse('bare :foo')[0][0] != Symbol('bar')
    assert parse('bare :foo')[0][0] != 'bar'
Ejemplo n.º 19
0
def test_bare_plain_symbol():
    assert str(parse('bare :foo') == 'bare :foo')
    assert str(parse('bare :"foo"') == 'bare :foo')
    assert str(parse('bare :r#"foo"#') == 'bare :foo')
Ejemplo n.º 20
0
def test_short_identifier():
    assert str(parse('T') == 'T')
Ejemplo n.º 21
0
def test_commented_empty():
    doc = parse('/-bare')
    assert len(doc) == 0
    assert str(doc) == ''
Ejemplo n.º 22
0
def test_unicode_string():
    assert unicode(parse(u'foo "☜(゚ヮ゚☜)"')) == u'foo "☜(゚ヮ゚☜)"'
Ejemplo n.º 23
0
def test_unicode():
    assert unicode(parse(u'ノード お名前="☜(゚ヮ゚☜)"')) == u'ノード お名前="☜(゚ヮ゚☜)"'
Ejemplo n.º 24
0
def test_unicode_ident():
    assert unicode(parse(u'ノード')) == u'ノード'
Ejemplo n.º 25
0
def test_unicode_prop_ident():
    assert unicode(parse(u'foo お名前=5')) == u'foo お名前=5'
Ejemplo n.º 26
0
def test_commented_args():
    doc = parse('/-bare 1234 "foo"')
    assert len(doc) == 0
    assert str(doc) == ''
Ejemplo n.º 27
0
def test_unicode_ws():
    assert str(parse(u'foo\u3000:bar')) == 'foo :bar'
    assert str(parse(u'foo :bar')) == 'foo :bar'
Ejemplo n.º 28
0
def test_plain_ident():
    assert str(parse('"foo"')) == 'foo'
    assert str(parse('r#"foo"#')) == 'foo'
Ejemplo n.º 29
0
def test_commented_with_children():
    doc = parse('/-bare { }')
    assert len(doc) == 0
    assert str(doc) == ''
Ejemplo n.º 30
0
def test_string_name():
    doc = parse('"name goes here"')
    assert len(doc) == 1
    assert doc[0].name == 'name goes here'
    assert str(doc) == '"name goes here"'