def setUp(self): self.twitch = MockTwitchEngine() self.checker = Checker(300, self.twitch, self.get_sublist) self.sublist = {} interfaces.get('test').reset()
class TestChecker: def setUp(self): self.twitch = MockTwitchEngine() self.checker = Checker(300, self.twitch, self.get_sublist) self.sublist = {} interfaces.get('test').reset() def get_sublist(self): return self.sublist def test_stop_on_processing(self): self.checker.start() threading.Event().wait(1) self.checker.refresh() def locker(): locker.event.wait() return {} locker.event = threading.Event() self.checker._twitch.get_live_channels = locker threading.Event().wait(2) # expect checker wait on getLiveChannels locker.event.set() self.checker.async_stop() ok_(self.checker.is_stopped()) self.checker.join(5) ok_(not self.checker.is_alive()) def test_skip_already_lived_on_boot(self): self.twitch.live_ch_list = { 'testch1': { 'status': 'test_status', 'game': 'test_game', 'url': 'test_url' } } fake_sender = CommandSubmitter('test', 'fake_sender') self.sublist = {fake_sender: ['testch1']} self.checker.start() threading.Event().wait(1) self.checker.stop() ok_(len(interfaces.get('test').msg_queue[fake_sender]) == 0) def test_live_notification(self): fake_sender = CommandSubmitter('test', 'fake_sender') fake_sender2 = CommandSubmitter('test', 'fake_sender2') self.sublist = { fake_sender: ['testch1'], fake_sender2: ['testch2'], } self.checker.start() threading.Event().wait(1) self.checker.refresh() threading.Event().wait(1) ok_(len(interfaces.get('test').msg_queue[fake_sender]) == 0) ok_(len(interfaces.get('test').msg_queue[fake_sender2]) == 0) self.twitch.live_ch_list = { 'TESTCH1': { 'status': u'test_status', 'game': u'test_game', 'url': u'test_url' } } self.checker.refresh() threading.Event().wait(1) self.checker.stop() ok_('TESTCH1' in ' '.join(interfaces.get('test').msg_queue[fake_sender]), interfaces.get('test').msg_queue[fake_sender]) ok_('TESTCH1' not in ' '.join(interfaces.get('test').msg_queue[fake_sender2]), interfaces.get('test').msg_queue[fake_sender2]) def test_channel_offline(self): self.twitch.live_ch_list = { 'testch1': { 'status': u'test_status', 'game': u'test_game', 'url': u'test_url' } } fake_sender = CommandSubmitter('test', 'fake_sender') self.sublist = {fake_sender: ['testch1']} self.checker.start() threading.Event().wait(1) self.twitch.live_ch_list = {} self.checker.refresh() threading.Event().wait(1) # no message should be sent ok_(len(interfaces.get('test').msg_queue[fake_sender]) == 0) # simulate channel goes live self.twitch.live_ch_list = { 'testch1': { 'status': u'test_status', 'game': u'test_game', 'url': u'test_url' } } self.checker.refresh() threading.Event().wait(1) self.checker.stop() ok_('testch1' in ' '.join(interfaces.get('test').msg_queue[fake_sender]), interfaces.get('test').msg_queue[fake_sender])
class TestChecker: def setUp(self): self.twitch = MockTwitchEngine() self.checker = Checker(300, self.twitch, self.get_sublist) self.sublist = {} interfaces.get('test').reset() def get_sublist(self): return self.sublist def test_stop_on_processing(self): self.checker.start() threading.Event().wait(1) self.checker.refresh() def locker(): locker.event.wait() return {} locker.event = threading.Event() self.checker._twitch.get_live_channels = locker threading.Event().wait(2) # expect checker wait on getLiveChannels locker.event.set() self.checker.async_stop() ok_(self.checker.is_stopped()) self.checker.join(5) ok_(not self.checker.is_alive()) def test_skip_already_lived_on_boot(self): self.twitch.live_ch_list = { 'testch1': { 'status': 'test_status', 'game': 'test_game', 'url': 'test_url' } } fake_sender = CommandSubmitter('test', 'fake_sender') self.sublist = {fake_sender: ['testch1']} self.checker.start() threading.Event().wait(1) self.checker.stop() ok_(len(interfaces.get('test').msg_queue[fake_sender]) == 0) def test_live_notification(self): fake_sender = CommandSubmitter('test', 'fake_sender') fake_sender2 = CommandSubmitter('test', 'fake_sender2') self.sublist = { fake_sender: ['testch1'], fake_sender2: ['testch2'], } self.checker.start() threading.Event().wait(1) self.checker.refresh() threading.Event().wait(1) ok_(len(interfaces.get('test').msg_queue[fake_sender]) == 0) ok_(len(interfaces.get('test').msg_queue[fake_sender2]) == 0) self.twitch.live_ch_list = { 'TESTCH1': { 'status': u'test_status', 'game': u'test_game', 'url': u'test_url' } } self.checker.refresh() threading.Event().wait(1) self.checker.stop() ok_( 'TESTCH1' in ' '.join(interfaces.get('test').msg_queue[fake_sender]), interfaces.get('test').msg_queue[fake_sender]) ok_( 'TESTCH1' not in ' '.join(interfaces.get('test').msg_queue[fake_sender2]), interfaces.get('test').msg_queue[fake_sender2]) def test_channel_offline(self): self.twitch.live_ch_list = { 'testch1': { 'status': u'test_status', 'game': u'test_game', 'url': u'test_url' } } fake_sender = CommandSubmitter('test', 'fake_sender') self.sublist = {fake_sender: ['testch1']} self.checker.start() threading.Event().wait(1) self.twitch.live_ch_list = {} self.checker.refresh() threading.Event().wait(1) # no message should be sent ok_(len(interfaces.get('test').msg_queue[fake_sender]) == 0) # simulate channel goes live self.twitch.live_ch_list = { 'testch1': { 'status': u'test_status', 'game': u'test_game', 'url': u'test_url' } } self.checker.refresh() threading.Event().wait(1) self.checker.stop() ok_( 'testch1' in ' '.join(interfaces.get('test').msg_queue[fake_sender]), interfaces.get('test').msg_queue[fake_sender])