def test_entry_list_with_next_series_episodes(self, execute_task): entry = Entry() entry['title'] = 'foo.s01e01.720p.hdtv-flexget' entry['url'] = '' with Session() as session: entry_list = EntryListList() entry_list.name = 'series list' session.add(entry_list) session.commit() db_entry = EntryListEntry(entry, entry_list.id) entry_list.entries.append(db_entry) task = execute_task('entry_list_with_series') assert task.find_entry('accepted', title='foo.s01e01.720p.hdtv-flexget')
def test_entry_list_search(self, execute_task): entry = Entry() entry['title'] = 'test title' entry['url'] = '' with Session() as session: entry_list = EntryListList() entry_list.name = 'Test list' session.add(entry_list) session.commit() db_entry = EntryListEntry(entry, entry_list.id) entry_list.entries.append(db_entry) task = execute_task('entry_list_discover') assert len(task.entries) > 0 assert task.find_entry(title='test title')
def test_entry_list_pagination(self, api_client, link_headers): base_entry = dict(title='test_title_', original_url='url_') number_of_entries = 200 with Session() as session: entry_list = EntryListList(name='test list') session.add(entry_list) for i in range(number_of_entries): entry = copy.deepcopy(base_entry) for k, v in entry.items(): entry[k] = v + str(i) e = Entry(entry) entry_list.entries.append(EntryListEntry(e, entry_list.id)) # Default values rsp = api_client.get('/entry_list/1/entries/') assert rsp.status_code == 200, 'Response code is %s' % rsp.status_code data = json.loads(rsp.get_data(as_text=True)) assert len(data) == 50 assert int(rsp.headers['total-count']) == 200 assert int(rsp.headers['count']) == 50 links = link_headers(rsp) assert links['last']['page'] == 4 assert links['next']['page'] == 2 # Change page size rsp = api_client.get('/entry_list/1/entries/?per_page=100') assert rsp.status_code == 200 data = json.loads(rsp.get_data(as_text=True)) assert len(data) == 100 assert int(rsp.headers['total-count']) == 200 assert int(rsp.headers['count']) == 100 links = link_headers(rsp) assert links['last']['page'] == 2 assert links['next']['page'] == 2 # Get different page rsp = api_client.get('/entry_list/1/entries/?page=2') assert rsp.status_code == 200 data = json.loads(rsp.get_data(as_text=True)) assert len(data) == 50 assert int(rsp.headers['total-count']) == 200 assert int(rsp.headers['count']) == 50 links = link_headers(rsp) assert links['last']['page'] == 4 assert links['next']['page'] == 3 assert links['prev']['page'] == 1
def test_entry_list_sorting(self, api_client): base_entry_1 = dict(title='test_title_1', original_url='url_c') base_entry_2 = dict(title='test_title_2', original_url='url_b') base_entry_3 = dict(title='test_title_3', original_url='url_a') with Session() as session: entry_list = EntryListList(name='test list') session.add(entry_list) e1 = Entry(base_entry_1) e2 = Entry(base_entry_2) e3 = Entry(base_entry_3) entry_list.entries.append(EntryListEntry(e1, entry_list.id)) entry_list.entries.append(EntryListEntry(e2, entry_list.id)) entry_list.entries.append(EntryListEntry(e3, entry_list.id)) # Sort by title rsp = api_client.get('/entry_list/1/entries/?sort_by=title') assert rsp.status_code == 200, 'Response code is %s' % rsp.status_code data = json.loads(rsp.get_data(as_text=True)) assert data[0]['title'] == 'test_title_3' rsp = api_client.get('/entry_list/1/entries/?sort_by=title&order=asc') assert rsp.status_code == 200, 'Response code is %s' % rsp.status_code data = json.loads(rsp.get_data(as_text=True)) assert data[0]['title'] == 'test_title_1' # Sort by original url rsp = api_client.get('/entry_list/1/entries/?sort_by=original_url') assert rsp.status_code == 200, 'Response code is %s' % rsp.status_code data = json.loads(rsp.get_data(as_text=True)) assert data[0]['original_url'] == 'url_c' rsp = api_client.get( '/entry_list/1/entries/?sort_by=original_url&order=asc') assert rsp.status_code == 200, 'Response code is %s' % rsp.status_code data = json.loads(rsp.get_data(as_text=True)) assert data[0]['original_url'] == 'url_a' # Combine sorting and pagination rsp = api_client.get( '/entry_list/1/entries/?sort_by=title&per_page=2&page=2') assert rsp.status_code == 200, 'Response code is %s' % rsp.status_code data = json.loads(rsp.get_data(as_text=True)) assert data[0]['title'] == 'test_title_1'