示例#1
0
    def test_remove_all(self):
        self.client.delete.return_value = mock_api_response('/api/v2/users/-/subscriptions',
                                                            NO_CONTENT,
                                                            None)

        self.subscription.remove_all_subscriptions('-')
        self.client.delete.assert_called_with(self.client.delete.return_value.url, headers=self.DEFAULT_HEADERS)
    def test_get_boundaries(self):
        self.client.get.return_value = mock_api_response(
            '/api/v2/users/-/data/boundaries', OK, None, 'data', 'boundaries',
            'GET_response.json')

        boundaries = self.data.get_boundaries(
            '-', search=BoundariesSearchOption.BOTH)
        self.client.get.assert_called_with(self.client.get.return_value.url,
                                           params=dict(search='both'),
                                           headers=self.DEFAULT_HEADERS)
        self.assertIsNotNone(boundaries)
        self.assertIsInstance(boundaries, list)
        self.assertEqual(2, len(boundaries))

        boundary1 = boundaries[0]
        self.assertEqual("OnDemand:model-test-data-boundaries@sensor",
                         boundary1["source"])
        self.assertEqual(2, len(boundary1["streams"]))
        self.assertEqual("/indoor/air/temperature",
                         boundary1["streams"][0]["path"])
        self.assertEqual("/indoor/air/humidity",
                         boundary1["streams"][1]["path"])

        boundary2 = boundaries[1]
        self.assertEqual("OnDemand:model-test-data-boundaries@thermostat",
                         boundary2["source"])
        self.assertEqual(2, len(boundary2["streams"]))
        self.assertEqual("/indoor/air/temperature",
                         boundary2["streams"][0]["path"])
        self.assertEqual("/indoor/thermostat/mode",
                         boundary2["streams"][1]["path"])
    def test_delete(self):
        self.client.delete.return_value = mock_api_response(
            '/api/v2/users/-/connections/connection-id', NO_CONTENT, None)

        self.connections.delete_connection('-', 'connection-id')
        self.client.delete.assert_called_with(
            self.client.delete.return_value.url, headers=self.DEFAULT_HEADERS)
 def _test_light_state(self, color, expected_file):
     self.client.put.return_value = mock_api_response(
         '/api/v2/users/-/commands/light/state', ACCEPTED, None, 'light',
         'state', 'PUT_response.json')
     expected_request = json.loads(
         load_resource_file('light', 'state', expected_file))
     self.command.set_light_state('-', ['light-udi'], True, color)
     self.client.put.assert_called_with(self.client.put.return_value.url,
                                        data=None,
                                        json=expected_request,
                                        headers=self.DEFAULT_HEADERS)
 def test_plug_state(self):
     self.client.put.return_value = mock_api_response(
         '/api/v2/users/-/commands/plug/state', ACCEPTED, None, 'plug',
         'state', 'PUT_response.json')
     expected_request = json.loads(
         load_resource_file('plug', 'state', 'PUT_request.json'))
     self.command.set_plug_state('-', ['plug-udi'], True)
     self.client.put.assert_called_with(self.client.put.return_value.url,
                                        data=None,
                                        json=expected_request,
                                        headers=self.DEFAULT_HEADERS)
示例#6
0
    def test_get_succeed(self):
        self.client.get.return_value = mock_api_response('/api/v2/users/-/subscriptions/subscription-key',
                                                         OK,
                                                         None,
                                                         'subscriptions', 'GET_{id}_response.json')

        subscription = self.subscription.get_subscription('-', 'subscription-key')
        self.client.get.assert_called_with(self.client.get.return_value.url, params=None, headers=self.DEFAULT_HEADERS)
        self.assertIsNotNone(subscription)
        self.assertIsInstance(subscription, dict)
        self.assertEqual("sub_for_user_12345_to_temperatures", subscription["key"])
    def test_list_streams(self):
        self.client.get.return_value = mock_api_response(
            '/api/v2/users/-/data', OK, None, 'data', 'GET_response.json')

        streams = self.data.list_streams('-')
        self.client.get.assert_called_with(self.client.get.return_value.url,
                                           params=None,
                                           headers=self.DEFAULT_HEADERS)
        self.assertIsNotNone(streams)
        self.assertIsInstance(streams, list)
        self.assertEqual(2, len(streams))
