diff --git a/tests/test_webmention.py b/tests/test_webmention.py index eb7c52d..eb4f28a 100644 --- a/tests/test_webmention.py +++ b/tests/test_webmention.py @@ -294,6 +294,23 @@ class WebmentionTest(testutil.TestCase): mock_get.assert_has_calls((self.req('http://a/post'),)) + def test_no_targets(self, mock_get, mock_post): + mock_get.return_value = requests_response(""" + + +

no one to send to!

+ +""", content_type=CONTENT_TYPE_HTML) + + got = app.get_response( + '/webmention', method='POST', body=urllib.urlencode({ + 'source': 'http://a/post', + 'target': 'https://fed.brid.gy/', + })) + self.assertEquals(200, got.status_int) + + mock_get.assert_has_calls((self.req('http://a/post'),)) + def test_no_backlink(self, mock_get, mock_post): mock_get.return_value = requests_response( self.reply_html.replace('', ''), diff --git a/webmention.py b/webmention.py index d008b6e..bd7163b 100644 --- a/webmention.py +++ b/webmention.py @@ -209,6 +209,10 @@ class WebmentionHandler(webapp2.RequestHandler): def try_salmon(self): """Returns True if we attempted OStatus delivery. Raises otherwise.""" target = self.target_resp.url if self.target_resp else self._single_target() + if not target: + logging.warning("No targets or followers. Ignoring.") + return False + resp = Response.get_or_create( source=self.source_url, target=target, direction='out', source_mf2=json.dumps(self.source_mf2))