def test_single(self): upstreams = [{ "name": "testing", "type": "test", "options": { "dummy_option": "1" } }] logger.info("booting objects.") data_manager = core.NumbersManager() pusher = core.NumbersPusher(data_manager, interval=0.1) self.config = config.ConfigManager(pusher, config=upstreams) push_stack = pusher._pushers["testing"].pushed # The pusher has been created. self.assertEqual(1, len(self.config._config)) self.assertTrue("testing" in pusher._pushers) self.assertEqual(pusher._pushers["testing"].dummy_option, "1") # Aggregate some data and check it's been pushed. logger.info("aggregating data.") data_manager.aggregate_user_data("test user", 19) self.assertEqual(0, len(push_stack)) logger.info("pushing collected data.") packet = data_manager.get_data_packet() pusher._push(packet) gevent.sleep(0.3) self.assertEqual(1, len(push_stack))
def setUp(self): with open(self.FILE, 'w') as f: json.dump([], f) manager = core.NumbersManager() self.pusher = core.NumbersPusher(manager, 1) self.c = config.ConfigManager(self.pusher) self.conf = config.ConfigFileManager(self.c, self.FILE, interval=0) gevent.spawn(self.pusher.start)
def setUp(self): manager = core.NumbersManager() pusher = core.NumbersPusher(manager, 1) self.c = config.ConfigManager(pusher)
def test_watch(self): FILE = 'test-config.json' FIRST_CONFIG = [{ "name": "one", "type": "test", "options": { "dummy_option": "1" } }] SECOND_CONFIG = [{ "name": "one", "type": "test", "options": { "dummy_option": "1" } }, { "name": "two", "type": "test" }] THIRD_CONFIG = [{"name": "two", "type": "test"}] logger.info("creating single upstream config file.") with open(FILE, 'w') as f: json.dump(FIRST_CONFIG, f) logger.info("booting objects.") data_manager = core.NumbersManager() pusher = core.NumbersPusher(data_manager, interval=0.1) self.m = config.ConfigManager(pusher) self.c = config.ConfigFileManager(self.m, FILE, interval=0.1) logger.info("starting the pusher and config watcher") pusher.start() self.c.start_watching() # The one upstream has been created. gevent.sleep(0.15) self.assertEqual(1, len(self.m._config)) self.assertTrue("one" in pusher._pushers) # self.assertTrue("two" in pusher._pushers) self.assertEqual(pusher._pushers["one"].dummy_option, "1") logger.info("creating dual entry config file.") with open(FILE, 'w') as f: json.dump(SECOND_CONFIG, f) # Now two upstream has been created. gevent.sleep(0.15) self.assertEqual(2, len(self.m._config)) self.assertTrue("one" in pusher._pushers) self.assertTrue("two" in pusher._pushers) self.assertEqual(pusher._pushers["one"].dummy_option, "1") logger.info("creating different single entry config file.") with open(FILE, 'w') as f: json.dump(THIRD_CONFIG, f) # Now two upstream has been created. gevent.sleep(0.15) self.assertEqual(1, len(self.m._config)) self.assertTrue("two" in pusher._pushers) logger.info("removing the test config file.") import os os.remove(FILE)