Example #1
0
    def test_report_data_in_test_mode(self, config):
        device = 'device'
        port = 'port'
        options = MagicMock()
        options.in_test_mode = MagicMock()

        http = Mock()

        data = {
            Constants.DataPacket.device:
            device,
            Constants.DataPacket.port:
            port,
            Constants.DataPacket.arrival_time:
            datetime.datetime(2012, 1, 2, 3, 4, 5),
            Constants.DataPacket.current_value:
            10
        }
        cs = COSMSend(options)
        cs.config = config_data = \
                {'device': \
                    {'port': \
                        {
                                Constants.Cosm.datastream.tags: 'tag',
                                Constants.Cosm.datastream.cosm_channel: '1',
                                Constants.Cosm.datastream.max_value: 100,
                                Constants.Cosm.datastream.min_value: 0,
                                Constants.Cosm.location.created: 'created',
                                Constants.Cosm.location.disposition: "fixed",
                                Constants.Cosm.location.domain: 'domain',
                                Constants.Cosm.location.exposure: 'exposure',
                                Constants.Cosm.location.latitude: 30.3351807498968,
                                Constants.Cosm.location.longitude: 97.7104604244232 * -1.0,    # Eclipse save causes error
                                Constants.Cosm.location.private: 'private',
                                Constants.Cosm.apikey: 'apikey',
                                Constants.Cosm.auto_feed_url: "https://api.cosm.com/v2/feeds/64451.json",
                                Constants.Cosm.creator: "https://cosm.com/users/gary_pickens",
                                Constants.Cosm.created: 'created',
                                Constants.Cosm.email: "*****@*****.**",
                                Constants.Cosm.feed: "https://api.cosm.com/v2/feeds/64451.json",
                                Constants.Cosm.id: 64451,
                                Constants.Cosm.private: "false",
                                Constants.Cosm.status: "frozen",
                                Constants.Cosm.tags: ["Door", "Temperature"],
                                Constants.Cosm.title: "Garage",
                                Constants.Cosm.updated: 'updated',
                                Constants.Cosm.url: 'url',
                                Constants.Cosm.version: "1.0.0",
                                Constants.Cosm.location_str: 'location',
                                Constants.Cosm.datastreams: 'datastreams',
                            }
                        }
                    }
        cs.report_data(json, data, http)
Example #2
0
    def test_report_data_passing_in_http( self, config, http ):
        device = 'device'
        port = 'port'
        options = MagicMock( in_test_mode=False )

        http = Mock()
        response = Mock()
        attrs = {'request.return_value': ( response, 3 )}
        http.configure_mock( **attrs )

        data = {Constants.DataPacket.device: device,
                Constants.DataPacket.port: port,
                Constants.DataPacket.arrival_time: datetime.datetime( 2012, 1, 2, 3, 4, 5 ),
                Constants.DataPacket.current_value: 10}
        cs = COSMSend( options )
        cs.config = config_data = \
                {'device': \
                    {'port': \
                        {
                                Constants.Cosm.datastream.tags: 'tag',
                                Constants.Cosm.datastream.cosm_channel: '1',
                                Constants.Cosm.datastream.max_value: 100,
                                Constants.Cosm.datastream.min_value: 0,
                                Constants.Cosm.location.created: 'created',
                                Constants.Cosm.location.disposition: "fixed",
                                Constants.Cosm.location.domain: 'domain',
                                Constants.Cosm.location.exposure: 'exposure',
                                Constants.Cosm.location.latitude: 30.3351807498968,
                                Constants.Cosm.location.longitude: 97.7104604244232 * -1.0,    # Eclipse save causes error
                                Constants.Cosm.location.private: 'private',
                                Constants.Cosm.apikey: 'apikey',
                                Constants.Cosm.auto_feed_url: "https://api.cosm.com/v2/feeds/64451.json",
                                Constants.Cosm.creator: "https://cosm.com/users/gary_pickens",
                                Constants.Cosm.created: 'created',
                                Constants.Cosm.email: "*****@*****.**",
                                Constants.Cosm.feed: "https://api.cosm.com/v2/feeds/64451.json",
                                Constants.Cosm.id: 64451,
                                Constants.Cosm.private: "false",
                                Constants.Cosm.status: "frozen",
                                Constants.Cosm.tags: ["Door", "Temperature"],
                                Constants.Cosm.title: "Garage",
                                Constants.Cosm.updated: 'updated',
                                Constants.Cosm.url: 'url',
                                Constants.Cosm.version: "1.0.0",
                                Constants.Cosm.location_str: 'location',
                                Constants.Cosm.datastreams: 'datastreams',
                            }
                        }
                    }
        json = 'test'
        cs.report_data( json, data, http )
        print http.request.call_args
        http.request.assert_called_once_with( 'url', body='test', headers={'Content-Type': 'application/x-www-form-urlencoded', 'X-PachubeApiKey': 'apikey'}, method='PUT' )
