""" Basic test for the plexstatus module """ import unittest from unittest.mock import patch, MagicMock from urllib.request import urlopen from i3pystatus import plexstatus # inline xml of stream info from plex server STREAM = b''' ''' class PlexstatusTest(unittest.TestCase): @patch('i3pystatus.plexstatus.urlopen', autospec=True) def test_not_stream(self, urlopen): """ Test output when nothing is being streamed """ null_stream = b'\n\n' plexstatus.urlopen.return_value.read.return_value = null_stream plxstat = plexstatus.Plexstatus(apikey='111111', address='127.0.0.1') plxstat.run() self.assertTrue(plxstat.output == {}) @patch('i3pystatus.plexstatus.urlopen', autospec=True) def test_streaming(self, urlopen): """ Test output from side-loaded xml (generated from a real plex server response) """ plexstatus.urlopen.return_value.read.return_value = STREAM plxstat = plexstatus.Plexstatus(apikey='111111', address='127.0.0.1') plxstat.run() self.assertTrue(plxstat.output['full_text'] == 'Chrome: Big Buck Bunny') if __name__ == '__main__': unittest.main()