Skip to content

Commit

Permalink
test: add unit tests to assert hook_hints are called in hooks
Browse files Browse the repository at this point in the history
Signed-off-by: Tom Carrio <[email protected]>
  • Loading branch information
tcarrio committed Oct 29, 2022
1 parent 6984f83 commit 2325248
Showing 1 changed file with 13 additions and 4 deletions.
17 changes: 13 additions & 4 deletions tests/hooks/test_hook_support.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,26 +7,31 @@
before_hooks,
error_hooks,
)
from unittest.mock import ANY


def test_error_hooks_run_error_method(mock_hook):
# Given
hook_context = HookContext("flag_key", FlagType.BOOLEAN, True, "")
hook_hints = MappingProxyType(dict())
# When
error_hooks(FlagType.BOOLEAN, hook_context, Exception, [mock_hook], {})
error_hooks(FlagType.BOOLEAN, hook_context, Exception, [mock_hook], hook_hints)
# Then
mock_hook.supports_flag_value_type.assert_called_once()
mock_hook.error.assert_called_once()
mock_hook.error.assert_called_with(hook_context, ANY, hook_hints)


def test_before_hooks_run_before_method(mock_hook):
# Given
hook_context = HookContext("flag_key", FlagType.BOOLEAN, True, "")
hook_hints = MappingProxyType(dict())
# When
before_hooks(FlagType.BOOLEAN, hook_context, [mock_hook], {})
before_hooks(FlagType.BOOLEAN, hook_context, [mock_hook], hook_hints)
# Then
mock_hook.supports_flag_value_type.assert_called_once()
mock_hook.before.assert_called_once()
mock_hook.error.assert_called_with(hook_context, hook_hints)


def test_after_hooks_run_after_method(mock_hook):
Expand All @@ -35,20 +40,24 @@ def test_after_hooks_run_after_method(mock_hook):
flag_evaluation_details = FlagEvaluationDetails(
hook_context.flag_key, "val", "unknown"
)
hook_hints = MappingProxyType(dict())
# When
after_hooks(
FlagType.BOOLEAN, hook_context, flag_evaluation_details, [mock_hook], {}
FlagType.BOOLEAN, hook_context, flag_evaluation_details, [mock_hook], hook_hints
)
# Then
mock_hook.supports_flag_value_type.assert_called_once()
mock_hook.after.assert_called_once()
mock_hook.error.assert_called_with(hook_context, flag_evaluation_details, hook_hints)


def test_finally_after_hooks_run_finally_after_method(mock_hook):
# Given
hook_context = HookContext("flag_key", FlagType.BOOLEAN, True, "")
hook_hints = MappingProxyType(dict())
# When
after_all_hooks(FlagType.BOOLEAN, hook_context, [mock_hook], {})
after_all_hooks(FlagType.BOOLEAN, hook_context, [mock_hook], hook_hints)
# Then
mock_hook.supports_flag_value_type.assert_called_once()
mock_hook.finally_after.assert_called_once()
mock_hook.error.assert_called_with(hook_context, hook_hints)

0 comments on commit 2325248

Please sign in to comment.