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