Skip to content

Commit 276cce7

Browse files
author
Sam Clements
committed
TCPTransport.send returns Riemanns response
UDPTransport.send returns NotImplemented
1 parent b7f8e2c commit 276cce7

3 files changed

Lines changed: 19 additions & 24 deletions

File tree

riemann_client/client.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,7 @@ def send_event(self, event):
3939
"""Wraps an event in a message and sends it to Riemann"""
4040
message = riemann_client.riemann_pb2.Msg()
4141
message.events.extend([event])
42-
self.transport.send(message)
43-
return event
42+
return self.transport.send(message)
4443

4544
def event(self, **data):
4645
"""Sends an event"""
@@ -65,8 +64,7 @@ def create_dict(event):
6564
def send_query(self, query):
6665
message = riemann_client.riemann_pb2.Msg()
6766
message.query.string = query
68-
self.transport.send(message)
69-
return self.transport.recv()
67+
return self.transport.send(message)
7068

7169
def query(self, query):
7270
response = self.send_query(query)

riemann_client/test_riemann_client.py

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,6 @@ def connect(self):
1616

1717
def send(self, message):
1818
self.string.write(message.SerializeToString())
19-
20-
def recv(self):
21-
message = riemann_client.riemann_pb2.Msg()
2219
message.ok = True
2320
return message
2421

@@ -38,27 +35,33 @@ def disconnect():
3835
return client
3936

4037

38+
@py.test.fixture
39+
def event(client):
40+
"""Send and return a blank event"""
41+
message = client.event()
42+
return message.events[0]
43+
44+
4145
class TestClient(object):
4246
def test_service(self, client):
4347
client.event(service='test event')
4448
assert 'test event' in client.transport.string.getvalue()
4549

46-
def test_default_hostname(self, client):
47-
event = client.event()
50+
def test_default_hostname(self, client, event):
4851
assert socket.gethostname() == event.host
4952
assert socket.gethostname() in client.transport.string.getvalue()
5053

5154
def test_custom_hostname(self, client):
52-
event = client.event(host="test.example.com")
55+
event = client.event(host="test.example.com").events[0]
5356
assert "test.example.com" == event.host
5457
assert "test.example.com" in client.transport.string.getvalue()
5558

5659
def test_tags(self, client):
5760
client.event(tags=['tag-1', 'tag-2'])
5861
assert "tag-1" in client.transport.string.getvalue()
5962

60-
def test_event_cls(self, client):
61-
assert isinstance(client.event(), riemann_client.riemann_pb2.Event)
63+
def test_event_cls(self, event):
64+
assert isinstance(event, riemann_client.riemann_pb2.Event)
6265

6366
def test_query(self, client):
6467
assert client.query("true") == []

riemann_client/transport.py

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -44,10 +44,6 @@ def disconnect(self):
4444
def send(self):
4545
pass
4646

47-
@abc.abstractmethod
48-
def recv(self):
49-
pass
50-
5147

5248
class UDPTransport(Transport):
5349
def connect(self):
@@ -58,9 +54,7 @@ def disconnect(self):
5854

5955
def send(self, message):
6056
self.socket.sendto(message.SerializeToString(), self.address)
61-
62-
def recv(self):
63-
raise NotImplementedError
57+
return NotImplemented
6458

6559

6660
class TCPTransport(Transport):
@@ -75,18 +69,18 @@ def send(self, message):
7569
message = message.SerializeToString()
7670
self.socket.sendall(struct.pack('!I', len(message)) + message)
7771

78-
def recv(self):
7972
length = struct.unpack('!I', self.socket.recv(4))[0]
80-
8173
response = riemann_client.riemann_pb2.Msg()
82-
response.ParseFromString(self.recvall(length))
74+
response.ParseFromString(self.socket_recvall(socket, length))
8375

8476
if not response.ok:
8577
raise RiemannError(response.error)
78+
8679
return response
8780

88-
def recvall(self, length, bufsize=4096):
81+
@staticmethod
82+
def socket_recvall(socket, length, bufsize=4096):
8983
data = ""
9084
while len(data) < length:
91-
data += self.socket.recv(bufsize)
85+
data += socket.recv(bufsize)
9286
return data

0 commit comments

Comments
 (0)