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()