示例#8
0
    def test_list_subscriptions(self):
        self.client.get.return_value = mock_api_response('/api/v2/users/-/subscriptions',
                                                         OK,
                                                         None,
                                                         'subscriptions', 'GET_response.json')

        subscriptions = self.subscription.list_subscriptions('-')
        self.client.get.assert_called_with(self.client.get.return_value.url, params={}, headers=self.DEFAULT_HEADERS)
        self.assertIsNotNone(subscriptions)
        self.assertIsInstance(subscriptions, list)
        self.assertEqual(1, len(subscriptions))
        self.assertEqual("sub_for_user_12345_to_temperatures", subscriptions[0]["key"])
    def test_get_succeed(self):
        self.client.get.return_value = mock_api_response(
            '/api/v2/users/-/connections/connection-id', OK, None,
            'connections', 'GET_{id}_response.json')

        connection = self.connections.get_connection('-', 'connection-id')
        self.client.get.assert_called_with(self.client.get.return_value.url,
                                           params=None,
                                           headers=self.DEFAULT_HEADERS)
        self.assertIsNotNone(connection)
        self.assertIsInstance(connection, dict)
        self.assertEqual("carpetcorp", connection["connectorName"])
        self.assertEqual("NONE", connection["error"])
 def test_post_succeed(self):
     self.client.post.return_value = mock_api_response(
         '/api/v2/users/-/data/timeseries/indoor/air/temperature', ACCEPTED,
         None, 'data', 'timeseries', 'indoor', 'air', 'temperature',
         'GET_response.json')
     request = json.loads(
         load_resource_file('data', 'indoor', 'air', 'temperature',
                            'POST_request.json'))
     self.data.write_data('-', '/indoor/air/temperature', request)
     self.client.post.assert_called_with(self.client.post.return_value.url,
                                         data=None,
                                         json=request,
                                         headers=self.DEFAULT_HEADERS)
 def _test_thermostat_mode(self, mode, temperature, end_date,
                           expected_file):
     self.client.put.return_value = mock_api_response(
         '/api/v2/users/-/commands/thermostat/mode', ACCEPTED, None,
         'thermostat', 'mode', 'PUT_response.json')
     expected_request = json.loads(
         load_resource_file('thermostat', 'mode', expected_file))
     self.command.set_thermostat_mode('-', ['thermostat-udi'], mode,
                                      temperature, end_date)
     self.client.put.assert_called_with(self.client.put.return_value.url,
                                        data=None,
                                        json=expected_request,
                                        headers=self.DEFAULT_HEADERS)
