123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- # some tests have been taking from
- # https://github.com/pytest-dev/pluggy/blob/master/testing/test_pluginmanager.py
- # and are licensed under the MIT License.
- import pytest
- def test_pluginmanager(plugin_manager):
- """Tests basic pluggy plugin registration."""
- class A(object):
- pass
- a1, a2 = A(), A()
- plugin_manager.register(a1)
- assert plugin_manager.is_registered(a1)
- plugin_manager.register(a2, "hello")
- assert plugin_manager.is_registered(a2)
- with pytest.raises(ValueError):
- assert plugin_manager.register(a1, internal=True)
- out = plugin_manager.get_plugins()
- assert a1 in out
- assert a2 in out
- assert plugin_manager.get_plugin('hello') == a2
- assert plugin_manager.unregister(a1) == a1
- assert not plugin_manager.is_registered(a1)
- out = plugin_manager.list_name_plugin()
- assert len(out) == 1
- assert out == [("hello", a2)]
- assert plugin_manager.list_name() == ["hello"]
- def test_register_internal(plugin_manager):
- """Tests registration of internal flaskbb plugins."""
- class A(object):
- pass
- a1, a2 = A(), A()
- plugin_manager.register(a1, "notinternal")
- plugin_manager.register(a2, "internal", internal=True)
- assert plugin_manager.is_registered(a2)
- out = plugin_manager.list_name_plugin()
- assert ('notinternal', a1) in out
- assert ('internal', a2) not in out
- out_internal = plugin_manager.list_internal_name_plugin()
- assert ('notinternal', a1) not in out_internal
- assert ('internal', a2) in out_internal
- assert plugin_manager.unregister(a2) == a2
- assert not plugin_manager.list_internal_name_plugin() # should be empty
- def test_set_blocked(plugin_manager):
- class A(object):
- pass
- a1 = A()
- name = plugin_manager.register(a1)
- assert plugin_manager.is_registered(a1)
- assert not plugin_manager.is_blocked(name)
- plugin_manager.set_blocked(name)
- assert plugin_manager.is_blocked(name)
- assert not plugin_manager.is_registered(a1)
- plugin_manager.set_blocked("somename")
- assert plugin_manager.is_blocked("somename")
- assert not plugin_manager.register(A(), "somename")
- plugin_manager.unregister(name="somename")
- assert plugin_manager.is_blocked("somename")
- def test_set_blocked_internal(plugin_manager):
- class A(object):
- pass
- a1 = A()
- name = plugin_manager.register(a1, internal=True)
- assert plugin_manager.is_registered(a1)
- assert not plugin_manager.is_blocked(name)
- plugin_manager.set_blocked(name)
- assert plugin_manager.is_blocked(name)
- assert not plugin_manager.is_registered(a1)
- def test_get_internal_plugin(plugin_manager):
- class A(object):
- pass
- a1, a2 = A(), A()
- plugin_manager.register(a1, "notinternal")
- plugin_manager.register(a2, "internal", internal=True)
- assert plugin_manager.get_plugin('notinternal') == a1
- assert plugin_manager.get_plugin('internal') == a2
- def test_get_internal_name(plugin_manager):
- class A(object):
- pass
- a1, a2 = A(), A()
- plugin_manager.register(a1, "notinternal")
- plugin_manager.register(a2, "internal", internal=True)
- assert plugin_manager.get_name(a1) == "notinternal"
- assert plugin_manager.get_name(a2) == "internal"
|