44 lines
		
	
	
		
			1017 B
		
	
	
	
		
			V
		
	
	
			
		
		
	
	
			44 lines
		
	
	
		
			1017 B
		
	
	
	
		
			V
		
	
	
| import toml
 | |
| 
 | |
| const toml_text = '
 | |
| [db]
 | |
| enabled = true
 | |
| 
 | |
| [servers]
 | |
|   # Indentation (tabs and/or spaces) is allowed but not required
 | |
|   [servers.alpha]
 | |
|   ip = "10.0.0.1"
 | |
|   dc = "eqdc10"
 | |
| 
 | |
|   [servers.beta]
 | |
|   ip = "10.0.0.2"
 | |
|   dc = "eqdc10"
 | |
| 
 | |
|   [servers.alpha.tricky]
 | |
|   ip = "10.0.0.100"
 | |
| 
 | |
| [firewall.rules.limit]
 | |
| 	ip = "10.0.0.101"
 | |
| 
 | |
| 	[firewall.rules]
 | |
| 	block = true
 | |
| '
 | |
| 
 | |
| fn test_parse() {
 | |
| 	toml_doc := toml.parse_text(toml_text) or { panic(err) }
 | |
| 	// dump(toml_doc.ast)
 | |
| 	// assert false
 | |
| 
 | |
| 	assert toml_doc.value('db.enabled').bool()
 | |
| 	// TODO make this work
 | |
| 	assert toml_doc.value('servers.alpha.ip').string() == '10.0.0.1'
 | |
| 	assert toml_doc.value('servers.alpha.dc').string() == 'eqdc10'
 | |
| 
 | |
| 	assert toml_doc.value('servers.beta.ip').string() == '10.0.0.2'
 | |
| 	assert toml_doc.value('servers.beta.dc').string() == 'eqdc10'
 | |
| 
 | |
| 	assert toml_doc.value('servers.alpha.tricky.ip').string() == '10.0.0.100'
 | |
| 	assert toml_doc.value('firewall.rules.limit.ip').string() == '10.0.0.101'
 | |
| 	assert toml_doc.value('firewall.rules.block').bool() == true
 | |
| }
 |