示例#12
0
 def _test_update(self, status_returned):
     self.client.put.return_value = mock_api_response('/api/v2/users/-/subscriptions/subscription-key',
                                                      status_returned,
                                                      None,
                                                      'subscriptions', 'PUT_{key}_response.json')
     request = json.loads(load_resource_file('subscriptions', 'PUT_{key}_request.json'))
     self.subscription.set_subscription('-', 'subscription-key', '/indoor/air/temperature',
                                        url='https://myhost/notification/callback?from=liveobjects',
                                        origin=Origin.ANY,
                                        filter=dict(metadata=dict(device='carpetcorp:icarpet3@02:00:00:12:e8:d2')
                                                    )
                                        )
     self.client.put.assert_called_with(self.client.put.return_value.url, data=None, json=request,
                                        headers=self.DEFAULT_HEADERS)
    def test_get_succeed(self):
        self.client.get.return_value = mock_api_response(
            '/api/v2/users/-/connections/connection-id/devices/device-id', OK,
            None, 'devices', 'GET_{id}_response.json')

        device = self.devices.get_device('-', 'connection-id', 'device-id')
        self.client.get.assert_called_with(self.client.get.return_value.url,
                                           params=None,
                                           headers=self.DEFAULT_HEADERS)
        self.assertIsNotNone(device)
        self.assertIsInstance(device, dict)
        self.assertEqual("carpetcorp:icarpet3@02:00:00:12:e8:d2",
                         device["udi"])
        self.assertEqual("NONE", device["error"])
    def test_list(self):
        self.client.get.return_value = mock_api_response(
            '/api/v2/users/-/connections', OK, None, 'connections',
            'GET_response.json')

        connections = self.connections.list_connections('-')
        self.client.get.assert_called_with(self.client.get.return_value.url,
                                           params={},
                                           headers=self.DEFAULT_HEADERS)
        self.assertIsNotNone(connections)
        self.assertIsInstance(connections, list)
        self.assertEqual(1, len(connections))
        self.assertIsInstance(connections[0], dict)
        self.assertEqual("carpetcorp", connections[0]["connectorName"])
        self.assertEqual("NONE", connections[0]["error"])
    def test_update(self):
        self.client.put.return_value = mock_api_response(
            '/api/v2/users/-/connections/connection-id', OK, None,
            'connections', 'PUT_{id}_response.json')

        connection = self.connections.update_connection_status(
            '-', 'connection-id', 'WORKING', 'NONE')
        self.assertIsNotNone(connection)
        self.assertIsInstance(connection, dict)
        self.assertEqual("carpetcorp", connection["connectorName"])
        self.assertEqual("NONE", connection["error"])
        self.client.put.assert_called_with(self.client.put.return_value.url,
                                           data=None,
                                           json=dict(status='WORKING',
                                                     reason='NONE'),
                                           headers=self.DEFAULT_HEADERS)
 def test_create(self):
     self.client.post.return_value = mock_api_response(
         '/api/v2/users/-/connections', OK, None, 'connections',
         'POST_response.json')
     connection = self.connections.create_connection(
         '-', 'test-connector', 'test-key')
     self.client.post.assert_called_with(self.client.post.return_value.url,
                                         data=None,
                                         json=dict(
                                             connectorName='test-connector',
                                             key='test-key'),
                                         headers=self.DEFAULT_HEADERS)
     self.assertIsNotNone(connection)
     self.assertIsInstance(connection, dict)
     self.assertEqual("test-connector", connection["connectorName"])
     self.assertEqual("test-key", connection["key"])
    def test_list(self):
        self.client.get.return_value = mock_api_response(
            '/api/v2/users/-/connections/connection-id/devices', OK, None,
            'devices', 'GET_response.json')

        devices = self.devices.list_devices('-', 'connection-id')
        self.client.get.assert_called_with(self.client.get.return_value.url,
                                           params={},
                                           headers=self.DEFAULT_HEADERS)
        self.assertIsNotNone(devices)
        self.assertIsInstance(devices, list)
        self.assertEqual(1, len(devices))
        self.assertIsInstance(devices[0], dict)
        self.assertEqual("carpetcorp:icarpet3@02:00:00:12:e8:d2",
                         devices[0]["udi"])
        self.assertEqual("NONE", devices[0]["error"])
 def test_set_connection_devices(self):
     self.client.put.return_value = mock_api_response(
         '/api/v2/users/-/connections/connection-id/devices', OK, None,
         'devices', 'PUT_response.json')
     request = json.loads(load_resource_file('devices', 'PUT_request.json'))
     devices = self.devices.set_connection_devices('-',
                                                   'connection-id',
                                                   devices=request)
     self.client.put.assert_called_with(self.client.put.return_value.url,
                                        data=None,
                                        json=request,
                                        headers=self.DEFAULT_HEADERS)
     self.assertIsNotNone(devices)
     self.assertIsInstance(devices, list)
     self.assertEqual(1, len(devices))
     self.assertIsInstance(devices[0], dict)
     self.assertEqual("connection:model:instance", devices[0]["udi"])
     self.assertEqual("NONE", devices[0]["error"])
     self.assertIsNone(devices[0]["parentId"])
    def test_get_all_stats(self):
        self.client.get.return_value = mock_api_response(
            '/api/v2/users/-/data/stats/indoor/air/temperature', OK, None,
            'data', 'stats', 'indoor', 'air', 'temperature',
            'GET_response.json')

        stats = self.data.get_stats('-',
                                    '/indoor/air/temperature',
                                    fields=[StatsField.AVG, StatsField.MIN])
        self.client.get.assert_called_with(self.client.get.return_value.url,
                                           params=dict(fields='avg,min'),
                                           headers=self.DEFAULT_HEADERS)
        self.assertIsNotNone(stats)
        self.assertIsInstance(stats, list)
        self.assertEqual("2015-01-02T08:00:00Z", stats[0]["date"])
        self.assertEqual(2, stats[0]["count"])
        self.assertEqual(0, stats[0]["min"])
        self.assertEqual(20, stats[0]["max"])
        self.assertEqual(10, stats[0]["avg"])
        self.assertEqual(30, stats[0]["sum"])
    def test_get_succeed(self):
        self.client.get.return_value = mock_api_response(
            '/api/v2/users/-/data/timeseries/indoor/air/temperature', OK, None,
            'data', 'timeseries', 'indoor', 'air', 'temperature',
            'GET_response.json')

        data = self.data.get_data('-',
                                  '/indoor/air/temperature',
                                  pageSize=1,
                                  pageNumber=0,
                                  search='metadata.device=udi')
        self.client.get.assert_called_with(self.client.get.return_value.url,
                                           params=dict(
                                               pageNumber=0,
                                               pageSize=1,
                                               search='metadata.device=udi'),
                                           headers=self.DEFAULT_HEADERS)
        self.assertIsNotNone(data)
        self.assertIsInstance(data, list)
        self.assertEqual("2015-01-02T08:00:00Z", data[0]["at"])
        self.assertEqual(1.0, data[0]["value"])
    def test_get_summaries(self):
        self.client.get.return_value = mock_api_response(
            '/api/v2/users/-/data/summaries/me/sleep', OK, None, 'data',
            'summaries', 'me', 'sleep', 'GET_response.json')

        summaries = self.data.get_summaries('-', '/me/sleep')
        self.client.get.assert_called_with(self.client.get.return_value.url,
                                           params=dict(),
                                           headers=self.DEFAULT_HEADERS)
        self.assertIsNotNone(summaries)
        self.assertIsInstance(summaries, list)

        summary = summaries[0]

        self.assertEqual("2017-01-01T22:30:00Z", summary["startDate"])
        self.assertEqual(28800, summary["totalDuration"])
        self.assertEqual(1800, summary["awakeDuration"])
        self.assertEqual(9000, summary["lightDuration"])
        self.assertEqual(18000, summary["deepDuration"])
        self.assertEqual(
            "/users/me/data/timeseries/me/sleep?filter={\"value\":{\"start\":\"2017-01-01T22:30:00Z\"}}",
            summary["links"]["timeseries"])
示例#22
0
 def test_get_not_found(self):
     self.client.get.return_value = mock_api_response('/api/v2/users/-/data/subscriptions/subscription-key',
                                                      NOT_FOUND,
                                                      None)
     with self.assertRaises(InvalidStatusCode):
         self.subscription.get_subscription('-', 'subscription-key')
 def test_get_not_found(self):
     self.client.get.return_value = mock_api_response(
         '/api/v2/users/-/connections/connection-id/devices/device-id',
         NOT_FOUND, None)
     with self.assertRaises(InvalidStatusCode):
         self.devices.get_device('-', 'connection-id', 'device-id')