コード例 #1
0
    async def fetch_auction_history(self, page=1):
        """Fetches the auction history of the bazaar.

        .. versionadded:: 3.3.0

        Parameters
        ----------
        page: :class:`int`
            The page to display.

        Returns
        -------
        :class:`TibiaResponse` of :class:`CharacterBazaar`
            The character bazaar containing the auction history.

        Raises
        ------
        Forbidden
            If a 403 Forbidden error was returned.
            This usually means that Tibia.com is rate-limiting the client because of too many requests.
        NetworkError
            If there's any connection errors during the request.
        ValueError
            If the page number is not 1 or greater.
        """
        if not page:
            raise ValueError('page must be 1 or greater.')
        response = await self._request(
            "GET", CharacterBazaar.get_auctions_history_url(page))
        start_time = time.perf_counter()
        auction_history = CharacterBazaar.from_content(response.content)
        parsing_time = time.perf_counter() - start_time
        return TibiaResponse(response, auction_history, parsing_time)
コード例 #2
0
    async def fetch_current_auctions(self, page=1, filters=None):
        """Fetches the current auctions in the bazaar

        .. versionadded:: 3.3.0

        Parameters
        ----------
        page: :class:`int`
            The desired page to display.
        filters: :class:`AuctionFilters`
            The filtering criteria to use.

        Returns
        -------
        :class:`TibiaResponse` of :class:`CharacterBazaar`
            The current auctions.

        Raises
        ------
        Forbidden
            If a 403 Forbidden error was returned.
            This usually means that Tibia.com is rate-limiting the client because of too many requests.
        NetworkError
            If there's any connection errors during the request.
        ValueError
            If the page number is not 1 or greater.
        """
        if not page:
            raise ValueError('page must be 1 or greater.')
        response = await self._request(
            "GET", CharacterBazaar.get_current_auctions_url(page, filters))
        start_time = time.perf_counter()
        current_auctions = CharacterBazaar.from_content(response.content)
        parsing_time = time.perf_counter() - start_time
        return TibiaResponse(response, current_auctions, parsing_time)
コード例 #3
0
ファイル: tests_bazaar.py プロジェクト: Galarzaa90/tibia.py
    def test_character_bazaar_from_content_history(self):
        bazaar = CharacterBazaar.from_content(
            self.load_resource(FILE_BAZAAR_HISTORY))

        self.assertIsNotNone(bazaar)
        self.assertEqual(1, bazaar.page)
        self.assertEqual(1449, bazaar.total_pages)
        self.assertEqual(36219, bazaar.results_count)
        self.assertEqual(25, len(bazaar.entries))
        self.assertIsNotNone(bazaar.url)

        auction = bazaar.entries[0]
        self.assertEqual(325058, auction.auction_id)
        self.assertEqual(900, auction.bid)
        self.assertEqual("Rcrazy Illuminati", auction.name)
        self.assertEqual(255, auction.level)
        self.assertEqual("Celebra", auction.world)
        self.assertEqual(Vocation.MASTER_SORCERER, auction.vocation)
        self.assertEqual(Sex.MALE, auction.sex)
        self.assertEqual(BidType.WINNING, auction.bid_type)
        self.assertIsNotNone(auction.character_url)
        self.assertEqual(1, len(auction.displayed_items))
        self.assertEqual(143, auction.outfit.outfit_id)

        first_item = auction.displayed_items[0]
        self.assertEqual(1, first_item.count)
        self.assertEqual(25700, first_item.item_id)
        self.assertEqual("dream blossom staff", first_item.name)
        self.assertIsNotNone(first_item.image_url)

        self.assertIsNone(bazaar.filters)
コード例 #4
0
ファイル: tests_bazaar.py プロジェクト: Galarzaa90/tibia.py
    def test_character_bazaar_from_content_current_all_filters_selected(self):
        bazaar = CharacterBazaar.from_content(
            self.load_resource(FILE_BAZAAR_CURRENT_ALL_FILTERS))

        self.assertIsNotNone(bazaar)
        self.assertEqual(1, bazaar.page)
        self.assertEqual(4, bazaar.total_pages)
        self.assertEqual(92, bazaar.results_count)
        self.assertEqual(25, len(bazaar.entries))
        self.assertIsNotNone(bazaar.url)

        auction = bazaar.entries[0]
        self.assertEqual(82526, auction.auction_id)
        self.assertEqual(57000, auction.bid)
        self.assertEqual(BidType.MINIMUM, auction.bid_type)
        self.assertIsNotNone(auction.character_url)

        self.assertIsNotNone(bazaar.filters)
        self.assertEqual('Antica', bazaar.filters.world)
        self.assertEqual(PvpTypeFilter.OPEN_PVP, bazaar.filters.pvp_type)
        self.assertEqual(BattlEyeTypeFilter.PROTECTED, bazaar.filters.battleye)
        self.assertEqual(VocationAuctionFilter.KNIGHT, bazaar.filters.vocation)
        self.assertEqual(1, bazaar.filters.min_level)
        self.assertEqual(1000, bazaar.filters.max_level)
        self.assertEqual(SkillFilter.MAGIC_LEVEL, bazaar.filters.skill)
        self.assertEqual(1, bazaar.filters.min_skill_level)
        self.assertEqual(50, bazaar.filters.max_skill_level)
        self.assertEqual(AuctionOrderBy.SHIELDING, bazaar.filters.order_by)
        self.assertEqual(AuctionOrder.HIGHEST_LATEST, bazaar.filters.order)
        self.assertEqual(AuctionSearchType.ITEM_WILDCARD,
                         bazaar.filters.search_type)
