class test_Methodheap_Frontend_001(unittest.TestCase): """Test methods from MythTV.Frontend(). See https://www.mythtv.org/wiki/Frontend_control_socket """ @classmethod def setUpClass(cls): # get the global test environment global TestEnv cls.testenv = TestEnv def setUp(self): # connect to frontend self.fe = Frontend("%s" % (self.testenv['FRONTENDIP']), 6546) def tearDown(self): # close frontend self.fe.close() @classmethod def tearDownClass(cls): if os.path.exists('/tmp/screenshot'): os.remove('/tmp/screenshot') if os.path.exists('/tmp/my_logfile'): os.remove('/tmp/my_logfile') def test_Methodheap_Frontend_001_query_play_01(self): """Test 'sendQuery', 'sendPlay' and 'jump' methods from MythTV.Frontend() """ # jump to MythVideo j1 = self.fe.jump.mythvideo self.assertTrue(j1) time.sleep(5) # Jump to 'TV Recording Playback', loc = self.fe.sendQuery('location') if (loc != 'playbackbox'): self.fe.jump['playbackrecordings'] time.sleep(10) # Select recordings k1 = self.fe.key['enter'] self.assertTrue(k1) time.sleep(1) # play first recording k2 = self.fe.key['enter'] self.assertTrue(k2) time.sleep(10) # stop playback of recording self.fe.sendPlay('stop') time.sleep(2) loc = self.fe.sendQuery('location') self.assertTrue(loc == 'playbackbox') # Clear bookmark caused by 'stop' k3 = self.fe.key.enter self.assertTrue(k3) time.sleep(10) k4 = self.fe.key.escape self.assertTrue(k4) def test_Methodheap_Frontend_001_getQuery_01(self): """Test 'getQuery'' methods from MythTV.Frontend(). """ q = self.fe.getQuery() # 'q' reports a list of tuples self.assertTrue('recordings' in [key for (key, desc) in q]) def test_Methodheap_Frontend_001_getPlay_01(self): """Test 'getPlay'' methods from MythTV.Frontend(). """ q = self.fe.getPlay() # 'q' reports a list of tuples self.assertTrue('seek beginning' in [key for (key, desc) in q]) def test_Methodheap_Frontend_001_getLoad_01(self): """Test 'getLoad' methods from MythTV.Frontend(). """ q = self.fe.getLoad() self.assertTrue(isinstance(q, tuple)) self.assertTrue(isinstance(q[0], float)) def test_Methodheap_Frontend_001_getUptime_01(self): """Test 'getUptime' methods from MythTV.Frontend(). """ q = self.fe.getUptime() self.assertTrue(isinstance(q, timedelta)) def test_Methodheap_Frontend_001_getTime_01(self): """Test 'getTime' methods from MythTV.Frontend(). """ q = self.fe.getTime() self.assertTrue(isinstance(q, MythTV.utility.dt.datetime)) def test_Methodheap_Frontend_001_getMemory_01(self): """Test 'getTime' methods from MythTV.Frontend(). """ q = self.fe.getMemory() # print(type(q['totalmem'])) --> 'future.types.newint.newint' self.assertTrue(isinstance(q, dict)) def test_Methodheap_Frontend_001_getScreenShot_01(self): """Test 'getScreenShot' methods from MythTV.Frontend(). """ screenshot = self.fe.getScreenShot() #print(type(screenshot)) with open('/tmp/screenshot', 'wb') as f: f.write(screenshot) os.system('file /tmp/screenshot > /tmp/my_logfile') a = (len(tailandgrep('/tmp/my_logfile', 2, 'JPEG|PNG')) > 0) self.assertTrue(a)