Skip to content

Commit d1b0682

Browse files
committed
add more tests
1 parent c168504 commit d1b0682

2 files changed

Lines changed: 55 additions & 97 deletions

File tree

tests/test_3164_parser.py

Lines changed: 55 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
Rfc3164SyslogParser,
3030
SyslogConsumer,
3131
)
32+
from simple_syslog.policy import AllowableDeviation
3233
from simple_syslog.specification import SyslogSpecification
3334

3435
expectedMessageOne = (
@@ -192,13 +193,55 @@ def er(line: str, err: Union[ParseError, DeviationError]) -> None:
192193
assert err_count == 1
193194

194195

196+
def test_parse_lines(file_of_3164_many_ise_txt) -> None:
197+
"""Test that we can parse many lines."""
198+
builder = DefaultBuilder(
199+
specification=SyslogSpecification.RFC_3164,
200+
key_provider=DefaultKeyProvider(),
201+
nil_policy=None,
202+
allowed_deviations=None,
203+
)
204+
parser = Rfc3164SyslogParser(builder)
205+
with file_of_3164_many_ise_txt.open("r") as f:
206+
datasets = read_from_file(f, parser)
207+
assert len(datasets) == 308
208+
209+
210+
def test_parse_lines_mixed_dates(file_of_3164_two_ise_mix_date) -> None:
211+
"""Test that we can parse lines with different date formats mixed in."""
212+
builder = DefaultBuilder(
213+
specification=SyslogSpecification.RFC_3164,
214+
key_provider=DefaultKeyProvider(),
215+
nil_policy=None,
216+
allowed_deviations=None,
217+
)
218+
parser = Rfc3164SyslogParser(builder)
219+
with file_of_3164_two_ise_mix_date.open("r") as f:
220+
datasets = read_from_file(f, parser)
221+
assert len(datasets) == 2
222+
223+
224+
def test_parse_lines_deviations(file_of_3164_many_ise_deviations_txt) -> None:
225+
"""Test that we can parse line with deviations."""
226+
builder = DefaultBuilder(
227+
specification=SyslogSpecification.RFC_3164,
228+
key_provider=DefaultKeyProvider(),
229+
nil_policy=None,
230+
allowed_deviations=[AllowableDeviation.PRIORITY],
231+
)
232+
parser = Rfc3164SyslogParser(builder)
233+
with file_of_3164_many_ise_deviations_txt.open("r") as f:
234+
datasets = read_from_file(f, parser)
235+
assert len(datasets) == 308
236+
237+
195238
def consume_from_file(
196239
f: TextIOBase,
197240
parser: AbstractSyslogParser[SyslogDataSet],
198241
consumer: SyslogConsumer[SyslogDataSet],
199242
error_consumer: Optional[ErrorConsumer] = None,
200243
) -> None:
201-
"""Open parse with callback and optional error consumer."""
244+
"""Parse a file with Callback and optional error consumer."""
202245
if error_consumer is not None:
203246
return parser.consume_stream_with_errors(f, consumer, error_consumer)
204247
return parser.consume_stream(f, consumer)
@@ -207,5 +250,15 @@ def consume_from_file(
207250
def generate_from_file(
208251
f: TextIOBase, parser: AbstractSyslogParser[SyslogDataSet]
209252
) -> Generator[SyslogDataSet, None, None]:
210-
"""Open a Path and return the generator."""
253+
"""Return the generator for a file."""
211254
return parser.generate(f)
255+
256+
257+
def read_from_file(
258+
f: TextIOBase, parser: AbstractSyslogParser[SyslogDataSet]
259+
) -> List[SyslogDataSet]:
260+
"""Return the results of parsing each line of a file."""
261+
datasets = []
262+
for line in f.readlines():
263+
datasets.append(parser.parse(line))
264+
return datasets

tests/tmp.txt

Lines changed: 0 additions & 95 deletions
This file was deleted.

0 commit comments

Comments
 (0)