~didrocks/ubuntu/raring/unity-lens-radios/raring

« back to all changes in this revision

Viewing changes to private_lib/tests/test_radiohandler.py

  • Committer: Didier Roche
  • Date: 2012-06-25 18:49:43 UTC
  • Revision ID: didier.roche@canonical.com-20120625184943-6mawnm5qlr7ubifw
fix some format due to real data passed

Show diffs side-by-side

added added

removed removed

Lines of Context:
151
151
                if domain == 'country':
152
152
                    dom_id = 2
153
153
                active = Mock()
154
 
                active.active = True
155
 
                active.id = dom_id + 42
 
154
                active.props.active = True
 
155
                active.props.id = dom_id + 42
156
156
                unactive = Mock()
157
 
                unactive.active = False
158
 
                unactive.id = dom_id + 4242
 
157
                unactive.props.active = False
 
158
                unactive.props.id = dom_id + 4242
159
159
                obj.options = (active, unactive)
160
160
            return obj
161
161
 
172
172
                return return_mock_filter_with_active_options(domain)
173
173
            genre_filter_result = Mock()
174
174
            unactive = Mock()
175
 
            unactive.active = False
 
175
            unactive.props.active = False
176
176
            genre_filter_result.options = [unactive]
177
177
            return genre_filter_result
178
178
 
181
181
                return return_mock_filter_with_active_options(domain)
182
182
            genre_filter_result = Mock()
183
183
            unactive = Mock()
184
 
            unactive.active = False
 
184
            unactive.props.active = False
185
185
            genre_filter_result.options = [unactive]
186
186
            return genre_filter_result
187
187
 
218
218
        radio_attributes = {'name': "Radio2", "pictureBaseURL": "/root/", "picture1Name": "bar.png", "genresAndTopics": "Rock, Techno, Années 90s, Years 2100",
219
219
                         'currentTrack': "Radio2 current track", "country": "UK", "rating": 5, "id": 2}
220
220
        self.radio2 = Radio(radio_attributes, None)
221
 
        self.fake_model = Mock()
222
221
 
223
222
    @patch('private_lib.radiohandler.OnlineRadioInfo')
224
223
    def test_search_content_global(self, onlineradioinfromclass):
228
227
        with patch.object(self.radiohandler, '_return_active_filters') as _return_active_filters_func:
229
228
            onlineradioinfromclass().get_most_wanted_stations.return_value = fake_radio_results
230
229
            _return_active_filters_func.side_effect = lambda x: None
231
 
            self.radiohandler.search_content("", self.fake_model, None)
232
230
 
 
231
            results = [(self.radio1, ("42", '/root/foo.png', 2, 'text/html', 'Radio1', 'Radio1 current track', '')),
 
232
                       (self.radio2, ("2", '/root/bar.png', 2, 'text/html', 'Radio2', 'Radio2 current track', '')),
 
233
                       (self.radio1, ("42", '/root/foo.png', 1, 'text/html', 'Radio1', 'Radio1 current track', ''))]
 
234
            i = 0
 
235
            for (radio, model_data) in self.radiohandler.get_model_data_from_content_search("", None):
 
236
                self.assertEquals((radio, model_data), results[i])
 
237
                i += 1
233
238
            onlineradioinfromclass().get_most_wanted_stations.assert_called_once_with()
234
 
            self.assertEquals(self.fake_model.append.call_args_list, [mock.call(42, '/root/foo.png', 2, 'text/html', 'Radio1', 'Radio1 current track', ''),
235
 
                                                                      mock.call(2, '/root/bar.png', 2, 'text/html', 'Radio2', 'Radio2 current track', ''),
236
 
                                                                      mock.call(42, '/root/foo.png', 1, 'text/html', 'Radio1', 'Radio1 current track', '')])
237
239
 
238
240
    @patch('private_lib.radiohandler.OnlineRadioInfo')
239
241
    def test_search_content_search(self, onlineradioinfromclass):
243
245
        with patch.object(self.radiohandler, '_return_active_filters') as _return_active_filters_func:
244
246
            onlineradioinfromclass().get_stations_by_searchstring.return_value = fake_radio_results
245
247
            _return_active_filters_func.side_effect = lambda x: None
246
 
            self.radiohandler.search_content("searchsearch", self.fake_model, None)
247
248
 
 
249
            results = [(self.radio1, ("42", '/root/foo.png', 3, 'text/html', 'Radio1', 'Radio1 current track', '')),
 
250
                       (self.radio2, ("2", '/root/bar.png', 3, 'text/html', 'Radio2', 'Radio2 current track', ''))]
 
251
            i = 0
 
252
            for (radio, model_data) in self.radiohandler.get_model_data_from_content_search("searchsearch", None):
 
253
                self.assertEquals((radio, model_data), results[i])
 
254
                i += 1
248
255
            onlineradioinfromclass().get_stations_by_searchstring.assert_called_once_with("searchsearch")
