From 2313923abdffd35bb6644956355617999f1a5f06 Mon Sep 17 00:00:00 2001
From: mbeierl <mark.beierl@emc.com>
Date: Wed, 7 Oct 2015 19:18:19 -0700
Subject: Created converters

JIRA: STORPERF-6

Change-Id: Idba1718a8ad8243872ca100ed10b1c457221d147
Signed-off-by: mbeierl <mark.beierl@emc.com>
---
 tests/__init__.py            |  0
 tests/carbon/__init__.py     |  0
 tests/carbon/emitter_test.py | 65 ++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 65 insertions(+)
 create mode 100644 tests/__init__.py
 create mode 100644 tests/carbon/__init__.py
 create mode 100644 tests/carbon/emitter_test.py

(limited to 'tests')

diff --git a/tests/__init__.py b/tests/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/tests/carbon/__init__.py b/tests/carbon/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/tests/carbon/emitter_test.py b/tests/carbon/emitter_test.py
new file mode 100644
index 0000000..5caba61
--- /dev/null
+++ b/tests/carbon/emitter_test.py
@@ -0,0 +1,65 @@
+##############################################################################
+# Copyright (c) 2015 EMC and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
+import unittest
+
+import json
+import SocketServer
+import threading
+from time import sleep
+
+import carbon.converter
+import carbon.emitter
+
+class MetricsHandler(SocketServer.BaseRequestHandler):
+
+    def handle(self):
+        # Echo the back to the client
+        CarbonMetricTransmitterTest.response = self.request.recv(1024)
+        return
+
+class MetricsServer(SocketServer.ThreadingMixIn, SocketServer.TCPServer):
+    pass
+
+class CarbonMetricTransmitterTest(unittest.TestCase):
+    listen_port = 0
+    response = None
+    
+    def setUp(self):
+        
+        address = ('localhost', 0)
+        server = MetricsServer(address, MetricsHandler)
+        ip, self.listen_port = server.server_address
+    
+        t = threading.Thread(target=server.serve_forever)
+        t.setDaemon(True) 
+        t.start()
+    
+    def test_transmit_metrics(self):
+
+        testconv = carbon.converter.JSONToCarbon()
+        json_object = json.loads("""{"timestamp" : "12345"}""")
+        result = testconv.convert_to_dictionary(json_object, "host.run-name")
+
+        emitter = carbon.emitter.CarbonMetricTransmitter()
+        emitter.carbon_port = self.listen_port
+        emitter.transmit_metrics(result)
+        
+        count = 0
+        
+        while (CarbonMetricTransmitterTest.response == None and count < 10):
+            count += 1
+            sleep(0.1)
+        
+        self.assertEqual("host.run-name.timestamp 12345 12345\n", 
+                         CarbonMetricTransmitterTest.response, 
+                         CarbonMetricTransmitterTest.response)
+
+if __name__ == '__main__':
+    unittest.main()
\ No newline at end of file
-- 
cgit