コード例 #5
0
ファイル: tests_bazaar.py プロジェクト: Galarzaa90/tibia.py
    def test_character_bazaar_from_content_current_no_filters_selected(self):
        bazaar = CharacterBazaar.from_content(
            self.load_resource(FILE_BAZAAR_CURRENT))

        self.assertIsNotNone(bazaar)
        self.assertEqual(300, bazaar.page)
        self.assertEqual(482, bazaar.total_pages)
        self.assertEqual(12031, bazaar.results_count)
        self.assertEqual(25, len(bazaar.entries))
        self.assertIsNotNone(bazaar.url)

        auction = bazaar.entries[0]
        self.assertEqual(30237, auction.auction_id)
        self.assertEqual(800, auction.bid)
        self.assertEqual(BidType.MINIMUM, auction.bid_type)
        self.assertIsNotNone(auction.character_url)
        self.assertEqual(0, len(auction.displayed_items))

        self.assertIsNotNone(bazaar.filters)
        self.assertIsNone(bazaar.filters.world)
        self.assertIsNone(bazaar.filters.pvp_type)
        self.assertIsNone(bazaar.filters.battleye)
        self.assertIsNone(bazaar.filters.vocation)
        self.assertIsNone(bazaar.filters.min_level)
        self.assertIsNone(bazaar.filters.max_level)
        self.assertIsNone(bazaar.filters.skill)
        self.assertIsNone(bazaar.filters.min_skill_level)
        self.assertIsNone(bazaar.filters.max_skill_level)
        self.assertEqual(AuctionOrder.LOWEST_EARLIEST, bazaar.filters.order)
コード例 #6
0
ファイル: tests_client.py プロジェクト: ZenelShabani/tibia.py
 async def test_client_fetch_current_auctions(self, mock):
     """Testing fetching the current auctions"""
     content = self.load_resource(FILE_BAZAAR_CURRENT)
     mock.get(CharacterBazaar.get_current_auctions_url(),
              status=200,
              body=content)
     response = await self.client.fetch_current_auctions()
     self.assertIsInstance(response.data, CharacterBazaar)
コード例 #7
0
 async def test_client_fetch_auction_history(self, mock):
     """Testing fetching the auction history"""
     content = self.load_resource(FILE_BAZAAR_HISTORY)
     mock.get(CharacterBazaar.get_auctions_history_url(),
              status=200,
              body=content)
     response = await self.client.fetch_auction_history()
     self.assertIsInstance(response.data, CharacterBazaar)
コード例 #8
0
    def test_bazaar_current_changes(self):
        content = self.load_resource(
            "website_changes/6_char_bazaar_current_auctions.txt")
        char_bazaar = CharacterBazaar.from_content(content)

        self.assertEqual(BazaarType.CURRENT, char_bazaar.type)
        self.assertEqual(94, char_bazaar.total_pages)
        self.assertEqual(2339, char_bazaar.results_count)
        self.assertEqual(1, char_bazaar.page)
        first_entry = char_bazaar.entries[0]
        self.assertEqual(564217, first_entry.auction_id)
        self.assertEqual("Quaak", first_entry.name)
        self.assertEqual(664, first_entry.level)
        self.assertEqual("Estela", first_entry.world)
        self.assertEqual(Vocation.ROYAL_PALADIN, first_entry.vocation)
        self.assertEqual(AuctionStatus.IN_PROGRESS, first_entry.status)
        self.assertEqual(128, first_entry.outfit.outfit_id)
        self.assertEqual(17000, first_entry.bid)
        self.assertEqual(BidType.MINIMUM, first_entry.bid_type)
コード例 #9
0
ファイル: tests_bazaar.py プロジェクト: Galarzaa90/tibia.py
 def test_character_bazaar_from_content_empty(self):
     bazaar = CharacterBazaar.from_content(
         self.load_resource(FILE_BAZAAR_CURRENT_EMPTY))
     self.assertIsNotNone(bazaar)
     self.assertFalse(bazaar.entries)
コード例 #10
0
ファイル: tests_bazaar.py プロジェクト: Galarzaa90/tibia.py
 def test_character_bazaar_from_content_unrelated(self):
     """Testing parsing an unrelated tibia.com section"""
     content = self.load_resource(self.FILE_UNRELATED_SECTION)
     with self.assertRaises(InvalidContent):
         CharacterBazaar.from_content(content)