mirror of
https://github.com/vlang/v.git
synced 2023-08-10 21:13:21 +03:00
toml: parse formatting (#12374)
This commit is contained in:
28
vlib/toml/tests/array_of_tables_1_level_test.v
Normal file
28
vlib/toml/tests/array_of_tables_1_level_test.v
Normal file
@ -0,0 +1,28 @@
|
||||
import os
|
||||
import toml
|
||||
|
||||
const (
|
||||
toml_table_text = '
|
||||
[[products]]
|
||||
name = "Hammer"
|
||||
sku = 738594937
|
||||
|
||||
[[products]] # empty table within the array
|
||||
|
||||
[[products]]
|
||||
name = "Nail"
|
||||
sku = 284758393
|
||||
|
||||
color = "gray"'
|
||||
)
|
||||
|
||||
fn test_tables() {
|
||||
mut toml_doc := toml.parse(toml_table_text) or { panic(err) }
|
||||
|
||||
toml_json := toml_doc.to_json()
|
||||
|
||||
eprintln(toml_json)
|
||||
assert toml_json == os.read_file(
|
||||
os.real_path(os.join_path(os.dir(@FILE), 'testdata', os.file_name(@FILE).all_before_last('.'))) +
|
||||
'.out') or { panic(err) }
|
||||
}
|
@ -13,7 +13,6 @@ const (
|
||||
]
|
||||
invalid_exceptions = [
|
||||
// Table
|
||||
'table/rrbrace.toml',
|
||||
'table/duplicate-table-array2.toml',
|
||||
'table/duplicate.toml',
|
||||
'table/array-implicit.toml',
|
||||
@ -23,7 +22,6 @@ const (
|
||||
'table/duplicate-table-array.toml',
|
||||
// Array
|
||||
'array/tables-1.toml',
|
||||
//'array/missing-separator.toml',
|
||||
'array/text-after-array-entries.toml',
|
||||
'array/text-before-array-separator.toml',
|
||||
// Date / Time
|
||||
|
@ -69,19 +69,23 @@ fn test_tables() {
|
||||
|
||||
arr := toml_doc.value('arr') as []toml.Any
|
||||
|
||||
for i := 0; i < arr.len; i++ {
|
||||
entry := (arr[i] as map[string]toml.Any)
|
||||
value = entry.value('t.a.b') or { panic(err) }
|
||||
assert value.int() == i + 1
|
||||
value = entry.value('T.a.b') or { panic(err) }
|
||||
assert value.int() == i + 1
|
||||
}
|
||||
|
||||
arr0 := arr[0] as map[string]toml.Any
|
||||
value = arr0.value('t.a.b') or { panic(err) }
|
||||
assert value.int() == 1
|
||||
|
||||
arr1 := arr[1] as map[string]toml.Any
|
||||
value = arr1.value('T.a.b') or { panic(err) }
|
||||
value = arr0.value('T.a.b') or { panic(err) }
|
||||
assert value.int() == 1
|
||||
|
||||
arr2 := arr[2] as map[string]toml.Any
|
||||
value = arr2.value('t.a.b') or { panic(err) }
|
||||
arr1 := arr[1] as map[string]toml.Any
|
||||
value = arr1.value('t.a.b') or { panic(err) }
|
||||
assert value.int() == 2
|
||||
|
||||
arr3 := arr[3] as map[string]toml.Any
|
||||
value = arr3.value('T.a.b') or { panic(err) }
|
||||
value = arr1.value('T.a.b') or { panic(err) }
|
||||
assert value.int() == 2
|
||||
}
|
||||
|
1
vlib/toml/tests/testdata/array_of_tables_1_level_test.out
vendored
Normal file
1
vlib/toml/tests/testdata/array_of_tables_1_level_test.out
vendored
Normal file
@ -0,0 +1 @@
|
||||
{ "products": [ { "name": "Hammer", "sku": 738594937 }, { }, { "name": "Nail", "sku": 284758393, "color": "gray" } ] }
|
Reference in New Issue
Block a user