mirror of
https://github.com/pytorch/pytorch.git
synced 2025-10-20 21:14:14 +08:00
Pull Request resolved: https://github.com/pytorch/pytorch/pull/152237 Approved by: https://github.com/huydhn, https://github.com/malfet
76 lines
2.7 KiB
Python
76 lines
2.7 KiB
Python
from __future__ import annotations
|
|
|
|
from typing import Any
|
|
from unittest import main, TestCase
|
|
|
|
from tools.alerts.create_alerts import filter_job_names, JobStatus
|
|
|
|
|
|
JOB_NAME = "periodic / linux-xenial-cuda10.2-py3-gcc7-slow-gradcheck / test (default, 2, 2, linux.4xlarge.nvidia.gpu)"
|
|
MOCK_TEST_DATA = [
|
|
{
|
|
"sha": "f02f3046571d21b48af3067e308a1e0f29b43af9",
|
|
"id": 7819529276,
|
|
"conclusion": "failure",
|
|
"htmlUrl": "https://github.com/pytorch/pytorch/runs/7819529276?check_suite_focus=true", # @lint-ignore
|
|
"logUrl": "https://ossci-raw-job-status.s3.amazonaws.com/log/7819529276",
|
|
"durationS": 14876,
|
|
"failureLine": "##[error]The action has timed out.",
|
|
"failureContext": "",
|
|
"failureCaptures": ["##[error]The action has timed out."],
|
|
"failureLineNumber": 83818,
|
|
"repo": "pytorch/pytorch",
|
|
},
|
|
{
|
|
"sha": "d0d6b1f2222bf90f478796d84a525869898f55b6",
|
|
"id": 7818399623,
|
|
"conclusion": "failure",
|
|
"htmlUrl": "https://github.com/pytorch/pytorch/runs/7818399623?check_suite_focus=true", # @lint-ignore
|
|
"logUrl": "https://ossci-raw-job-status.s3.amazonaws.com/log/7818399623",
|
|
"durationS": 14882,
|
|
"failureLine": "##[error]The action has timed out.",
|
|
"failureContext": "",
|
|
"failureCaptures": ["##[error]The action has timed out."],
|
|
"failureLineNumber": 72821,
|
|
"repo": "pytorch/pytorch",
|
|
},
|
|
]
|
|
|
|
|
|
class TestGitHubPR(TestCase):
|
|
# Should fail when jobs are ? ? Fail Fail
|
|
def test_alert(self) -> None:
|
|
modified_data: list[Any] = [{}]
|
|
modified_data.append({})
|
|
modified_data.extend(MOCK_TEST_DATA)
|
|
status = JobStatus(JOB_NAME, modified_data)
|
|
self.assertTrue(status.should_alert())
|
|
|
|
# test filter job names
|
|
def test_job_filter(self) -> None:
|
|
job_names = [
|
|
"pytorch_linux_xenial_py3_6_gcc5_4_test",
|
|
"pytorch_linux_xenial_py3_6_gcc5_4_test2",
|
|
]
|
|
self.assertListEqual(
|
|
filter_job_names(job_names, ""),
|
|
job_names,
|
|
"empty regex should match all jobs",
|
|
)
|
|
self.assertListEqual(filter_job_names(job_names, ".*"), job_names)
|
|
self.assertListEqual(filter_job_names(job_names, ".*xenial.*"), job_names)
|
|
self.assertListEqual(
|
|
filter_job_names(job_names, ".*xenial.*test2"),
|
|
["pytorch_linux_xenial_py3_6_gcc5_4_test2"],
|
|
)
|
|
self.assertListEqual(filter_job_names(job_names, ".*xenial.*test3"), [])
|
|
self.assertRaises(
|
|
Exception,
|
|
lambda: filter_job_names(job_names, "["),
|
|
msg="malformed regex should throw exception",
|
|
)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|