Beispiel #1
0
    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
Beispiel #3
0
    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