/tests/functional/configuration/conftest.py

https://github.com/Epistimio/orion
Python | 39 lines | 20 code | 13 blank | 6 comment | 2 complexity | 425790adddc7f96db4b0942263761a51 MD5 | raw file
  1. """Common fixtures and utils for configuration tests."""
  2. from orion.algo.base import BaseAlgorithm
  3. from orion.core.worker.strategy import ParallelStrategy, strategy_factory
  4. def __init__(self, *args, **params):
  5. """Initialize the parent class"""
  6. self.params = params
  7. super(type(self), self).__init__(*args, **params)
  8. def stub(self, *args, **kwargs):
  9. """Just a stub..."""
  10. pass
  11. def configuration(self):
  12. """Configuration based on self.params"""
  13. return {self.__class__.__name__.lower(): self.params}
  14. # Keep pointers to classes so that they are not garbage collected.
  15. algo_classes = []
  16. for char in "ABCDE":
  17. algo_class = type(f"A{char}", (BaseAlgorithm,), {"suggest": stub, "observe": stub})
  18. algo_classes.append(algo_class)
  19. # Keep pointers to classes so that they are not garbage collected.
  20. strategy_classes = []
  21. for char in "ABCDE":
  22. strategy_class = type(
  23. f"S{char}", (ParallelStrategy,), {"observe": stub, "__init__": __init__}
  24. )
  25. strategy_class.configuration = property(configuration)
  26. strategy_classes.append(strategy_class)