def testOffsetStuff(self): mockitem_nzbs = [] for i in range(100): mockitem_nzbs.append(mockbuilder.buildNewznabItem("myId", "myTitle", "myGuid", "http://nzbs.org/myId.nzb", None, None, 12345, "NZBs.org", [2000, 2040])) mockresponse_nzbs1 = mockbuilder.buildNewznabResponse("NZBs.org", mockitem_nzbs, offset=0, total=200) mockitem_nzbs.clear() for i in range(100): mockitem_nzbs.append(mockbuilder.buildNewznabItem("myId", "myTitle", "myGuid", "http://nzbs.org/myId.nzb", None, None, 12345, "NZBs.org", [2000, 2040])) mockresponse_nzbs2 = mockbuilder.buildNewznabResponse("NZBs.org", mockitem_nzbs, offset=100, total=200) r = self.n1.process_query_result(json.dumps(mockresponse_nzbs1), "http://127.0.0.1:5001/nzbsorg/q=whatever&offset=0&limit=0") further_queries = r.queries self.assertEqual(1, len(further_queries)) assert "offset=100" in further_queries[0] r = self.n1.process_query_result(json.dumps(mockresponse_nzbs2), "http://127.0.0.1:5001/nzbsorg/q=whatever&offset=0&limit=0") further_queries = r.queries self.assertEqual(0, len(further_queries))
def prepareSearchMocks(self, requestsMock, indexerCount=2, resultsPerIndexers=1, newznabItems=None, title="newznab%dresult%d.title", categories=None, skip=None): """ :param requestsMock: :param indexerCount: :param resultsPerIndexers: :param newznabItems: :param title: :param categories: :param skip: List of tuples with indexer and result index which will not be returned :return: """ if skip is None: skip = [] allNewznabItems = [] self.response_callbacks = [] self.prepareIndexers(indexerCount) for i in range(1, indexerCount + 1): # Prepare search results if newznabItems is not None: indexerNewznabItems = newznabItems[i - 1] else: indexerNewznabItems = [ mockbuilder.buildNewznabItem( title % (i, j), "newznab%dresult%d.guid" % (i, j), " http://newznab%dresult%d.link" % (i, j), arrow.get(0).format("ddd, DD MMM YYYY HH:mm:ss Z"), "newznab%dresult%d.description" % (i, j), 1000, "newznab%d" % i, categories) for j in range(1, resultsPerIndexers + 1) if not (i, j) in skip ] allNewznabItems.extend(indexerNewznabItems) xml = mockbuilder.buildNewznabResponse("newznab%dResponse" % i, indexerNewznabItems, 0, len(indexerNewznabItems)) requestsMock.register_uri('GET', re.compile(r'.*newznab%d.*' % i), text=xml) read_indexers_from_config() allNewznabItems = sorted(allNewznabItems, key=lambda x: x.title) return allNewznabItems
def prepareSearchMocks(self, rsps, indexerCount=2, resultsPerIndexers=1, newznabItems=None, title="newznab%dresult%d.title", sleep=0): testData = [] self.response_callbacks = [] self.prepareIndexers(indexerCount) for i in range(1, indexerCount + 1): # Prepare search results if newznabItems is not None: indexerNewznabItems = newznabItems[i - 1] else: indexerNewznabItems = [ mockbuilder.buildNewznabItem( title % (i, j), "newznab%dresult%d.guid" % (i, j), "newznab%dresult%d.link" % (i, j), arrow.get(0).format("ddd, DD MMM YYYY HH:mm:ss Z"), "newznab%dresult%d.description" % (i, j), 1000, "newznab%d" % i, None) for j in range(1, resultsPerIndexers + 1) ] xml = mockbuilder.buildNewznabResponse("newznab%dResponse" % i, indexerNewznabItems, 0, len(indexerNewznabItems)) self.response_callbacks.append( ('newznab%d' % i, randint(0, sleep), xml)) # Prepare response mock url_re = re.compile(r'.*newznab%d.*' % i) rsps.add_callback(responses.GET, url_re, callback=self.rsps_callback, content_type='application/x-html') read_indexers_from_config() return testData
def prepareSearchMocks(self, requestsMock, indexerCount=2, resultsPerIndexers=1, newznabItems=None, title="newznab%dresult%d.title", categories=None, skip=None): """ :param requestsMock: :param indexerCount: :param resultsPerIndexers: :param newznabItems: :param title: :param categories: :param skip: List of tuples with indexer and result index which will not be returned :return: """ if skip is None: skip = [] allNewznabItems = [] self.response_callbacks = [] self.prepareIndexers(indexerCount) for i in range(1, indexerCount + 1): # Prepare search results if newznabItems is not None: indexerNewznabItems = newznabItems[i - 1] else: indexerNewznabItems = [mockbuilder.buildNewznabItem(title % (i, j), "newznab%dresult%d.guid" % (i, j), " http://newznab%dresult%d.link" % (i, j), arrow.get(0).format("ddd, DD MMM YYYY HH:mm:ss Z"), "newznab%dresult%d.description" % (i, j), 1000, "newznab%d" % i, categories) for j in range(1, resultsPerIndexers + 1) if not (i, j) in skip ] allNewznabItems.extend(indexerNewznabItems) xml = mockbuilder.buildNewznabResponse("newznab%dResponse" % i, indexerNewznabItems, 0, len(indexerNewznabItems)) requestsMock.register_uri('GET', re.compile(r'.*newznab%d.*' % i), text=xml) read_indexers_from_config() allNewznabItems = sorted(allNewznabItems, key=lambda x: x.title) return allNewznabItems
def prepareSearchMocks(self, rsps, indexerCount=2, resultsPerIndexers=1, newznabItems=None, title="newznab%dresult%d.title", sleep=0): testData = [] self.response_callbacks = [] self.prepareIndexers(indexerCount) for i in range(1, indexerCount + 1): # Prepare search results if newznabItems is not None: indexerNewznabItems = newznabItems[i - 1] else: indexerNewznabItems = [mockbuilder.buildNewznabItem(title % (i, j), "newznab%dresult%d.guid" % (i, j), "newznab%dresult%d.link" % (i, j), arrow.get(0).format("ddd, DD MMM YYYY HH:mm:ss Z"), "newznab%dresult%d.description" % (i, j), 1000, "newznab%d" % i, None) for j in range(1, resultsPerIndexers + 1)] xml = mockbuilder.buildNewznabResponse("newznab%dResponse" % i, indexerNewznabItems, 0, len(indexerNewznabItems)) self.response_callbacks.append(('newznab%d' % i, randint(0, sleep), xml)) # Prepare response mock url_re = re.compile(r'.*newznab%d.*' % i) rsps.add_callback(responses.GET, url_re, callback=self.rsps_callback, content_type='application/x-html') read_indexers_from_config() return testData