test_step.py 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. import sys
  2. from unittest.mock import patch
  3. import pytest
  4. from ray_release.bazel import bazel_runfile
  5. from ray_release.buildkite.step import get_step, get_step_for_test_group
  6. from ray_release.configs.global_config import init_global_config
  7. from ray_release.test import Test
  8. init_global_config(bazel_runfile("release/ray_release/configs/oss_config.yaml"))
  9. def _stub_test(val: dict) -> Test:
  10. """
  11. A helper function to create a test object with a given dictionary.
  12. """
  13. test = Test(
  14. {
  15. "name": "test",
  16. "cluster": {},
  17. }
  18. )
  19. test.update(val)
  20. return test
  21. @patch("ray_release.test.Test.update_from_s3", return_value=None)
  22. def test_get_step(mock):
  23. step = get_step(_stub_test({}), run_id=2)
  24. assert step["label"] == "test (None) (2)"
  25. @patch("ray_release.test.Test.update_from_s3", return_value=None)
  26. def test_get_step_for_test_group(mock):
  27. grouped_tests = {
  28. "group1": [
  29. (_stub_test({"name": "test1", "repeated_run": 3}), False),
  30. (_stub_test({"name": "test2"}), False),
  31. ],
  32. "group2": [(_stub_test({"name": "test3"}), False)],
  33. }
  34. steps = get_step_for_test_group(grouped_tests)
  35. assert len(steps) == 2
  36. assert steps[0]["group"] == "group1"
  37. assert [step["label"] for step in steps[0]["steps"]] == [
  38. "test1 (None) (0)",
  39. "test1 (None) (1)",
  40. "test1 (None) (2)",
  41. "test2 (None) (0)",
  42. ]
  43. if __name__ == "__main__":
  44. sys.exit(pytest.main(["-v", __file__]))