249
 
            self.assertEquals(self.fake_model.append.call_args_list, [mock.call(42, '/root/foo.png', 3, 'text/html', 'Radio1', 'Radio1 current track', ''),
250
 
                                                                      mock.call(2, '/root/bar.png', 3, 'text/html', 'Radio2', 'Radio2 current track', '')])
251
256
 
252
257
    @patch('private_lib.radiohandler.OnlineRadioInfo')
253
258
    def test_search_content_global_with_filter(self, onlineradioinfromclass):
257
262
        with patch.object(self.radiohandler, '_return_active_filters') as _return_active_filters_func:
258
263
            onlineradioinfromclass().get_most_wanted_stations.return_value = fake_radio_results
259
264
            _return_active_filters_func.side_effect = lambda x: {"country": ['France']}
260
 
            self.radiohandler.search_content("", self.fake_model, None)
261
265
 
 
266
            results = [(self.radio1, ("42", '/root/foo.png', 2, 'text/html', 'Radio1', 'Radio1 current track', '')),
 
267
                       (self.radio1, ("42", '/root/foo.png', 1, 'text/html', 'Radio1', 'Radio1 current track', ''))]
 
268
            i = 0
 
269
            for (radio, model_data) in self.radiohandler.get_model_data_from_content_search("", None):
 
270
                self.assertEquals((radio, model_data), results[i])
 
271
                i += 1
262
272
            onlineradioinfromclass().get_most_wanted_stations.assert_called_once_with()
263
 
            self.assertEquals(self.fake_model.append.call_args_list, [mock.call(42, '/root/foo.png', 2, 'text/html', 'Radio1', 'Radio1 current track', ''),
264
 
                                                                      mock.call(42, '/root/foo.png', 1, 'text/html', 'Radio1', 'Radio1 current track', '')])
265
273
 
266
274
    @patch('private_lib.radiohandler.OnlineRadioInfo')
267
275
    def test_search_content_search_with_filters(self, onlineradioinfromclass):
271
279
        with patch.object(self.radiohandler, '_return_active_filters') as _return_active_filters_func:
272
280
            onlineradioinfromclass().get_stations_by_searchstring.return_value = fake_radio_results
273
281
            _return_active_filters_func.side_effect = lambda x: {"country": ['France']}
274
 
            self.radiohandler.search_content("searchsearch", self.fake_model, None)
275
282
 
 
283
            results = [(self.radio1, ("42", '/root/foo.png', 3, 'text/html', 'Radio1', 'Radio1 current track', ''))]
 
284
            i = 0
 
285
            for (radio, model_data) in self.radiohandler.get_model_data_from_content_search("searchsearch", None):
 
286
                self.assertEquals((radio, model_data), results[i])
 
287
                i += 1
276
288
            onlineradioinfromclass().get_stations_by_searchstring.assert_called_once_with("searchsearch")
277
 
            self.assertEquals(self.fake_model.append.call_args_list, [mock.call(42, '/root/foo.png', 3, 'text/html', 'Radio1', 'Radio1 current track', '')])
278
289
 
279
290
    @patch('private_lib.radiohandler.OnlineRadioInfo')
280
291
    def test_search_using_cache(self, onlineradioinfromclass):
283
294
        with patch.object(self.radiohandler, '_return_active_filters') as _return_active_filters_func:
284
295
            onlineradioinfromclass().get_most_wanted_stations.return_value = fake_radio_results
285
296
            _return_active_filters_func.side_effect = lambda x: None
286
 
            self.radiohandler.search_content("", self.fake_model, None)
 
297
            # consume the generator
 
298
            list(self.radiohandler.get_model_data_from_content_search("", None))
287
299
            self.assertEquals(self.radiohandler._last_search, "")
288
300
 
289
301
            onlineradioinfromclass().get_most_wanted_stations.assert_called_once_with()
290
302
            # second search, should still be searched once
291
 
            self.radiohandler.search_content("", self.fake_model, None)
 
303
            list(self.radiohandler.get_model_data_from_content_search("", None))
292
304
            self.assertEquals(self.radiohandler._last_search, "")
293
305
            onlineradioinfromclass().get_most_wanted_stations.assert_called_once_with()
294
306
 
295
307
            # Same with real search, not only global
296
308
            fake_radio_results = [self.radio1, self.radio2]
297
309
            onlineradioinfromclass().get_stations_by_searchstring.return_value = fake_radio_results
298
 
            self.radiohandler.search_content("searchsearch", self.fake_model, None)
 
310
            list(self.radiohandler.get_model_data_from_content_search("searchsearch", None))
299
311
            self.assertEquals(self.radiohandler._last_search, "searchsearch")
300
312
 
301
313
            onlineradioinfromclass().get_stations_by_searchstring.assert_called_once_with("searchsearch")
302
 
            self.radiohandler.search_content("searchsearch", self.fake_model, None)
 
314
            list(self.radiohandler.get_model_data_from_content_search("searchsearch", None))
303
315
            self.assertEquals(self.radiohandler._last_search, "searchsearch")
304
316
            onlineradioinfromclass().get_stations_by_searchstring.assert_called_once_with("searchsearch")
305
317