Exemplo n.º 1
0
class TestInstrumentAgent(IonTestCase):

    @defer.inlineCallbacks
    def setUp(self):
        yield self._start_container()

        # Start an instrument agent
        processes = [
            {'name':'testSBE49IA','module':'ion.agents.instrumentagents.SBE49'},
        ]
        sup = yield self._spawn_processes(processes)
        svc_id = sup.get_child_id('testSBE49IA')

        # Start a client (for the RPC)
        self.IAClient = InstrumentAgentClient(proc=sup, target=svc_id)

    @defer.inlineCallbacks
    def tearDown(self):
        yield self._stop_container()

    @defer.inlineCallbacks
    def testGetSBE49Capabilities(self):
        """
        Test the ability to gather capabilities from the SBE49 instrument
        capabilities
        """
        (content, headers, message) = \
         yield self.IAClient.rpc_send('getCapabilities', ())
        self.assert_(set(IAcommands) == set(content['commands']))
        self.assert_(set(IAparameters) == set(content['parameters']))

    @defer.inlineCallbacks
    def testGetSetSBE49Params(self):
        """
        Test the ability of the SBE49 driver to send and receive get, set,
        and other messages. Best called as RPC message pairs.
        """
        (content, headers, message) = \
            yield self.IAClient.rpc_send('get', ('baudrate','outputformat'))
        self.assertEqual(content, {'baudrate' : 9600,
                                   'outputformat' : 0})

        (content, headers, message) = \
            yield self.IAClient.rpc_send('set', {'baudrate': 19200,
                                                 'outputformat': 1})
        self.assertEqual(content, {'baudrate' : 19200,
                                   'outputformat' : 1})

        (content, headers, message) = \
            yield self.IAClient.rpc_send('get', ('baudrate', 'outputformat'))
        self.assertEqual(content, {'baudrate' : 19200,
                                   'outputformat' : 1})

        (content, headers, message) = \
            yield self.IAClient.rpc_send('setLifecycleState', 'undeveloped')
        self.assertEqual(content, 'undeveloped')

        (content, headers, message) = \
            yield self.IAClient.rpc_send('getLifecycleState', '')
        self.assertEqual(content, 'undeveloped')

        (content, headers, message) = \
            yield self.IAClient.rpc_send('setLifecycleState', 'developed')
        self.assertEqual(content, 'developed')

        (content, headers, message) = \
        yield self.IAClient.rpc_send('getLifecycleState', '')
        self.assertEqual(content, 'developed')