Commit 58d37354 authored by Joel Collins's avatar Joel Collins
Browse files

Added capture resize to API unit test

parent 8a4be49d
Loading
Loading
Loading
Loading
+7 −3
Original line number Diff line number Diff line
@@ -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)

+57 −10
Original line number Diff line number Diff line
@@ -36,10 +36,16 @@ class TestCapture(unittest.TestCase):
        connection = APIconnection(host="localhost", port=5000, api_ver="v1")
        resolution = connection.get_config()['video_resolution']

        for resize in [None, (640, 480)]:

            if resize:
                resolution = resize

            capture_array = connection.capture(
                use_video_port=True, 
                keep_on_disk=False, 
            delete_after_use=True)
                delete_after_use=True,
                resize=resize)

            self.assertTrue(capture_array.shape == (resolution[1], resolution[0], 3))

@@ -47,10 +53,16 @@ class TestCapture(unittest.TestCase):
        connection = APIconnection(host="localhost", port=5000, api_ver="v1")
        resolution = connection.get_config()['image_resolution']

        for resize in [None, (640, 480)]:

            if resize:
                resolution = resize

            capture_array = connection.capture(
                use_video_port=False, 
                keep_on_disk=False, 
            delete_after_use=True)
                delete_after_use=True,
                resize=resize)

            self.assertTrue(capture_array.shape == (resolution[1], resolution[0], 3))

@@ -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 = [