Added capture resize to API unit test
This commit is contained in:
parent
8a4be49d46
commit
58d37354c3
2 changed files with 64 additions and 13 deletions
|
|
@ -61,11 +61,15 @@ class APIconnection:
|
|||
}
|
||||
return self.post('/stage/position', json=json)
|
||||
|
||||
def new_capture(self, use_video_port=True, keep_on_disk=False):
|
||||
def new_capture(self, use_video_port=True, keep_on_disk=False, resize=None):
|
||||
json = {
|
||||
"keep_on_disk": keep_on_disk,
|
||||
"use_video_port": use_video_port
|
||||
}
|
||||
|
||||
if resize:
|
||||
json['size'] = {'width': resize[0], 'height': resize[1]}
|
||||
|
||||
return self.post('/camera/capture', json=json)
|
||||
|
||||
def get_capture(self, capture_id):
|
||||
|
|
@ -79,8 +83,8 @@ class APIconnection:
|
|||
uri_route = '/camera/capture/{}'.format(capture_id)
|
||||
return self.delete(uri_route)
|
||||
|
||||
def capture(self, use_video_port=True, keep_on_disk=False, delete_after_use=True):
|
||||
p = self.new_capture(use_video_port=use_video_port, keep_on_disk=keep_on_disk)
|
||||
def capture(self, use_video_port=True, keep_on_disk=False, delete_after_use=True, resize=None):
|
||||
p = self.new_capture(use_video_port=use_video_port, keep_on_disk=keep_on_disk, resize=resize)
|
||||
capture_id = p['id']
|
||||
img_array = self.get_capture(capture_id)
|
||||
|
||||
|
|
|
|||
|
|
@ -36,23 +36,35 @@ class TestCapture(unittest.TestCase):
|
|||
connection = APIconnection(host="localhost", port=5000, api_ver="v1")
|
||||
resolution = connection.get_config()['video_resolution']
|
||||
|
||||
capture_array = connection.capture(
|
||||
use_video_port=True,
|
||||
keep_on_disk=False,
|
||||
delete_after_use=True)
|
||||
for resize in [None, (640, 480)]:
|
||||
|
||||
self.assertTrue(capture_array.shape == (resolution[1], resolution[0], 3))
|
||||
if resize:
|
||||
resolution = resize
|
||||
|
||||
capture_array = connection.capture(
|
||||
use_video_port=True,
|
||||
keep_on_disk=False,
|
||||
delete_after_use=True,
|
||||
resize=resize)
|
||||
|
||||
self.assertTrue(capture_array.shape == (resolution[1], resolution[0], 3))
|
||||
|
||||
def test_capture_full(self):
|
||||
connection = APIconnection(host="localhost", port=5000, api_ver="v1")
|
||||
resolution = connection.get_config()['image_resolution']
|
||||
|
||||
capture_array = connection.capture(
|
||||
use_video_port=False,
|
||||
keep_on_disk=False,
|
||||
delete_after_use=True)
|
||||
for resize in [None, (640, 480)]:
|
||||
|
||||
self.assertTrue(capture_array.shape == (resolution[1], resolution[0], 3))
|
||||
if resize:
|
||||
resolution = resize
|
||||
|
||||
capture_array = connection.capture(
|
||||
use_video_port=False,
|
||||
keep_on_disk=False,
|
||||
delete_after_use=True,
|
||||
resize=resize)
|
||||
|
||||
self.assertTrue(capture_array.shape == (resolution[1], resolution[0], 3))
|
||||
|
||||
class TestStage(unittest.TestCase):
|
||||
|
||||
|
|
@ -67,6 +79,41 @@ class TestStage(unittest.TestCase):
|
|||
for key in expected_keys:
|
||||
self.assertTrue(key in config)
|
||||
|
||||
def test_stage_state(self):
|
||||
connection = APIconnection(host="localhost", port=5000, api_ver="v1")
|
||||
state = connection.get_state()
|
||||
|
||||
self.assertTrue('stage' in state)
|
||||
|
||||
expected_keys = [
|
||||
'position',
|
||||
]
|
||||
|
||||
for key in expected_keys:
|
||||
self.assertTrue(key in state['stage'])
|
||||
|
||||
def test_movement(self):
|
||||
connection = APIconnection(host="localhost", port=5000, api_ver="v1")
|
||||
|
||||
move_distance = 500
|
||||
for axis in range(3):
|
||||
for direction in [1, -1]:
|
||||
pos_i_dict = connection.get_state()['stage']['position']
|
||||
pos_i = [pos_i_dict['x'], pos_i_dict['y'], pos_i_dict['z']]
|
||||
|
||||
move = [0, 0, 0]
|
||||
move[axis] = move_distance*direction
|
||||
|
||||
connection.move_by(*move)
|
||||
|
||||
pos_f_dict = connection.get_state()['stage']['position']
|
||||
pos_f = [pos_f_dict['x'], pos_f_dict['y'], pos_f_dict['z']]
|
||||
|
||||
diff = np.subtract(pos_f, pos_i)
|
||||
logging.debug("{} > {}".format(pos_i, pos_f))
|
||||
|
||||
self.assertTrue(np.array_equal(diff, move))
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
||||
suites = [
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue