def test_search(self): index = 'popularvideo' resource_filepath = self.store_mapping[index] stored_response = json.loads(open(resource_filepath).read()) responses.add( responses.GET, '{}{}'.format(API_ROOT, stored_response.get('_url')), # _url contains only the short path like /popular?page=2&per_page=5 json=stored_response.get('body'), status=stored_response.get('status_code'), content_type='application/json', adding_headers=stored_response.get('headers'), match_querystring=True, ) py_pexels = PyPexels(api_key=api_key) search_results_page = py_pexels.videos_popular(page=2, per_page=5) # Page properties print(search_results_page.page) print(search_results_page.per_page) print(search_results_page.has_next) print(search_results_page.has_previous) print(search_results_page.link_self) print(search_results_page.link_first) print(search_results_page.link_last) print(search_results_page.link_next) print(search_results_page.link_previous) # Entries for video in search_results_page.entries: print(video.id, video.user, video.width, video.height, video.url) print(video.video_files)
logging.basicConfig(filename='app_video_popular.log', level=logging.DEBUG) # pypexels logger defaults to level logging.ERROR # If you need to change that, use getLogger/setLevel # on the module logger, like this: logging.getLogger(PyPexels.logger_name).setLevel(logging.DEBUG) # add a headers to the log logger.debug(80 * '=') logging.debug('Testing PyPexels.videos_popular()') logger.debug(80 * '=') # instantiate PyPexels object py_pexel = PyPexels(api_key=api_key) # Start with the generic collection, maximize number of items per page # Note: this will run until all popular videos have been visited, # unless a connection error occurs. # Typically the API hourly limit gets hit during this # # Note2: the video API is not currently (May 2020) producing next_page/prev_page links # so this example will not be able to keep walking forward # popular_videos_page = py_pexel.videos_popular(per_page=40) while True: for video in popular_videos_page.entries: print(video.id, video.user.get('name'), video.url) if not popular_videos_page.has_next: break popular_videos_page = popular_videos_page.get_next_page()