/tests/core/test_inheritence.py

https://bitbucket.org/prologic/circuits/ · Python · 53 lines · 30 code · 21 blank · 2 comment · 0 complexity · d56aa024a91ed6a319d5917043859a64 MD5 · raw file

  1. #!/usr/bin/env python
  2. import pytest
  3. from circuits import handler, Event, Component
  4. class test(Event):
  5. """test Event"""
  6. class Base(Component):
  7. def test(self):
  8. return "Hello World!"
  9. class App1(Base):
  10. @handler("test", priority=-1)
  11. def test(self):
  12. return "Foobar"
  13. class App2(Base):
  14. @handler("test", override=True)
  15. def test(self):
  16. return "Foobar"
  17. def test_inheritence():
  18. app = App1()
  19. app.start()
  20. x = app.fire(test())
  21. assert pytest.wait_for(x, "result")
  22. v = x.value
  23. assert v == ["Hello World!", "Foobar"]
  24. app.stop()
  25. def test_override():
  26. app = App2()
  27. app.start()
  28. x = app.fire(test())
  29. assert pytest.wait_for(x, "result")
  30. v = x.value
  31. assert v == "Foobar"
  32. app.stop()