test_log_aggregator.py 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. import sys
  2. import pytest
  3. from ray_release.log_aggregator import LogAggregator
  4. def test_compute_stack_pattern():
  5. assert (
  6. LogAggregator(
  7. "\n".join(
  8. [
  9. "haha",
  10. "Traceback (most recent call last):",
  11. ' File "/tmp/something", line 584',
  12. "Exception: yaya45",
  13. "hehe",
  14. ]
  15. )
  16. ).compute_crash_pattern()
  17. == "somethingline Exception: yaya"
  18. )
  19. def test_compute_signature():
  20. assert (
  21. LogAggregator._compute_signature(
  22. [
  23. "Traceback (most recent call last):",
  24. ' File "/tmp/something", line 584',
  25. ' File "/tmp/another", deedeebeeaacfa-abc' "Exception: yaya45",
  26. ]
  27. )
  28. == "somethingline another-abcException: yaya"
  29. )
  30. def test_compute_stack_trace():
  31. trace = [
  32. "Traceback (most recent call last):",
  33. ' File "/tmp/something", line 584, in run_release_test',
  34. " raise pipeline_exception",
  35. "ray_release.exception.JobNoLogsError: Could not obtain logs for the job.",
  36. ]
  37. error_trace = [
  38. "[2023-01-01] ERROR: something is wrong",
  39. "Traceback (most recent call last):",
  40. ' File "/tmp/something", line 584, in run_release_test',
  41. " raise pipeline_exception",
  42. "ray_release.exception.JobStartupTimeout: Cluster did not start.",
  43. ]
  44. error_trace_short = [
  45. "[2023-01-01] ERROR: something is wrong"
  46. ' File "/tmp/something", line 584, in run_release_test',
  47. " raise pipeline_exception",
  48. "ray_release.exception.JobStartupTimeout: Cluster did not start.",
  49. ]
  50. assert LogAggregator._compute_stack_trace(["haha"] + trace + ["hehe"]) == trace
  51. assert (
  52. LogAggregator._compute_stack_trace(["haha"] + error_trace + ["hehe"])
  53. == error_trace
  54. )
  55. assert (
  56. LogAggregator._compute_stack_trace(["haha"] + error_trace_short + ["hehe"])
  57. == error_trace_short
  58. )
  59. assert (
  60. LogAggregator._compute_stack_trace(
  61. ["haha"] + trace + ["w00t"] + error_trace + ["hehe"]
  62. )
  63. == error_trace
  64. )
  65. if __name__ == "__main__":
  66. sys.exit(pytest.main(["-v", __file__]))