72 lines
2.4 KiB
Python
72 lines
2.4 KiB
Python
"""
|
|
Tests for PlusgiroNormalizer
|
|
|
|
Usage:
|
|
pytest tests/normalize/normalizers/test_plusgiro_normalizer.py -v
|
|
"""
|
|
|
|
import pytest
|
|
from src.normalize.normalizers.plusgiro_normalizer import PlusgiroNormalizer
|
|
|
|
|
|
class TestPlusgiroNormalizer:
|
|
"""Test PlusgiroNormalizer functionality"""
|
|
|
|
@pytest.fixture
|
|
def normalizer(self):
|
|
"""Create normalizer instance for testing"""
|
|
return PlusgiroNormalizer()
|
|
|
|
def test_with_dash_8_digits(self, normalizer):
|
|
"""8-digit Plusgiro with dash should generate variants"""
|
|
result = normalizer.normalize('1234567-8')
|
|
assert '1234567-8' in result
|
|
assert '12345678' in result
|
|
|
|
def test_without_dash_8_digits(self, normalizer):
|
|
"""8-digit Plusgiro without dash should generate dash variant"""
|
|
result = normalizer.normalize('12345678')
|
|
assert '12345678' in result
|
|
assert '1234567-8' in result
|
|
|
|
def test_7_digits(self, normalizer):
|
|
"""7-digit Plusgiro should be handled"""
|
|
result = normalizer.normalize('1234567')
|
|
assert '1234567' in result
|
|
|
|
def test_empty_string(self, normalizer):
|
|
"""Empty string should return empty list"""
|
|
result = normalizer('')
|
|
assert result == []
|
|
|
|
def test_none_value(self, normalizer):
|
|
"""None value should return empty list"""
|
|
result = normalizer(None)
|
|
assert result == []
|
|
|
|
def test_callable_interface(self, normalizer):
|
|
"""Normalizer should be callable via __call__"""
|
|
result = normalizer('1234567-8')
|
|
assert '12345678' in result
|
|
|
|
def test_with_spaces(self, normalizer):
|
|
"""Plusgiro with spaces should be normalized"""
|
|
result = normalizer.normalize('1234567 8')
|
|
assert '12345678' in result
|
|
|
|
def test_9_digits(self, normalizer):
|
|
"""9-digit Plusgiro should be handled"""
|
|
result = normalizer.normalize('123456789')
|
|
assert '123456789' in result
|
|
|
|
def test_with_prefix(self, normalizer):
|
|
"""Plusgiro with PG: prefix should be normalized"""
|
|
result = normalizer.normalize('PG:1234567-8')
|
|
assert '12345678' in result
|
|
|
|
def test_generates_ocr_variants(self, normalizer):
|
|
"""Should generate OCR error variants"""
|
|
result = normalizer.normalize('1234567-8')
|
|
# Should contain multiple variants including OCR corrections
|
|
assert len(result) > 2
|