151
151
if domain == 'country':
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)
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
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
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()
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)
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', ''))]
235
for (radio, model_data) in self.radiohandler.get_model_data_from_content_search("", None):
236
self.assertEquals((radio, model_data), results[i])
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', '')])
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)
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', ''))]
252
for (radio, model_data) in self.radiohandler.get_model_data_from_content_search("searchsearch", None):
253
self.assertEquals((radio, model_data), results[i])
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', '')])
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)
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', ''))]
269
for (radio, model_data) in self.radiohandler.get_model_data_from_content_search("", None):
270
self.assertEquals((radio, model_data), results[i])
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', '')])
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)
283
results = [(self.radio1, ("42", '/root/foo.png', 3, 'text/html', 'Radio1', 'Radio1 current track', ''))]
285
for (radio, model_data) in self.radiohandler.get_model_data_from_content_search("searchsearch", None):
286
self.assertEquals((radio, model_data), results[i])
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', '')])
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, "")
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()
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")
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")