summaryrefslogtreecommitdiff
path: root/ceilometermiddleware/tests/test_swift.py
diff options
context:
space:
mode:
Diffstat (limited to 'ceilometermiddleware/tests/test_swift.py')
-rw-r--r--ceilometermiddleware/tests/test_swift.py26
1 files changed, 26 insertions, 0 deletions
diff --git a/ceilometermiddleware/tests/test_swift.py b/ceilometermiddleware/tests/test_swift.py
index 2e7287a..4c0f43e 100644
--- a/ceilometermiddleware/tests/test_swift.py
+++ b/ceilometermiddleware/tests/test_swift.py
@@ -20,6 +20,7 @@ import six
from ceilometermiddleware import swift
from ceilometermiddleware.tests import base as tests_base
+from threading import Event
class FakeApp(object):
@@ -90,6 +91,31 @@ class TestSwift(tests_base.TestCase):
self.assertEqual('obj', metadata['object'])
self.assertEqual('get', data[2]['target']['action'])
+ def test_get_background(self):
+ notified = Event()
+ app = swift.Swift(FakeApp(),
+ {"nonblocking_notify": "True",
+ "send_queue_size": "1"})
+ req = FakeRequest('/1.0/account/container/obj',
+ environ={'REQUEST_METHOD': 'GET'})
+ with mock.patch('oslo_messaging.Notifier.info',
+ side_effect=lambda *args, **kwargs: notified.set()
+ ) as notify:
+ resp = app(req.environ, self.start_response)
+ self.assertEqual(["This string is 28 bytes long"], list(resp))
+ notified.wait()
+ self.assertEqual(1, len(notify.call_args_list))
+ data = notify.call_args_list[0][0]
+ self.assertEqual('objectstore.http.request', data[1])
+ self.assertEqual(28, data[2]['measurements'][0]['result'])
+ self.assertEqual('storage.objects.outgoing.bytes',
+ data[2]['measurements'][0]['metric']['name'])
+ metadata = data[2]['target']['metadata']
+ self.assertEqual('1.0', metadata['version'])
+ self.assertEqual('container', metadata['container'])
+ self.assertEqual('obj', metadata['object'])
+ self.assertEqual('get', data[2]['target']['action'])
+
def test_put(self):
app = swift.Swift(FakeApp(body=['']), {})
req = FakeRequest(