def test_simple_registry_with_minimal_signature(mocker): cause = mocker.Mock(event=None, diff=None) registry = SimpleRegistry() registry.register(some_fn) handlers = registry.get_cause_handlers(cause) assert len(handlers) == 1 assert handlers[0].fn is some_fn
def test_simple_registry_via_list(mocker): cause = mocker.Mock(event=None, diff=None) registry = SimpleRegistry() handlers = registry.get_cause_handlers(cause) assert isinstance(handlers, collections.abc.Iterable) assert isinstance(handlers, collections.abc.Container) assert isinstance(handlers, collections.abc.Collection) assert not handlers
def test_simple_registry_with_minimal_signature(mocker): cause = mocker.Mock(event=None, diff=None) registry = SimpleRegistry() registry.register(some_fn) with pytest.deprecated_call( match=r"use ResourceChangingRegistry.get_handlers\(\)"): handlers = registry.get_cause_handlers(cause) assert len(handlers) == 1 assert handlers[0].fn is some_fn
def test_simple_registry_via_list(mocker): cause = mocker.Mock(event=None, diff=None) registry = SimpleRegistry() with pytest.deprecated_call(match=r"use ResourceChangingRegistry.get_handlers\(\)"): handlers = registry.get_cause_handlers(cause) assert isinstance(handlers, collections.abc.Iterable) assert isinstance(handlers, collections.abc.Container) assert isinstance(handlers, collections.abc.Collection) assert not handlers
def test_simple_registry_with_minimal_signature(cause_factory): cause = cause_factory() registry = SimpleRegistry() with pytest.deprecated_call(match=r"use @kopf.on"): registry.register(some_fn) with pytest.deprecated_call(match=r"cease using the internal registries"): handlers = registry.get_cause_handlers(cause) assert len(handlers) == 1 assert handlers[0].fn is some_fn
def test_simple_registry_via_list(cause_factory): cause = cause_factory() registry = SimpleRegistry() with pytest.deprecated_call(match=r"cease using the internal registries"): handlers = registry.get_cause_handlers(cause) assert isinstance(handlers, collections.abc.Iterable) assert isinstance(handlers, collections.abc.Container) assert isinstance(handlers, collections.abc.Collection) assert not handlers
def test_simple_registry_with_minimal_signature(cause_factory): cause = cause_factory() registry = SimpleRegistry() with pytest.deprecated_call(match=r"registry.register\(\) is deprecated"): registry.register(some_fn) with pytest.deprecated_call( match=r"use ResourceChangingRegistry.get_handlers\(\)"): handlers = registry.get_cause_handlers(cause) assert len(handlers) == 1 assert handlers[0].fn is some_fn
def test_subhandler_declaratively(mocker): cause = mocker.MagicMock(reason=Reason.UPDATE, diff=None) registry = SimpleRegistry() subregistry_var.set(registry) @kopf.on.this() def fn(**_): pass handlers = registry.get_cause_handlers(cause) assert len(handlers) == 1 assert handlers[0].fn is fn
def test_with_no_hints(mocker): get_fn_id = mocker.patch('kopf.reactor.registries.get_callable_id', return_value='some-id') registry = SimpleRegistry() registry.register(some_fn) handlers = registry.get_cause_handlers(mocker.MagicMock()) assert get_fn_id.called assert len(handlers) == 1 assert handlers[0].fn is some_fn assert handlers[0].id == 'some-id'
def test_with_prefix(mocker): get_fn_id = mocker.patch('kopf.reactor.registries.get_callable_id', return_value='some-id') registry = SimpleRegistry(prefix='some-prefix') registry.register(some_fn) with pytest.deprecated_call(match=r"get_cause_handlers\(\) is deprecated"): handlers = registry.get_cause_handlers(mocker.MagicMock()) assert get_fn_id.called assert len(handlers) == 1 assert handlers[0].fn is some_fn assert handlers[0].id == 'some-prefix/some-id'
def test_with_explicit_id_and_prefix_and_suffix(mocker, field): get_fn_id = mocker.patch('kopf.reactor.registries.get_callable_id', return_value='some-id') diff = [('add', ('some-field', 'sub-field'), 'old', 'new')] registry = SimpleRegistry(prefix='some-prefix') registry.register(some_fn, id='explicit-id', field=field) with pytest.deprecated_call(match=r"get_cause_handlers\(\) is deprecated"): handlers = registry.get_cause_handlers(mocker.MagicMock(diff=diff)) assert not get_fn_id.called assert len(handlers) == 1 assert handlers[0].fn is some_fn assert handlers[0].id == 'some-prefix/explicit-id/some-field.sub-field'
def test_with_prefix_and_suffix(mocker, field): get_fn_id = mocker.patch('kopf.reactor.registries.get_callable_id', return_value='some-id') diff = [('add', ('some-field', 'sub-field'), 'old', 'new')] registry = SimpleRegistry(prefix='some-prefix') registry.register(some_fn, field=field) handlers = registry.get_cause_handlers(mocker.MagicMock(diff=diff)) assert get_fn_id.called assert len(handlers) == 1 assert handlers[0].fn is some_fn assert handlers[0].id == 'some-prefix/some-id/some-field.sub-field'
def test_subhandler_declaratively(mocker): cause = mocker.MagicMock(reason=Reason.UPDATE, diff=None) registry = SimpleRegistry() subregistry_var.set(registry) @kopf.on.this() def fn(**_): pass with pytest.deprecated_call( match=r"use ResourceChangingRegistry.get_handlers\(\)"): handlers = registry.get_cause_handlers(cause) assert len(handlers) == 1 assert handlers[0].fn is fn
def test_subhandler_declaratively(parent_handler, cause_factory): cause = cause_factory(reason=Reason.UPDATE) registry = SimpleRegistry() subregistry_var.set(registry) with context([(handler_var, parent_handler)]): @kopf.on.this() def fn(**_): pass with pytest.deprecated_call(match=r"cease using the internal registries"): handlers = registry.get_cause_handlers(cause) assert len(handlers) == 1 assert handlers[0].fn is fn
def test_with_no_hints(mocker, cause_factory): get_fn_id = mocker.patch('kopf.reactor.registries.get_callable_id', return_value='some-id') cause = cause_factory() registry = SimpleRegistry() with pytest.deprecated_call(match=r"registry.register\(\) is deprecated"): registry.register(some_fn) with pytest.deprecated_call(match=r"get_cause_handlers\(\) is deprecated"): handlers = registry.get_cause_handlers(cause) assert get_fn_id.called assert len(handlers) == 1 assert handlers[0].fn is some_fn assert handlers[0].id == 'some-id'
def test_with_prefix(mocker, cause_factory): get_fn_id = mocker.patch('kopf.reactor.registries.get_callable_id', return_value='some-id') cause = cause_factory() registry = SimpleRegistry() with pytest.deprecated_call(match=r"use @kopf.on"): registry.register(some_fn) with pytest.deprecated_call(match=r"cease using the internal registries"): handlers = registry.get_cause_handlers(cause) assert get_fn_id.called assert len(handlers) == 1 assert handlers[0].fn is some_fn assert handlers[0].id == 'some-prefix/some-id'
def test_with_explicit_id_and_prefix_and_suffix(mocker, field, cause_factory): get_fn_id = mocker.patch('kopf.reactor.registries.get_callable_id', return_value='some-id') diff = [('add', ('some-field', 'sub-field'), 'old', 'new')] cause = cause_factory(diff=diff) registry = SimpleRegistry(prefix='some-prefix') with pytest.deprecated_call(match=r"use @kopf.on"): registry.register(some_fn, id='explicit-id', field=field) with pytest.deprecated_call(match=r"cease using the internal registries"): handlers = registry.get_cause_handlers(cause) assert not get_fn_id.called assert len(handlers) == 1 assert handlers[0].fn is some_fn assert handlers[0].id == 'some-prefix/explicit-id/some-field.sub-field'
def test_with_suffix(mocker, field, cause_factory): get_fn_id = mocker.patch('kopf.reactor.registries.get_callable_id', return_value='some-id') diff = [('add', ('some-field', 'sub-field'), 'old', 'new')] cause = cause_factory(diff=diff) registry = SimpleRegistry() with pytest.deprecated_call(match=r"registry.register\(\) is deprecated"): registry.register(some_fn, field=field) with pytest.deprecated_call(match=r"get_cause_handlers\(\) is deprecated"): handlers = registry.get_cause_handlers(cause) assert get_fn_id.called assert len(handlers) == 1 assert handlers[0].fn is some_fn assert handlers[0].id == 'some-id/some-field.sub-field'
def test_with_suffix(mocker, field, cause_factory): get_fn_id = mocker.patch('kopf.reactor.registries.get_callable_id', return_value='some-id') old = {'some-field': {'sub-field': 'old'}} new = {'some-field': {'sub-field': 'new'}} cause = cause_factory(old=old, new=new, body=new) registry = SimpleRegistry() with pytest.deprecated_call(match=r"use @kopf.on"): registry.register(some_fn, field=field) with pytest.deprecated_call(match=r"cease using the internal registries"): handlers = registry.get_cause_handlers(cause) assert get_fn_id.called assert len(handlers) == 1 assert handlers[0].fn is some_fn assert handlers[0].id == 'some-id/some-field.sub-field'
def test_subhandler_imperatively(parent_handler, cause_factory): cause = cause_factory(reason=Reason.UPDATE) registry = SimpleRegistry() subregistry_var.set(registry) def fn(**_): pass with context([(handler_var, parent_handler)]): kopf.register(fn) with pytest.deprecated_call( match=r"use ResourceChangingRegistry.get_handlers\(\)"): handlers = registry.get_cause_handlers(cause) assert len(handlers) == 1 assert handlers[0].fn is fn