From 342bb94045fbedd9a958c9dcc2878054fd0aa4c9 Mon Sep 17 00:00:00 2001 From: hugovk Date: Thu, 6 Mar 2014 23:05:23 +0200 Subject: [PATCH] Refactor get_wiki things to remove duplication --- pylast.py | 36 ++++-------------------------------- test_pylast.py | 20 ++++++++++++++++---- 2 files changed, 20 insertions(+), 36 deletions(-) diff --git a/pylast.py b/pylast.py index 0863fdd..197ff5c 100644 --- a/pylast.py +++ b/pylast.py @@ -1449,25 +1449,12 @@ class _BaseObject(object): self._request(self.ws_prefix + '.share', False, params) - def get_wiki_published_date(self): - """ - Returns the date of publishing this version of the wiki. - Only for Album/Tag/Track. - """ - - doc = self._request(self.ws_prefix + ".getInfo", True) - - if len(doc.getElementsByTagName("wiki")) == 0: - return - - node = doc.getElementsByTagName("wiki")[0] - - return _extract(node, "published") - - def get_wiki_summary(self): + def get_wiki(self, section): """ Returns the summary of the wiki. Only for Album/Track. + section can be "content", "summary" or "published" + (for published date) """ doc = self._request(self.ws_prefix + ".getInfo", True) @@ -1477,22 +1464,7 @@ class _BaseObject(object): node = doc.getElementsByTagName("wiki")[0] - return _extract(node, "summary") - - def get_wiki_content(self): - """ - Returns the content of the wiki. - Only for Album/Track. - """ - - doc = self._request(self.ws_prefix + ".getInfo", True) - - if len(doc.getElementsByTagName("wiki")) == 0: - return - - node = doc.getElementsByTagName("wiki")[0] - - return _extract(node, "content") + return _extract(node, section) def get_shouts(self, limit=50, cacheable=False): """ diff --git a/test_pylast.py b/test_pylast.py index 3856746..d5e53a6 100755 --- a/test_pylast.py +++ b/test_pylast.py @@ -680,7 +680,18 @@ class TestPyLast(unittest.TestCase): album = pylast.Album("Test Artist", "Test Album", self.network) # Act - wiki = album.get_wiki_content() + wiki = album.get_wiki("content") + + # Assert + self.assertIsNotNone(wiki) + self.assertGreaterEqual(len(wiki), 1) + + def test_album_wiki_published(self): + # Arrange + album = pylast.Album("Test Artist", "Test Album", self.network) + + # Act + wiki = album.get_wiki("published") # Assert self.assertIsNotNone(wiki) @@ -691,7 +702,7 @@ class TestPyLast(unittest.TestCase): album = pylast.Album("Test Artist", "Test Album", self.network) # Act - wiki = album.get_wiki_summary() + wiki = album.get_wiki("summary") # Assert self.assertIsNotNone(wiki) @@ -702,7 +713,7 @@ class TestPyLast(unittest.TestCase): track = pylast.Track("Test Artist", "Test Title", self.network) # Act - wiki = track.get_wiki_content() + wiki = track.get_wiki("content") # Assert self.assertIsNotNone(wiki) @@ -713,7 +724,7 @@ class TestPyLast(unittest.TestCase): track = pylast.Track("Test Artist", "Test Title", self.network) # Act - wiki = track.get_wiki_summary() + wiki = track.get_wiki("summary") # Assert self.assertIsNotNone(wiki) @@ -1283,6 +1294,7 @@ if __name__ == '__main__': if test is not None and len(test): suite = unittest.TestSuite() + suite.addTest(TestPyLast(test)) unittest.TextTestRunner().run(suite) else: