Files
ach_ui_dbtl_file_based/tests/test_file_monitor.py
2026-02-02 13:06:07 +05:30

64 lines
2.0 KiB
Python

#!/usr/bin/env python3
"""
Unit tests for file monitor module.
"""
import pytest
from sftp.file_monitor import FileMonitor
class TestFileMonitor:
"""Test FileMonitor functionality."""
def test_parse_filename_valid(self):
"""Test parsing valid ACH filename."""
filename = 'ACH_99944_05122025102947_001.txt'
result = FileMonitor.parse_filename(filename)
assert result['filename'] == 'ACH_99944_05122025102947_001.txt'
assert result['branch'] == '99944'
assert result['day'] == '05'
assert result['month'] == '12'
assert result['year'] == '2025'
assert result['hour'] == '10'
assert result['minute'] == '29'
assert result['second'] == '47'
assert result['sequence'] == '001'
def test_parse_filename_another_date(self):
"""Test parsing filename with different date."""
filename = 'ACH_12345_19012026103217_002.txt'
result = FileMonitor.parse_filename(filename)
assert result['branch'] == '12345'
assert result['day'] == '19'
assert result['month'] == '01'
assert result['year'] == '2026'
assert result['sequence'] == '002'
assert result['timestamp'] == '19/01/2026 10:32:17'
def test_parse_filename_invalid(self):
"""Test parsing invalid filename."""
filename = 'invalid_filename.txt'
result = FileMonitor.parse_filename(filename)
assert result == {}
def test_parse_filename_invalid_extension(self):
"""Test parsing filename with wrong extension."""
filename = 'ACH_99944_05122025102947_001.csv'
result = FileMonitor.parse_filename(filename)
assert result == {}
def test_parse_filename_missing_parts(self):
"""Test parsing filename with missing parts."""
filename = 'ACH_99944_05122025_001.txt' # Missing time parts
result = FileMonitor.parse_filename(filename)
assert result == {}
if __name__ == '__main__':
pytest.main([__file__, '-v'])