Example #3
0
    def test_report_data_in_test_mode( self, config ):
        device = 'device'
        port = 'port'
        options = MagicMock()
        options.in_test_mode = MagicMock()

        http = Mock()

        data = {Constants.DataPacket.device: device,
                Constants.DataPacket.port: port,
                Constants.DataPacket.arrival_time: datetime.datetime( 2012, 1, 2, 3, 4, 5 ),
                Constants.DataPacket.current_value: 10}
        cs = COSMSend( options )
        cs.config = config_data = \
                {'device': \
                    {'port': \
                        {
                                Constants.Cosm.datastream.tags: 'tag',
                                Constants.Cosm.datastream.cosm_channel: '1',
                                Constants.Cosm.datastream.max_value: 100,
                                Constants.Cosm.datastream.min_value: 0,
                                Constants.Cosm.location.created: 'created',
                                Constants.Cosm.location.disposition: "fixed",
                                Constants.Cosm.location.domain: 'domain',
                                Constants.Cosm.location.exposure: 'exposure',
                                Constants.Cosm.location.latitude: 30.3351807498968,
                                Constants.Cosm.location.longitude: 97.7104604244232 * -1.0,    # Eclipse save causes error
                                Constants.Cosm.location.private: 'private',
                                Constants.Cosm.apikey: 'apikey',
                                Constants.Cosm.auto_feed_url: "https://api.cosm.com/v2/feeds/64451.json",
                                Constants.Cosm.creator: "https://cosm.com/users/gary_pickens",
                                Constants.Cosm.created: 'created',
                                Constants.Cosm.email: "*****@*****.**",
                                Constants.Cosm.feed: "https://api.cosm.com/v2/feeds/64451.json",
                                Constants.Cosm.id: 64451,
                                Constants.Cosm.private: "false",
                                Constants.Cosm.status: "frozen",
                                Constants.Cosm.tags: ["Door", "Temperature"],
                                Constants.Cosm.title: "Garage",
                                Constants.Cosm.updated: 'updated',
                                Constants.Cosm.url: 'url',
                                Constants.Cosm.version: "1.0.0",
                                Constants.Cosm.location_str: 'location',
                                Constants.Cosm.datastreams: 'datastreams',
                            }
                        }
                    }
        cs.report_data( json, data, http )
Example #4
0
 def test_output_with_exception( self, c ):
     options = MagicMock( in_test_mode=False )
     device = 'device'
     port = 'port'
     data = {Constants.DataPacket.device: device,
             Constants.DataPacket.port: port}
     cs = COSMSend( options )
     cs.createDataStream = Mock()
     cs.createJSONReport = Mock()
     cs.report_data = Mock( side_effect=Exception( 'Test' ) )
     cs.output( data )
     cs.createDataStream.called_once_with( device, port, data )
     cs.createJSONReport.called_once_with( device, port, data )
     cs.report_data.called_once_with( device, port, data )
Example #5
0
 def test_output_with_exception(self, c):
     options = MagicMock(in_test_mode=False)
     device = 'device'
     port = 'port'
     data = {
         Constants.DataPacket.device: device,
         Constants.DataPacket.port: port
     }
     cs = COSMSend(options)
     cs.createDataStream = Mock()
     cs.createJSONReport = Mock()
     cs.report_data = Mock(side_effect=Exception('Test'))
     cs.output(data)
     cs.createDataStream.called_once_with(device, port, data)
     cs.createJSONReport.called_once_with(device, port, data)
     cs.report_data.called_once_with(device, port, data)
Example #6
0
    def test_createFeed_with_two_datestreams(self, config):
        options = None
        cs = COSMSend(options)
        device = 'device 1'
        port = 'port 1'
        config.assert_called_once_with()
        cs.config = self.config_data
        data = {
            'device':
            device,
            'port':
            port,
            Constants.DataPacket.action:
            Constants.DataPacket.accumulate,
            Constants.DataPacket.arrival_time:
            datetime.datetime(2012, 1, 2, 3, 4, 5),
            Constants.DataPacket.current_value:
            10
        }
        cs.createDataStream(device, port, data)

        data[Constants.DataPacket.current_value] = 545454
        cs.createDataStream(device, port, data)

        data['device'] = device = 'device 2'
        data[Constants.DataPacket.current_value] = 999
        cs.createDataStream(device, port, data)

        data['device'] = device = 'device 1'
        data[Constants.DataPacket.action] = Constants.DataPacket.send
        cs.report_data = MagicMock()
        cs.output(data)
        pprint.pprint(cs.json)
        pprint.pprint(cs.datapoints)
        #         self.assertEqual( cs.[Constants.Cosm.title], Constants.Cosm.title )
        #         self.assertEqual( cs.json[Constants.Cosm.status], Constants.Cosm.status )
        #         self.assertEqual( cs.json[Constants.Cosm.creator], Constants.Cosm.creator )
        #         self.assertEqual( cs.json[Constants.Cosm.created], Constants.Cosm.created )
        #         self.assertEqual( cs.json[Constants.Cosm.feed], 'url' )
        #         self.assertEqual( cs.json[Constants.Cosm.email], Constants.Cosm.email )
        #         self.assertEqual( cs.json[Constants.Cosm.id], Constants.Cosm.id )
        #         self.assertEqual( cs.json[Constants.Cosm.auto_feed_url], ( 'url', ) )
        #         self.assertEqual( cs.json[Constants.Cosm.version], Constants.Cosm.version )
        cs = None
