diff --git a/tests/test_plexstatus.py b/tests/test_plexstatus.py new file mode 100644 index 0000000..5399c62 --- /dev/null +++ b/tests/test_plexstatus.py @@ -0,0 +1,59 @@ +""" +Basic test for the plexstatus module +""" + +import unittest +from mock import patch +from unittest.mock import 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()