Skip to content
This repository was archived by the owner on May 16, 2019. It is now read-only.

Commit acb785c

Browse files
author
Tom Galloway
committed
RPC Get Image now actually ensuring exception code is hit.
1 parent 95dbb43 commit acb785c

File tree

2 files changed

+12
-1
lines changed

2 files changed

+12
-1
lines changed

market/protocol.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ def rpc_get_image(self, sender, image_hash):
6161
self.router.addContact(sender)
6262
try:
6363
if len(image_hash) != 20:
64+
self.log.warning("Image hash is not 20 characters %s" % image_hash)
6465
raise Exception("Invalid image hash")
6566
self.log.info("serving image %s to %s" % (image_hash.encode('hex'), sender))
6667
with open(self.db.HashMap().get_file(image_hash.encode("hex")), "rb") as filename:

market/tests/test_protocol.py

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
from twisted.trial import unittest
2+
from twisted.python import log
23

34
from dht.node import Node
45
from dht.utils import digest
@@ -8,6 +9,10 @@
89

910
class MarketProtocolTest(unittest.TestCase):
1011
def setUp(self):
12+
self.catcher = []
13+
observer = self.catcher.append
14+
log.addObserver(observer)
15+
self.addCleanup(log.removeObserver, observer)
1116
self.node = Node(digest("test"), "127.0.0.1", 1234)
1217
self.router = RoutingTable(self, 20, self.node.id)
1318

@@ -24,5 +29,10 @@ def test_add_listener_correctly(self):
2429
self.assertEqual(len(mp.listeners), 1)
2530

2631
def test_rpc_get_image_invalid_image_hash(self):
32+
catcher = self.catcher
2733
mp = MarketProtocol(self.node, self.router, 0, 0)
28-
self.assertRaises(Exception, mp.rpc_get_image(mknode(), "invalid_hash"))
34+
self.assertEqual(None, mp.rpc_get_image(mknode(), "invalid_hash"))
35+
catch_exception = catcher.pop()
36+
exception_message = catcher.pop()
37+
self.assertEquals(catch_exception["message"][0], "[WARNING] could not find image 696e76616c69645f68617368")
38+
self.assertEquals(exception_message["message"][0], "[WARNING] Image hash is not 20 characters invalid_hash")

0 commit comments

Comments
 (0)