mirror of
https://github.com/qodo-ai/pr-agent.git
synced 2025-07-03 04:10:49 +08:00
test: rename & add error case
This commit is contained in:
50
tests/unittest/test_github_action_output.py
Normal file
50
tests/unittest/test_github_action_output.py
Normal file
@ -0,0 +1,50 @@
|
||||
import os
|
||||
import json
|
||||
from pr_agent.algo.utils import get_settings, github_action_output
|
||||
|
||||
class TestGitHubOutput:
|
||||
def test_github_action_output_enabled(self, monkeypatch, tmp_path):
|
||||
get_settings().set('GITHUB_ACTION_CONFIG.ENABLE_OUTPUT', True)
|
||||
monkeypatch.setenv('GITHUB_OUTPUT', str(tmp_path / 'output'))
|
||||
output_data = {'key1': {'value1': 1, 'value2': 2}}
|
||||
key_name = 'key1'
|
||||
|
||||
github_action_output(output_data, key_name)
|
||||
|
||||
with open(str(tmp_path / 'output'), 'r') as f:
|
||||
env_value = f.read()
|
||||
|
||||
actual_key = env_value.split('=')[0]
|
||||
actual_data = json.loads(env_value.split('=')[1])
|
||||
|
||||
assert actual_key == key_name
|
||||
assert actual_data == output_data[key_name]
|
||||
|
||||
def test_github_action_output_disabled(self, monkeypatch, tmp_path):
|
||||
get_settings().set('GITHUB_ACTION_CONFIG.ENABLE_OUTPUT', False)
|
||||
monkeypatch.setenv('GITHUB_OUTPUT', str(tmp_path / 'output'))
|
||||
output_data = {'key1': {'value1': 1, 'value2': 2}}
|
||||
key_name = 'key1'
|
||||
|
||||
github_action_output(output_data, key_name)
|
||||
|
||||
assert not os.path.exists(str(tmp_path / 'output'))
|
||||
|
||||
def test_github_action_output_notset(self, monkeypatch, tmp_path):
|
||||
# not set config
|
||||
monkeypatch.setenv('GITHUB_OUTPUT', str(tmp_path / 'output'))
|
||||
output_data = {'key1': {'value1': 1, 'value2': 2}}
|
||||
key_name = 'key1'
|
||||
|
||||
github_action_output(output_data, key_name)
|
||||
|
||||
assert not os.path.exists(str(tmp_path / 'output'))
|
||||
|
||||
def test_github_action_output_error_case(self, monkeypatch, tmp_path):
|
||||
monkeypatch.setenv('GITHUB_OUTPUT', str(tmp_path / 'output'))
|
||||
output_data = None # invalid data
|
||||
key_name = 'key1'
|
||||
|
||||
github_action_output(output_data, key_name)
|
||||
|
||||
assert not os.path.exists(str(tmp_path / 'output'))
|
Reference in New Issue
Block a user