update batch
This commit is contained in:
@@ -20,8 +20,9 @@ class Status(Enum):
|
||||
|
||||
class Result(NamedTuple):
|
||||
status: Status
|
||||
cause: Any
|
||||
record: Any
|
||||
input_record: Any
|
||||
output: Any | None = None
|
||||
cause: Any | None = None
|
||||
|
||||
|
||||
class BatchProcessor(AbstractContextManager):
|
||||
@@ -112,7 +113,12 @@ class BatchProcessor(AbstractContextManager):
|
||||
result = self.handler(record)
|
||||
|
||||
self.successes.append(record)
|
||||
return Result(Status.SUCCESS, result, record)
|
||||
|
||||
return Result(
|
||||
status=Status.SUCCESS,
|
||||
output=result,
|
||||
input_record=record,
|
||||
)
|
||||
except Exception as exc:
|
||||
exc_str = f'{type(exc).__name__}: {exc}'
|
||||
logger.debug(f'Record processing exception: {exc_str}')
|
||||
@@ -120,4 +126,8 @@ class BatchProcessor(AbstractContextManager):
|
||||
self.exceptions.append(exc)
|
||||
self.failures.append(record)
|
||||
|
||||
return Result(Status.FAIL, exc_str, record)
|
||||
return Result(
|
||||
status=Status.FAIL,
|
||||
input_record=record,
|
||||
cause=exc,
|
||||
)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[project]
|
||||
name = "layercake"
|
||||
version = "0.6.2"
|
||||
version = "0.6.3"
|
||||
description = "Packages shared dependencies to optimize deployment and ensure consistency across functions."
|
||||
readme = "README.md"
|
||||
authors = [
|
||||
|
||||
@@ -18,11 +18,11 @@ def test_batch():
|
||||
with processor(records=records, handler=record_handler) as p:
|
||||
processed_messages = p.process()
|
||||
|
||||
assert processed_messages == (
|
||||
Result(Status.SUCCESS, True, True),
|
||||
Result(Status.SUCCESS, True, True),
|
||||
Result(Status.FAIL, 'ValueError: Invalid record', False),
|
||||
)
|
||||
assert len(processed_messages) == 3
|
||||
|
||||
fail_record = processed_messages[2]
|
||||
assert isinstance(fail_record.cause, ValueError)
|
||||
assert str(fail_record.cause) == 'Invalid record'
|
||||
|
||||
assert processor.successes == [True, True]
|
||||
assert processor.failures == [False]
|
||||
@@ -30,9 +30,7 @@ def test_batch():
|
||||
with processor(records=(False,), handler=record_handler):
|
||||
processed_messages = processor.process()
|
||||
|
||||
assert processed_messages == (
|
||||
Result(Status.FAIL, 'ValueError: Invalid record', False),
|
||||
)
|
||||
assert processed_messages[0].status == Status.FAIL
|
||||
|
||||
assert processor.successes == []
|
||||
assert processor.failures == [False]
|
||||
@@ -50,7 +48,7 @@ def test_batch_context():
|
||||
processed_messages = processor.process()
|
||||
|
||||
assert processed_messages == (
|
||||
Result(Status.SUCCESS, 4, 2),
|
||||
Result(Status.SUCCESS, 6, 3),
|
||||
Result(Status.SUCCESS, 8, 4),
|
||||
Result(Status.SUCCESS, output=4, input_record=2),
|
||||
Result(Status.SUCCESS, output=6, input_record=3),
|
||||
Result(Status.SUCCESS, output=8, input_record=4),
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user