69 lines
2.0 KiB
Python
69 lines
2.0 KiB
Python
import pytest
|
|
from errorfix.rules import Rule
|
|
|
|
|
|
class TestRule:
|
|
def test_rule_creation(self):
|
|
rule = Rule(
|
|
id='test-rule',
|
|
name='Test Rule',
|
|
pattern='TestError: .*',
|
|
fix='Fix it',
|
|
description='A test rule',
|
|
)
|
|
assert rule.id == 'test-rule'
|
|
assert rule.name == 'Test Rule'
|
|
assert rule.pattern == 'TestError: .*'
|
|
assert rule.fix == 'Fix it'
|
|
assert rule.description == 'A test rule'
|
|
assert rule.severity.value == 'error'
|
|
|
|
def test_rule_from_dict(self):
|
|
data = {
|
|
'id': 'test-rule',
|
|
'name': 'Test Rule',
|
|
'pattern': 'TestError: .*',
|
|
'fix': 'Fix it',
|
|
'description': 'A test rule',
|
|
'severity': 'warning',
|
|
'language': 'python',
|
|
'tags': ['test', 'example'],
|
|
'priority': 10,
|
|
}
|
|
rule = Rule.from_dict(data)
|
|
assert rule.id == 'test-rule'
|
|
assert rule.severity.value == 'warning'
|
|
assert rule.language == 'python'
|
|
assert rule.tags == ['test', 'example']
|
|
assert rule.priority == 10
|
|
|
|
def test_rule_to_dict(self):
|
|
rule = Rule(
|
|
id='test-rule',
|
|
name='Test Rule',
|
|
pattern='TestError: .*',
|
|
fix='Fix it',
|
|
description='A test rule',
|
|
severity='warning',
|
|
)
|
|
data = rule.to_dict()
|
|
assert data['id'] == 'test-rule'
|
|
assert data['severity'] == 'warning'
|
|
|
|
def test_rule_with_all_fields(self):
|
|
rule = Rule(
|
|
id='full-rule',
|
|
name=' 'Full Rule',
|
|
pattern='FullError: (?P<msg>.*)',
|
|
fix='Fix {msg}',
|
|
description='A rule with all fields',
|
|
severity='suggestion',
|
|
language='javascript',
|
|
tool='node',
|
|
tags=['tag1', 'tag2'],
|
|
priority=7,
|
|
metadata={'extra': 'data'},
|
|
)
|
|
assert rule.tool == 'node'
|
|
assert rule.metadata == {'extra': 'data'}
|