|
3 | 3 | import pytest |
4 | 4 |
|
5 | 5 | from coverage_comment import activity |
| 6 | +from coverage_comment.settings import Config |
6 | 7 |
|
7 | 8 |
|
8 | 9 | @pytest.mark.parametrize( |
9 | 10 | "event_name, is_default_branch, event_type, is_pr_merged, expected_activity", |
10 | 11 | [ |
11 | | - ("workflow_run", True, None, False, "post_comment"), |
12 | | - ("push", True, None, False, "save_coverage_data_files"), |
13 | | - ("push", False, None, False, "process_pr"), |
14 | | - ("pull_request", True, "closed", True, "save_coverage_data_files"), |
15 | | - ("pull_request", True, None, False, "process_pr"), |
16 | | - ("pull_request", False, None, False, "process_pr"), |
17 | | - ("schedule", False, None, False, "save_coverage_data_files"), |
18 | | - ("merge_group", False, None, False, "save_coverage_data_files"), |
| 12 | + ("workflow_run", True, None, False, activity.Activity.POST_COMMENT), |
| 13 | + ("push", True, None, False, activity.Activity.SAVE_COVERAGE_DATA_FILES), |
| 14 | + ("push", False, None, False, activity.Activity.PROCESS_PR), |
| 15 | + ("pull_request", True, "closed", True, activity.Activity.SAVE_COVERAGE_DATA_FILES), |
| 16 | + ("pull_request", True, None, False, activity.Activity.PROCESS_PR), |
| 17 | + ("pull_request", False, None, False, activity.Activity.PROCESS_PR), |
| 18 | + ("schedule", False, None, False, activity.Activity.SAVE_COVERAGE_DATA_FILES), |
| 19 | + ("merge_group", False, None, False, activity.Activity.SAVE_COVERAGE_DATA_FILES), |
19 | 20 | ], |
20 | 21 | ) |
21 | 22 | def test_find_activity( |
@@ -48,3 +49,61 @@ def test_find_activity_pr_closed_not_merged(): |
48 | 49 | event_type="closed", |
49 | 50 | is_pr_merged=False, |
50 | 51 | ) |
| 52 | + |
| 53 | +BASE_ENV = { |
| 54 | + 'GITHUB_BASE_REF': "", |
| 55 | + 'GITHUB_TOKEN': "foo", |
| 56 | + 'GITHUB_REPOSITORY': "owner/repo", |
| 57 | + 'GITHUB_REF': "master", |
| 58 | + 'GITHUB_EVENT_NAME': "pull_request", |
| 59 | + 'GITHUB_PR_RUN_ID': 123, |
| 60 | + 'GITHUB_STEP_SUMMARY': "step_summary", |
| 61 | +} |
| 62 | + |
| 63 | +def test_find_activity_from_config__as_pr(): |
| 64 | + config = Config.from_environ(BASE_ENV | { |
| 65 | + "EVENTS_AS_PR": "pull_request", |
| 66 | + "EVENTS_AS_COMMENT": "workflow_dispatch,workflow_call", |
| 67 | + "EVENTS_AS_COVERAGE": "push,merge_queue", |
| 68 | + }) |
| 69 | + result = activity.find_activity_from_config( |
| 70 | + event_name="pull_request", |
| 71 | + config=config, |
| 72 | + ) |
| 73 | + assert result == activity.Activity.PROCESS_PR |
| 74 | + |
| 75 | +def test_find_activity_from_config__as_comment(): |
| 76 | + config = Config.from_environ(BASE_ENV | { |
| 77 | + "EVENTS_AS_PR": "pull_request", |
| 78 | + "EVENTS_AS_COMMENT": "workflow_dispatch,workflow_call", |
| 79 | + "EVENTS_AS_COVERAGE": "push,merge_queue", |
| 80 | + }) |
| 81 | + result = activity.find_activity_from_config( |
| 82 | + event_name="workflow_dispatch", |
| 83 | + config=config, |
| 84 | + ) |
| 85 | + assert result == activity.Activity.POST_COMMENT |
| 86 | + |
| 87 | +def test_find_activity_from_config__as_coverage(): |
| 88 | + config = Config.from_environ(BASE_ENV | { |
| 89 | + "EVENTS_AS_PR": "pull_request", |
| 90 | + "EVENTS_AS_COMMENT": "workflow_dispatch,workflow_call", |
| 91 | + "EVENTS_AS_COVERAGE": "push,merge_queue", |
| 92 | + }) |
| 93 | + result = activity.find_activity_from_config( |
| 94 | + event_name="push", |
| 95 | + config=config, |
| 96 | + ) |
| 97 | + assert result == activity.Activity.SAVE_COVERAGE_DATA_FILES |
| 98 | + |
| 99 | +def test_find_activity_from_config__multiple_activities(): |
| 100 | + config = Config.from_environ(BASE_ENV | { |
| 101 | + "EVENTS_AS_PR": "pull_request", |
| 102 | + "EVENTS_AS_COMMENT": "workflow_dispatch,workflow_call", |
| 103 | + "EVENTS_AS_COVERAGE": "pull_request", |
| 104 | + }) |
| 105 | + with pytest.raises(activity.ActivityConfigError): |
| 106 | + activity.find_activity_from_config( |
| 107 | + event_name="pull_request", |
| 108 | + config=config, |
| 109 | + ) |
0 commit comments