예제 #1
0
 def test_discover_empty_response(self):
     api = hue.Api()
     mock_request = mock.Mock()
     mock_request.json.return_value = []
     with mock.patch('hue.requests.get', return_value=mock_request) as m:
         ip = api.discover()
         self.assertEqual(ip, None)
         self.assertEqual(api.ip, None)
     m.assert_called_once_with('http://www.meethue.com/api/nupnp')
     mock_request.json.assert_called_once_with()
예제 #2
0
 def test_create_group_error(self, mock_requests):
     api = hue.Api('192.168.1.10', 'test_user')
     mock_request = mock.Mock()
     mock_request.json.return_value = [{
         'error' : {'description' : 'Error creating group'}
     }]
     with self.assertRaises(Exception) as cm:
         with mock.patch('hue.requests.post', return_value=mock_request) as m:
             g = api.group.create('test', ['1','2'])
     m.assert_called_once_with('http://192.168.1.10/api/test_user/groups',
             data=json.dumps({
         'name'   : 'test',
         'lights' : ['1', '2']
     }))
예제 #3
0
 def test_register(self):
     api = hue.Api('192.168.1.10')
     mock_request = mock.Mock()
     mock_request.json.return_value = [{
         'success' : {'username' : 'test'}
     }]
     with mock.patch('hue.requests.post', return_value=mock_request) as m:
         api.register('test')
         self.assertEqual(api.username, 'test')
     m.assert_called_once_with('http://192.168.1.10/api', data=json.dumps({
         'username'   : 'test',
         'devicetype' : 'hue.py'
     }))
     mock_request.json.assert_called_once_with()
예제 #4
0
 def test_create_group(self, mock_requests):
     api = hue.Api('192.168.1.10', 'test_user')
     mock_request = mock.Mock()
     mock_request.json.return_value = [{
         'success' : {'id' : '/groups/1'}
     }]
     with mock.patch('hue.requests.post', return_value=mock_request) as m:
         g = api.group.create('test', ['1','2'])
         self.assertEqual(g.groupid, '1')
     m.assert_called_once_with('http://192.168.1.10/api/test_user/groups',
             data=json.dumps({
         'name'   : 'test',
         'lights' : ['1', '2']
     }))
     mock_request.json.assert_called_once_with()
예제 #5
0
 def test_discover(self):
     api = hue.Api()
     mock_request = mock.Mock()
     mock_request.json.return_value = [{
         "id":"123456789",
         "internalipaddress":"192.168.1.10",
         "macaddress":"00:11:22:33:44:55",
         "name":"Philips hue"
     }]
     with mock.patch('hue.requests.get', return_value=mock_request) as m:
         ip = api.discover()
         self.assertEqual(ip, '192.168.1.10')
         self.assertEqual(api.ip, ip)
     m.assert_called_once_with('http://www.meethue.com/api/nupnp')
     mock_request.json.assert_called_once_with()
예제 #6
0
 def test_register_error(self):
     api = hue.Api('192.168.1.10')
     mock_request = mock.Mock()
     mock_request.json.return_value = [{
         'error' : {'description' : 'Link button not pressed.'}
     }]
     with self.assertRaises(Exception) as cm:
         with mock.patch('hue.requests.post', return_value=mock_request) as m:
             api.register('test')
             self.assertEqual(api.username, None)
     #FIXME: ordering is not guaranteed with dicts so these tests can fail
     #       seemingly randomly
     m.assert_called_once_with('http://192.168.1.10/api', data=json.dumps({
         'username'   : 'test',
         'devicetype' : 'hue.py'
     }))