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
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])
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)