def setUp(self): self.endpoint = 'http://softlayer.com/v1/account' self.queue_name = 'queue_name' self.base_href = "%s/queues/%s" % (self.endpoint, self.queue_name) self.auth = Mock() self.queue = Queue(self.endpoint, self.queue_name, self.auth)
class TestQueue(unittest.TestCase): def setUp(self): self.endpoint = 'http://softlayer.com/v1/account' self.queue_name = 'queue_name' self.base_href = "%s/queues/%s" % (self.endpoint, self.queue_name) self.auth = Mock() self.queue = Queue(self.endpoint, self.queue_name, self.auth) def test_client_init(self): self.assertEquals(self.queue.url, self.base_href) self.assertEquals(self.queue.name, self.queue_name) self.assertEquals(self.queue.auth, self.auth) @patch('requests.request') def test_request(self, res): header_resp = Mock() res.return_value.error = None res.return_value.status_code = 200 res.return_value.content = '{"some": "json"}' res.return_value.headers = header_resp self.queue.headers = {'test': Mock()} result = self.queue.request('GET', 'messages') self.assertEqual(result.json, {'some': 'json'}) self.assertEqual(result.headers, header_resp) res.assert_called_with( 'GET', '%s/messages' % (self.base_href,), headers=self.queue.headers, auth=self.auth) @patch('softlayer_messaging.queue.Queue.request') def test_detail(self, res): result = self.queue.detail() res.assert_called_with('GET') self.assertEqual(result, res().json) @patch('softlayer_messaging.queue.Queue.request') def test_modify_queue(self, res): kwargs = {'arg1': 'arg1', 'arg2': 'arg2'} result = self.queue.modify(**kwargs) res.assert_called_with('PUT', data=json.dumps(kwargs)) self.assertEqual(result, res().json) @patch('softlayer_messaging.queue.Queue.request') def test_delete_queue(self, res): result = self.queue.delete() res.assert_called_with('DELETE', params={}) self.assertEqual(result, True) @patch('softlayer_messaging.queue.Queue.request') def test_delete_queue_force(self, res): result = self.queue.delete(force=True) res.assert_called_with('DELETE', params={'force': 1}) self.assertEqual(result, True) @patch('softlayer_messaging.queue.Queue.request') def test_push(self, res): message_body = "body" message_options = {'option_a': 'a', 'option_b': 'b'} result = self.queue.push(message_body, **message_options) json_doc = {'body': 'body', 'option_a': 'a', 'option_b': 'b'} res.assert_called_with( 'POST', 'messages', data=json.dumps(json_doc)) self.assertEqual(result, res().json) @patch('softlayer_messaging.queue.Queue.request') def test_pop(self, res): count = Mock() result = self.queue.pop(count) res.assert_called_with('GET', 'messages', params={'batch': count}) self.assertEqual(result, res().json) @patch('softlayer_messaging.queue.Message') def test_message(self, res): msg_id = Mock() q = self.queue.message(msg_id) res.assert_called_with(self.queue.url, self.queue.name, msg_id, self.queue.auth) self.assertEqual(q, res()) def test_repr(self): self.queue.url = "URL" value = repr(self.queue) self.assertEqual(value, "<Queue [URL]>")