示例#1
0
    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)
示例#3
0
    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)