Пример #1
0
 def setUp(self):
     self.twitch = MockTwitchEngine()
     self.checker = Checker(300, self.twitch, self.get_sublist)
     self.sublist = {}
     interfaces.get('test').reset()
Пример #2
0
 def setUp(self):
     self.twitch = MockTwitchEngine()
     self.checker = Checker(300, self.twitch, self.get_sublist)
     self.sublist = {}
     interfaces.get('test').reset()
Пример #3
0
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])
Пример #4
0
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])