Example #7
0
    def test_createFeed_with_two_datestreams( self, config ):
        options = None
        cs = COSMSend( options )
        device = 'device 1'
        port = 'port 1'
        config.assert_called_once_with()
        cs.config = self.config_data
        data = {'device': device,
                'port': port,
                Constants.DataPacket.action: Constants.DataPacket.accumulate,
                Constants.DataPacket.arrival_time: datetime.datetime( 2012, 1, 2, 3, 4, 5 ),
                Constants.DataPacket.current_value: 10}
        cs.createDataStream( device, port, data )

        data[Constants.DataPacket.current_value] = 545454
        cs.createDataStream( device, port, data )

        data['device'] = device = 'device 2'
        data[Constants.DataPacket.current_value] = 999
        cs.createDataStream( device, port, data )

        data['device'] = device = 'device 1'
        data[Constants.DataPacket.action] = Constants.DataPacket.send
        cs.report_data = MagicMock()
        cs.output( data )
        pprint.pprint( cs.json )
        pprint.pprint( cs.datapoints )
#         self.assertEqual( cs.[Constants.Cosm.title], Constants.Cosm.title )
#         self.assertEqual( cs.json[Constants.Cosm.status], Constants.Cosm.status )
#         self.assertEqual( cs.json[Constants.Cosm.creator], Constants.Cosm.creator )
#         self.assertEqual( cs.json[Constants.Cosm.created], Constants.Cosm.created )
#         self.assertEqual( cs.json[Constants.Cosm.feed], 'url' )
#         self.assertEqual( cs.json[Constants.Cosm.email], Constants.Cosm.email )
#         self.assertEqual( cs.json[Constants.Cosm.id], Constants.Cosm.id )
#         self.assertEqual( cs.json[Constants.Cosm.auto_feed_url], ( 'url', ) )
#         self.assertEqual( cs.json[Constants.Cosm.version], Constants.Cosm.version )
        cs = None
Example #8
0
    def test_report_data_with_AttribueError(self, config):
        device = 'device'
        port = 'port'
        options = MagicMock(in_test_mode=False)
        response = Mock(status=200)

        attr = {'request.side_effect': AttributeError}
        http = Mock(**attr)

        data = {
            Constants.DataPacket.device:
            device,
            Constants.DataPacket.port:
            port,
            Constants.DataPacket.arrival_time:
            datetime.datetime(2012, 1, 2, 3, 4, 5),
            Constants.DataPacket.current_value:
            10
        }
        cs = COSMSend(options)
        cs.config = config_data = \
                {'device': \
                    {'port': \
                        {
                                Constants.Cosm.datastream.tags: 'tag',
                                Constants.Cosm.datastream.cosm_channel: '1',
                                Constants.Cosm.datastream.max_value: 100,
                                Constants.Cosm.datastream.min_value: 0,
                                Constants.Cosm.location.created: 'created',
                                Constants.Cosm.location.disposition: "fixed",
                                Constants.Cosm.location.domain: 'domain',
                                Constants.Cosm.location.exposure: 'exposure',
                                Constants.Cosm.location.latitude: 30.3351807498968,
                                Constants.Cosm.location.longitude: 97.7104604244232 * -1.0,    # Eclipse save causes error
                                Constants.Cosm.location.private: 'private',
                                Constants.Cosm.apikey: 'apikey',
                                Constants.Cosm.auto_feed_url: "https://api.cosm.com/v2/feeds/64451.json",
                                Constants.Cosm.creator: "https://cosm.com/users/gary_pickens",
                                Constants.Cosm.created: 'created',
                                Constants.Cosm.email: "*****@*****.**",
                                Constants.Cosm.feed: "https://api.cosm.com/v2/feeds/64451.json",
                                Constants.Cosm.id: 64451,
                                Constants.Cosm.private: "false",
                                Constants.Cosm.status: "frozen",
                                Constants.Cosm.tags: ["Door", "Temperature"],
                                Constants.Cosm.title: "Garage",
                                Constants.Cosm.updated: 'updated',
                                Constants.Cosm.url: 'url',
                                Constants.Cosm.version: "1.0.0",
                                Constants.Cosm.location_str: 'location',
                                Constants.Cosm.datastreams: 'datastreams',
                            }
                        }
                    }
        json = 'test'
        cs.report_data(json, data, http)
        print http.request.call_args
        http.request.assert_called_once_with(
            'url',
            body='test',
            headers={
                'Content-Type': 'application/x-www-form-urlencoded',
                'X-PachubeApiKey': 'apikey'
            },
            method='PUT')