Merge lp:~verterok/unity-scope-songkick/empty-response into lp:unity-scope-songkick

Proposed by Guillermo Gonzalez
Status: Merged
Approved by: Guillermo Gonzalez
Approved revision: 16
Merged at revision: 15
Proposed branch: lp:~verterok/unity-scope-songkick/empty-response
Merge into: lp:unity-scope-songkick
Diff against target: 87 lines (+33/-13)
3 files modified
src/unity_songkick_daemon.py (+2/-3)
tests/data/mock_songkick_empty (+2/-0)
tests/test_songkick.py (+29/-10)
To merge this branch: bzr merge lp:~verterok/unity-scope-songkick/empty-response
Reviewer Review Type Date Requested Status
PS Jenkins bot (community) continuous-integration Approve
Facundo Batista (community) Approve
Review via email: mp+189163@code.launchpad.net

Commit message

Handle empty result

Description of the change

Handle empty result

To post a comment you must log in.
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
16. By Guillermo Gonzalez

add test data file

Revision history for this message
Facundo Batista (facundo) :
review: Approve
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Approve (continuous-integration)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'src/unity_songkick_daemon.py'
2--- src/unity_songkick_daemon.py 2013-09-24 22:21:01 +0000
3+++ src/unity_songkick_daemon.py 2013-10-03 19:30:01 +0000
4@@ -74,13 +74,12 @@
5 response = urllib.request.urlopen(uri).read()
6 response = response.decode('utf8')
7 json_response = json.loads(response)
8- result = json_response['resultsPage']['results']['event']
9+ result = json_response['resultsPage']['results'].get('event', [])
10 except Exception:
11 logger.exception("Error while fetching: %r", uri)
12- result = {}
13+ result = []
14 if result:
15 for item in result:
16-
17 icon_hint = ""
18 for artist in item['performance']:
19 #if artist['artist']['displayName'].lower() == search.replace("%20", " "):
20
21=== added file 'tests/data/mock_songkick_empty'
22--- tests/data/mock_songkick_empty 1970-01-01 00:00:00 +0000
23+++ tests/data/mock_songkick_empty 2013-10-03 19:30:01 +0000
24@@ -0,0 +1,2 @@
25+{"resultsPage":{"status":"ok","results":{},"perPage":50,"page":1,"totalEntries":0}}
26+
27
28=== modified file 'tests/test_songkick.py'
29--- tests/test_songkick.py 2013-09-25 02:59:30 +0000
30+++ tests/test_songkick.py 2013-10-03 19:30:01 +0000
31@@ -1,8 +1,10 @@
32 #! /usr/bin/python3
33 # -*- coding: utf-8 -*-
34+import imp
35+import logging
36+
37 from gi.repository import Unity
38 from unittest import TestCase
39-import imp
40
41
42 class ResultSet(Unity.ResultSet):
43@@ -43,18 +45,35 @@
44 expected_results = ["http://www.songkick.com/concerts/15019954-black-rebel-motorcycle-club-at-academy?utm_source=18004&utm_medium=partner",
45 "Black Rebel Motorcycle Club at Academy (March 11, 2013)"]
46 results = []
47- for s in ['empathy']:
48- result_set = self.perform_query(s)
49- results.append(result_set.results[0]['uri'])
50- results.append(result_set.results[0]['title'])
51+ result_set = self.perform_query("Black")
52+ results.append(result_set.results[0]['uri'])
53+ results.append(result_set.results[0]['title'])
54 self.assertEqual(results, expected_results)
55
56-
57- def test_questions_failing_search(self):
58+ def test_failing_search(self):
59 self.scope_module.SEARCH_URI = 'file:tests/data/mock_songkick_fail#'
60- for s in ['empathy']:
61- result_set = self.perform_query(s)
62- self.assertEqual(len(result_set.results), 0)
63+ result_set = self.perform_query("empathy")
64+ self.assertEqual(len(result_set.results), 0)
65+
66+ def test_empty_result(self):
67+ self.scope_module.SEARCH_URI = 'file:tests/data/mock_songkick_empty#'
68+ handler = Handler()
69+ handler.setLevel(logging.ERROR)
70+ self.scope_module.logger.addHandler(handler)
71+ result_set = self.perform_query("foo")
72+ self.assertEqual(len(result_set.results), 0)
73+ self.assertEqual(len(handler.records), 0)
74+
75+
76+class Handler(logging.Handler):
77+ """Log handler to capture messages."""
78+
79+ def __init__(self):
80+ super(Handler, self).__init__()
81+ self.records = []
82+
83+ def emit(self, record):
84+ self.records.append(record)
85
86 if __name__ == '__main__':
87 unittest.main()

Subscribers

People subscribed via source and target branches