product
This commit is contained in:
63
tests/test_file_monitor.py
Normal file
63
tests/test_file_monitor.py
Normal file
@@ -0,0 +1,63 @@
|
||||
#!/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'])
|
||||
Reference in New Issue
Block a user