mirror of
https://github.com/wassname/ray.git
synced 2026-07-21 12:50:45 +08:00
65 lines
2.1 KiB
Python
65 lines
2.1 KiB
Python
import jsonschema
|
|
import os
|
|
import sys
|
|
import tempfile
|
|
import unittest
|
|
import urllib
|
|
import yaml
|
|
|
|
from ray.autoscaler.util import prepare_config, validate_config
|
|
from ray.test_utils import recursive_fnmatch
|
|
|
|
RAY_PATH = os.path.abspath(os.path.dirname(os.path.dirname(__file__)))
|
|
CONFIG_PATHS = recursive_fnmatch(
|
|
os.path.join(RAY_PATH, "autoscaler"), "*.yaml")
|
|
|
|
CONFIG_PATHS += recursive_fnmatch(
|
|
os.path.join(RAY_PATH, "tune", "examples"), "*.yaml")
|
|
|
|
|
|
class AutoscalingConfigTest(unittest.TestCase):
|
|
def testValidateDefaultConfig(self):
|
|
for config_path in CONFIG_PATHS:
|
|
with open(config_path) as f:
|
|
config = yaml.safe_load(f)
|
|
config = prepare_config(config)
|
|
try:
|
|
validate_config(config)
|
|
except Exception:
|
|
self.fail("Config did not pass validation test!")
|
|
|
|
def testValidateNetworkConfig(self):
|
|
web_yaml = "https://raw.githubusercontent.com/ray-project/ray/" \
|
|
"master/python/ray/autoscaler/aws/example-full.yaml"
|
|
response = urllib.request.urlopen(web_yaml, timeout=5)
|
|
content = response.read()
|
|
with tempfile.TemporaryFile() as f:
|
|
f.write(content)
|
|
f.seek(0)
|
|
config = yaml.safe_load(f)
|
|
config = prepare_config(config)
|
|
try:
|
|
validate_config(config)
|
|
except Exception:
|
|
self.fail("Config did not pass validation test!")
|
|
|
|
def _test_invalid_config(self, config_path):
|
|
with open(os.path.join(RAY_PATH, config_path)) as f:
|
|
config = yaml.safe_load(f)
|
|
try:
|
|
validate_config(config)
|
|
self.fail("Expected validation to fail for {}".format(config_path))
|
|
except jsonschema.ValidationError:
|
|
pass
|
|
|
|
@unittest.skipIf(sys.platform == "win32", "Failing on Windows.")
|
|
def testInvalidConfig(self):
|
|
self._test_invalid_config(
|
|
os.path.join("tests", "additional_property.yaml"))
|
|
|
|
|
|
if __name__ == "__main__":
|
|
import pytest
|
|
import sys
|
|
sys.exit(pytest.main(["-v", __file__]))
|