Пример #1
0
    def testSearchCategoryWords(self):
        pi = search.pick_indexers
        sahd = search.search_and_handle_db
        # Set forbidden and required category words if configured and the category matches
        config.settings.categories.categories["movies"].forbiddenWords = "forbidden1, forbidden2"
        config.settings.categories.categories["movies"].requiredWords = "required1, required2"
        searchRequest = SearchRequest(type="search", category="movies")

        search.pick_indexers = MagicMock(return_value=[NewzNab(self.newznab1)])
        search.search_and_handle_db = MagicMock(return_value={"results": {}})

        search.search(searchRequest)

        updatedSearchRequest = search.search_and_handle_db.mock_calls[0][1][1].values()[0]
        self.assertEqual(["forbidden1", "forbidden2"], updatedSearchRequest.forbiddenWords)
        self.assertEqual(["required1", "required2"], updatedSearchRequest.requiredWords)

        # Don't set if category doesn't match
        searchRequest = SearchRequest(type="search", category="audio")
        search.search_and_handle_db.reset_mock()

        search.search(searchRequest)

        updatedSearchRequest = search.search_and_handle_db.mock_calls[0][1][1].values()[0]
        self.assertEqual(0, len(updatedSearchRequest.forbiddenWords))
        self.assertEqual(0, len(updatedSearchRequest.requiredWords))

        # Don't set when fallback to "all" category 
        searchRequest = SearchRequest(type="search", category="7890")
        search.search_and_handle_db.reset_mock()

        search.search(searchRequest)

        updatedSearchRequest = search.search_and_handle_db.mock_calls[0][1][1].values()[0]
        self.assertEqual(0, len(updatedSearchRequest.forbiddenWords))
        self.assertEqual(0, len(updatedSearchRequest.requiredWords))
        self.assertEqual("na", updatedSearchRequest.category.category.name)

        # Use globally configured words and category words
        config.settings.searching.forbiddenWords = "globalforbidden1, globalforbidden2"
        config.settings.searching.requiredWords = "globalrequired1, globalrequired2"
        config.settings.categories.categories["movies"].forbiddenWords = "forbidden1, forbidden2"
        config.settings.categories.categories["movies"].requiredWords = "required1, required2"
        searchRequest = SearchRequest(type="search", category="movies")
        search.search_and_handle_db.reset_mock()
        search.pick_indexers = MagicMock(return_value=[NewzNab(self.newznab1)])
        search.search_and_handle_db = MagicMock(return_value={"results": {}})

        search.search(searchRequest)

        updatedSearchRequest = search.search_and_handle_db.mock_calls[0][1][1].values()[0]

        self.assertEqual(["globalforbidden1", "globalforbidden2", "forbidden1", "forbidden2"], updatedSearchRequest.forbiddenWords)
        self.assertEqual(["globalrequired1", "globalrequired2", "required1", "required2"], updatedSearchRequest.requiredWords)

        search.pick_indexers = pi
        search.search_and_handle_db = sahd
Пример #2
0
    def testGetEbookUrls(self):

        searchRequest = SearchRequest(query="novel")
        urls = self.n1.get_ebook_urls(searchRequest)
        self.assertEqual(1, len(urls))
        self.assertUrlEqual(
            "https://indexer.com/api?apikey=apikeyindexer.com&cat=7020,8010&limit=100&t=search&extended=1&offset=0&q=novel",
            urls[0])

        self.args = SearchRequest(author="anauthor",
                                  title="atitle",
                                  category=getCategoryByAnyInput(7020))
        queries = self.n1.get_ebook_urls(self.args)
        self.assertEqual(1, len(urls))
        self.assertUrlEqual(
            "https://indexer.com/api?apikey=apikeyindexer.com&cat=7020&extended=1&limit=100&offset=0&q=anauthor+atitle&t=search",
            queries[0])

        self.newznab1.searchTypes = ["book"]
        self.n1 = NewzNab(self.newznab1)
        self.args = SearchRequest(author="anauthor",
                                  title="atitle",
                                  category=getCategoryByAnyInput(7020))
        queries = self.n1.get_ebook_urls(self.args)
        self.assertEqual(1, len(urls))
        self.assertUrlEqual(
            "https://indexer.com/api?apikey=apikeyindexer.com&author=anauthor&cat=7020&extended=1&limit=100&offset=0&t=book&title=atitle",
            queries[0])
Пример #3
0
    def setUp(self):
        set_and_drop()

        self.indexercom = Indexer(name="indexer.com")
        self.indexercom.save()

        self.newznab1 = Bunch()
        self.newznab1.enabled = True
        self.newznab1.name = "indexer.com"
        self.newznab1.host = "https://indexer.com"
        self.newznab1.apikey = "apikeyindexer.com"
        self.newznab1.timeout = None
        self.newznab1.score = 0
        self.newznab1.search_ids = ["imdbid", "rid", "tvdbid"]
        self.n1 = NewzNab(self.newznab1)