Skip to content

Commit dc277e8

Browse files
committed
Refactor CompositeProvider.require()
1 parent 7e03646 commit dc277e8

1 file changed

Lines changed: 10 additions & 1 deletion

File tree

ascetic_ddd/faker/domain/providers/_mixins.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -323,7 +323,16 @@ def require(self, criteria: dict[str, typing.Any]) -> None:
323323
self._criteria = new_criteria
324324
# Only reset output if input actually changed
325325
if self._criteria != old_criteria:
326-
self._output = Nothing()
326+
327+
if self._output.is_some():
328+
if not self.is_transient():
329+
state = self.state()
330+
walker = EvaluateWalker()
331+
if not walker.evaluate_sync(new_criteria, state):
332+
raise DiamondUpdateConflict(state, query_to_dict(new_criteria), self.provider_name)
333+
else:
334+
self._output = Nothing()
335+
327336
self._distribute_criteria(new_criteria)
328337
self._on_required.notify(CriteriaRequiredEvent(new_criteria))
329338

0 commit comments

Comments
 (0)