Skip to content

Commit 7ebadf4

Browse files
authored
Merge pull request #15 from Galarzaa90/dev
v2.1.0
2 parents 9d16deb + be5099f commit 7ebadf4

18 files changed

+254
-27
lines changed

CHANGELOG.rst

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,14 @@ Changelog
66
Due to this library relying on external content, older versions are not guaranteed to work.
77
Try to always use the latest version.
88

9+
.. _v2.1.0:
10+
11+
2.1.0 (2019-06-17)
12+
==================
13+
14+
- Added ways to sort and filter House list results like in Tibia.com.
15+
- Added support to get the Boosted Creature of the day.
16+
917
.. _v2.0.1:
1018

1119
2.0.1 (2019-06-04)

docs/api.rst

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,6 @@ Enumerations
1818
============
1919
Enumerations are provided for various values in order to avoid depending on strings.
2020

21-
.. autoclass:: HouseType
22-
:members:
23-
:undoc-members:
2421

2522
.. autoclass:: AccountStatus
2623
:members:
@@ -30,10 +27,18 @@ Enumerations are provided for various values in order to avoid depending on stri
3027
:members:
3128
:undoc-members:
3229

30+
.. autoclass:: HouseOrder
31+
:members:
32+
:undoc-members:
33+
3334
.. autoclass:: HouseStatus
3435
:members:
3536
:undoc-members:
3637

38+
.. autoclass:: HouseType
39+
:members:
40+
:undoc-members:
41+
3742
.. autoclass:: NewsCategory
3843
:members:
3944
:undoc-members:
@@ -50,6 +55,11 @@ Enumerations are provided for various values in order to avoid depending on stri
5055
:members:
5156
:undoc-members:
5257

58+
.. autoclass:: TournamentWorldType
59+
:members:
60+
:undoc-members:
61+
62+
5363
.. autoclass:: TransferType
5464
:members:
5565
:undoc-members:
@@ -73,6 +83,12 @@ Main Models
7383
The following models all contain their respective ``from_content`` methods.
7484
They all have their respective section in Tibia.com
7585

86+
BoostedCreature
87+
---------------
88+
.. autoclass:: BoostedCreature
89+
:members:
90+
:inherited-members:
91+
7692
Character
7793
---------
7894
.. autoclass:: Character

tests/resources/tournaments/tournament_information_running.txt

Lines changed: 3 additions & 0 deletions
Large diffs are not rendered by default.

tests/resources/tournaments/tournament_leaderboards_running.txt

Lines changed: 4 additions & 0 deletions
Large diffs are not rendered by default.

tests/tests_client.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
from tests.tests_news import FILE_NEWS_LIST, FILE_NEWS_ARTICLE
1414
from tests.tests_tibiapy import TestCommons
1515
from tibiapy import Client, Character, Guild, Highscores, VocationFilter, Category, House, ListedHouse, ListedGuild, \
16-
KillStatistics, ListedNews, News, World, WorldOverview, Forbidden, NetworkError
16+
KillStatistics, ListedNews, News, World, WorldOverview, Forbidden, NetworkError, BoostedCreature
1717

1818

1919
class TestClient(asynctest.TestCase, TestCommons):
@@ -168,7 +168,13 @@ async def testFetchWorldList(self, mock):
168168

169169
self.assertIsInstance(worlds, WorldOverview)
170170

171+
@aioresponses()
172+
async def testFetchBoostedCreature(self, mock):
173+
content = self._load_resource(self.FILE_UNRELATED_SECTION)
174+
mock.get(News.get_list_url(), status=200, body=content)
175+
creature = await self.client.fetch_boosted_creature()
171176

177+
self.assertIsInstance(creature, BoostedCreature)
172178

173179

174180

tests/tests_creature.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
import unittest
2+
3+
from tests.tests_tibiapy import TestCommons
4+
from tibiapy import BoostedCreature, InvalidContent
5+
6+
7+
class TestCreature(TestCommons, unittest.TestCase):
8+
# region Tibia.com Tests
9+
def testBoostedCreature(self):
10+
content = self._load_resource(self.FILE_UNRELATED_SECTION)
11+
creature = BoostedCreature.from_content(content)
12+
13+
self.assertIsInstance(creature, BoostedCreature)
14+
self.assertEqual("Skeleton Warrior", creature.name)
15+
16+
def testBoostedCreatureNotTibiaCom(self):
17+
with self.assertRaises(InvalidContent):
18+
BoostedCreature.from_content("<html><div><p>Nothing</p></div></html>")
19+
20+
# endregion

