[engine] Add initial version of event loop engine

Re-add the engine that is responsible for tying together input, output,
etc.

see #23
This commit is contained in:
Tobi-wan Kenobi 2016-12-04 08:37:01 +01:00
parent e5201187a2
commit cf1693548b
3 changed files with 56 additions and 0 deletions

18
bumblebee-status Normal file → Executable file
View file

@ -0,0 +1,18 @@
#!/usr/bin/env python
import sys
import bumblebee.engine
import bumblebee.config
def main():
config = bumblebee.config.Config(sys.argv[1:])
engine = bumblebee.engine.Engine(
config=config
)
engine.run()
if __name__ == "__main__":
main()
# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4

25
bumblebee/engine.py Normal file
View file

@ -0,0 +1,25 @@
"""Core application engine"""
class Engine(object):
"""Engine for driving the application
This class connects input/output, instantiates all
required modules and drives the "event loop"
"""
def __init__(self, config):
self._running = True
def running(self):
"""Check whether the event loop is running"""
return self._running
def stop(self):
"""Stop the event loop"""
self._running = False
def run(self):
"""Start the event loop"""
while self.running():
pass
# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4

13
tests/test_engine.py Normal file
View file

@ -0,0 +1,13 @@
# pylint: disable=C0103,C0111
import unittest
from bumblebee.engine import Engine
class TestEngine(unittest.TestCase):
def setUp(self):
self.engine = Engine(None)
def test_stop(self):
self.assertTrue(self.engine.running())
self.engine.stop()
self.assertFalse(self.engine.running())