45 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			45 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
|  | import unittest | ||
|  | import requests | ||
|  | import random | ||
|  | import time | ||
|  | 
 | ||
|  | from pypot.creatures import PoppyErgoJr | ||
|  | from pypot.dynamixel.conversion import XL320LEDColors | ||
|  | 
 | ||
|  | from utils import get_open_port | ||
|  | 
 | ||
|  | 
 | ||
|  | class TestSnap(unittest.TestCase): | ||
|  |     def setUp(self): | ||
|  |         port = get_open_port() | ||
|  | 
 | ||
|  |         self.jr = PoppyErgoJr(simulator='poppy-simu', use_snap=True, snap_port=port) | ||
|  |         self.base_url = 'http://127.0.0.1:{}'.format(port) | ||
|  | 
 | ||
|  |         # Make sure the Snap API is running before actually testing. | ||
|  |         while True: | ||
|  |             try: | ||
|  |                 self.get('/') | ||
|  |                 break | ||
|  |             except requests.exceptions.ConnectionError: | ||
|  |                 time.sleep(1) | ||
|  | 
 | ||
|  |     def get(self, url): | ||
|  |         url = '{}{}'.format(self.base_url, url) | ||
|  |         return requests.get(url) | ||
|  | 
 | ||
|  |     def test_led(self): | ||
|  |         c = random.choice(list(XL320LEDColors)) | ||
|  |         m = random.choice(self.jr.motors) | ||
|  | 
 | ||
|  |         r = self.get('/motor/{}/set/led/{}'.format(m.name, c.name)) | ||
|  |         self.assertEqual(r.status_code, 200) | ||
|  | 
 | ||
|  |         r = self.get('/motor/{}/get/led'.format(m.name)) | ||
|  |         self.assertEqual(r.status_code, 200) | ||
|  |         self.assertEqual(r.text, c.name) | ||
|  | 
 | ||
|  | 
 | ||
|  | if __name__ == '__main__': | ||
|  |     unittest.main() |