40 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
	
	
"""Tests for error messages from YAML validation."""
 | 
						|
 | 
						|
import os
 | 
						|
import unittest
 | 
						|
 | 
						|
import WebHostLib.check
 | 
						|
 | 
						|
FACTORIO_YAML="""
 | 
						|
game: Factorio
 | 
						|
Factorio:
 | 
						|
  world_gen:
 | 
						|
    autoplace_controls:
 | 
						|
      coal:
 | 
						|
        richness: 1
 | 
						|
        frequency: {}
 | 
						|
        size: 1
 | 
						|
"""
 | 
						|
 | 
						|
def yamlWithFrequency(f):
 | 
						|
    return FACTORIO_YAML.format(f)
 | 
						|
 | 
						|
 | 
						|
class TestFileValidation(unittest.TestCase):
 | 
						|
    def test_out_of_range(self):
 | 
						|
        results, _ = WebHostLib.check.roll_options({"bob.yaml": yamlWithFrequency(1000)})
 | 
						|
        self.assertIn("between 0 and 6", results["bob.yaml"])
 | 
						|
 | 
						|
    def test_bad_non_numeric(self):
 | 
						|
        results, _ = WebHostLib.check.roll_options({"bob.yaml": yamlWithFrequency("not numeric")})
 | 
						|
        self.assertIn("float", results["bob.yaml"])
 | 
						|
        self.assertIn("int", results["bob.yaml"])
 | 
						|
 | 
						|
    def test_good_float(self):
 | 
						|
        results, _ = WebHostLib.check.roll_options({"bob.yaml": yamlWithFrequency(1.0)})
 | 
						|
        self.assertIs(results["bob.yaml"], True)
 | 
						|
 | 
						|
    def test_good_int(self):
 | 
						|
        results, _ = WebHostLib.check.roll_options({"bob.yaml": yamlWithFrequency(1)})
 | 
						|
        self.assertIs(results["bob.yaml"], True)
 |