def setUp(self) -> None: super().setUp() self.metadata_conn = sqlite3.Connection(":memory:", isolation_level=None) self.metadata_pool = lambda: nullcontext(self.metadata_conn) self.scraper = scrape.MetadataScraper( api=self.api, metadata_pool=self.metadata_pool ) torrents: Dict[str, api_types.TorrentEntry] = {} for i in range(5, 10): entry = TEST_ENTRY.copy() entry["TorrentID"] = str(i) entry["Time"] = str(i) torrents[str(i)] = entry result1 = api_types.GetTorrentsResult(results="9", torrents=torrents) torrents = {} for i in range(1, 6): entry = TEST_ENTRY.copy() entry["TorrentID"] = str(i) entry["Time"] = str(i) torrents[str(i)] = entry result2 = api_types.GetTorrentsResult(results="9", torrents=torrents) self.mock1 = self.mock_api_request( "getTorrents", [self.key, {}, 2 ** 31, 0], result1 ) self.mock2 = self.mock_api_request( "getTorrents", [self.key, {}, 2 ** 31, 4], result2 )
def test_limit_offset(self, mock: requests_mock.Mocker) -> None: result = api_types.GetTorrentsResult(results="123", torrents={}) mock_request(mock, "getTorrents", [self.key, {}, 100, 50], result=result) self.assertEqual(self.api.getTorrents(results=100, offset=50), result)
def setUp(self) -> None: super().setUp() self.metadata_conn = sqlite3.Connection(":memory:", isolation_level=None) self.metadata_pool = lambda: nullcontext(self.metadata_conn) self.scraper = scrape.MetadataTipScraper( api=self.api, metadata_pool=self.metadata_pool, user_access=site.UserAccess(auth=TEST_AUTH), ) # Set up mock response for feed feed_content = importlib_resources.read_binary( "btn_cache.tests", "test_feed.xml" ) # Don't need full query string for match self.requests_mocker.get( "https://broadcasthe.net/feeds.php", content=feed_content, headers={"Content-Type": "application/xml"}, ) self.torrents: Dict[str, api_types.TorrentEntry] = {} for i in range(1, 6): entry = TEST_ENTRY.copy() entry["TorrentID"] = str(i) entry["Time"] = str(i) self.torrents[str(i)] = entry result = api_types.GetTorrentsResult(results="5", torrents=self.torrents) self.api_mock = self.mock_api_request( "getTorrents", [self.key, {}, 2 ** 31, 0], result )
def setUp(self) -> None: self.session = requests.Session() self.dummy_response = api_types.Response( id="dummy_id", result=api_types.GetTorrentsResult(results="123", torrents={}), ) self.mock_adapter = requests_mock.adapter.Adapter() self.mock_adapter.register_uri("post", "https://api.broadcasthe.net/", json=self.dummy_response) self.session.mount("http://", self.mock_adapter) self.session.mount("https://", self.mock_adapter)
def test_filter(self, mock: requests_mock.Mocker) -> None: result = api_types.GetTorrentsResult(results="123", torrents={}) mock_request( mock, "getTorrents", [self.key, { "Series": "Example" }, 10, 0], result=result, ) self.assertEqual(self.api.getTorrents(Series="Example"), result)
def setUp(self) -> None: super().setUp() self.torrents: Dict[str, api_types.TorrentEntry] = {} self.search_result = api_types.GetTorrentsResult( results="1000", torrents=self.torrents) for entry_id in range(100, 110): entry = self.entry.copy() entry["TorrentID"] = str(entry_id) entry["Time"] = str(entry_id * 1000) self.torrents[str(entry_id)] = entry with self.assert_changes() as change: change.entry(new=[int(i) for i in self.torrents]) change.group(new=(self.group_id, )) change.series(new=(self.series_id, )) self.update_search_result(0, self.search_result)
def test_call(self, mock: requests_mock.Mocker) -> None: result = api_types.GetTorrentsResult(results="123", torrents={}) mock_request(mock, "getTorrents", [self.key, {}, 10, 0], result=result) self.assertEqual(self.api.getTorrents(), result)