tests/tests_highscores.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,9 @@ def testHighscoresTibiaData(self):
9898
self.assertEqual(highscores.category, Category.AXE_FIGHTING)
9999
self.assertEqual(highscores.results_count, 300)
100100

101+
self.assertEqual(highscores.url_tibiadata,
102+
Highscores.get_url_tibiadata(highscores.world, highscores.category, highscores.vocation))
103+
101104
for entry in highscores.entries:
102105
self.assertIsInstance(entry, HighscoresEntry)
103106
self.assertIsInstance(entry.name, str)

tests/tests_utils.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
from tests.tests_tibiapy import TestCommons
77
from tibiapy import enums, utils
8+
from tibiapy.utils import parse_integer, parse_tibia_money
89

910
TIBIA_DATETIME_CEST = "Jul 10 2018, 07:13:32 CEST"
1011
TIBIA_DATETIME_CET = "Jan 10 2018, 07:13:32 CET"
@@ -145,6 +146,7 @@ def testTryDateTime(self):
145146

146147
def testParseNumberWords(self):
147148
self.assertEqual(utils.parse_number_words("one"), 1)
149+
self.assertEqual(utils.parse_number_words("no"), 0)
148150
self.assertEqual(utils.parse_number_words("..."), 0)
149151
self.assertEqual(utils.parse_number_words("twenty-one"), 21)
150152
self.assertEqual(utils.parse_number_words("one hundred two"), 102)
@@ -160,3 +162,18 @@ def testEnumStr(self):
160162
self.assertEqual(enums.VocationFilter.from_name("royal paladin"), enums.VocationFilter.PALADINS)
161163
self.assertEqual(enums.VocationFilter.from_name("unknown"), enums.VocationFilter.ALL)
162164
self.assertIsNone(enums.VocationFilter.from_name("unknown", False))
165+
166+
def testParseTibiaMoney(self):
167+
self.assertEqual(1000, parse_tibia_money("1k"))
168+
self.assertEqual(5000000, parse_tibia_money("5kk"))
169+
self.assertEqual(2500, parse_tibia_money("2.5k"))
170+
self.assertEqual(50, parse_tibia_money("50"))
171+
with self.assertRaises(ValueError):
172+
parse_tibia_money("abc")
173+
174+
def testParseInteger(self):
175+
self.assertEqual(1450, parse_integer("1.450"))
176+
self.assertEqual(1110, parse_integer("1,110"))
177+
self.assertEqual(15, parse_integer("15"))
178+
self.assertEqual(0, parse_integer("abc"))
179+
self.assertEqual(-1, parse_integer("abc", -1))

tests/tests_world.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,8 @@ def testWorldOverview(self):
111111
self.assertGreater(world_overview.total_online, 0)
112112
self.assertIsNotNone(world_overview.record_date)
113113
self.assertIsNotNone(world_overview.record_count)
114+
self.assertEqual(len(world_overview.regular_worlds), 65)
115+
self.assertEqual(len(world_overview.tournament_worlds), 6)
114116

115117
worlds = ListedWorld.list_from_content(content)
116118
self.assertEqual(len(world_overview.worlds), len(worlds))
@@ -206,6 +208,7 @@ def testWorldOverviewTibiaData(self):
206208

207209
self.assertIsInstance(world_overview, WorldOverview)
208210
self.assertEqual(WorldOverview.get_url(), ListedWorld.get_list_url())
211+
self.assertEqual(WorldOverview.get_url_tibiadata(), ListedWorld.get_list_url_tibiadata())
209212
self.assertGreater(sum(w.online_count for w in world_overview.worlds), 0)
210213
self.assertIsInstance(world_overview.worlds[0], ListedWorld)
211214
self.assertIsInstance(world_overview.worlds[0].pvp_type, PvpType)

tibiapy/__init__.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,10 @@
1010
from tibiapy.kill_statistics import *
1111
from tibiapy.news import *
1212
from tibiapy.world import *
13+
from tibiapy.creature import *
1314
from tibiapy.client import *
1415

15-
__version__ = '2.0.1'
16+
__version__ = '2.1.0'
1617

1718
from logging import NullHandler
1819

0 commit comments

Comments
 (0)