diff --git a/pylast.py b/pylast.py index 49a2f1a..53ac356 100644 --- a/pylast.py +++ b/pylast.py @@ -1747,13 +1747,7 @@ class _Opus(_BaseObject, _Taggable): return (a == b) and (c == d) def __ne__(self, other): - if type(self) != type(other): - return True - a = self.get_title().lower() - b = other.get_title().lower() - c = self.get_artist().get_name().lower() - d = other.get_artist().get_name().lower() - return (a != b) or (c != d) + return not self.__eq__(other) def _get_params(self): return { @@ -1907,10 +1901,13 @@ class Artist(_BaseObject, _Taggable): return self.get_name() def __eq__(self, other): - return self.get_name().lower() == other.get_name().lower() + if type(self) is type(other): + return self.get_name().lower() == other.get_name().lower() + else: + return False def __ne__(self, other): - return self.get_name().lower() != other.get_name().lower() + return not self.__eq__(other) def _get_params(self): return {self.ws_prefix: self.get_name()} @@ -2114,10 +2111,13 @@ class Event(_BaseObject): return "Event #" + str(self.get_id()) def __eq__(self, other): - return self.get_id() == other.get_id() + if type(self) is type(other): + return self.get_id() == other.get_id() + else: + return False def __ne__(self, other): - return self.get_id() != other.get_id() + return not self.__eq__(other) def _get_params(self): return {'event': self.get_id()} diff --git a/test_pylast.py b/test_pylast.py index ed2bf9b..fd4b807 100755 --- a/test_pylast.py +++ b/test_pylast.py @@ -1803,7 +1803,6 @@ class TestPyLast(unittest.TestCase): self.assertTrue(country1 != country2) self.assertEqual(url, "http://www.last.fm/place/italy") - def test_track_eq_none_is_false(self): # Arrange track1 = None @@ -1820,6 +1819,56 @@ class TestPyLast(unittest.TestCase): # Act / Assert self.assertTrue(track1 != track2) + def test_artist_eq_none_is_false(self): + # Arrange + artist1 = None + artist2 = pylast.Artist("Test Artist", self.network) + + # Act / Assert + self.assertFalse(artist1 == artist2) + + def test_artist_ne_none_is_true(self): + # Arrange + artist1 = None + artist2 = pylast.Artist("Test Artist", self.network) + + # Act / Assert + self.assertTrue(artist1 != artist2) + + def test_album_eq_none_is_false(self): + # Arrange + album1 = None + album2 = pylast.Album("Test Artist", "Test Album", self.network) + + # Act / Assert + self.assertFalse(album1 == album2) + + def test_album_ne_none_is_true(self): + # Arrange + album1 = None + album2 = pylast.Album("Test Artist", "Test Album", self.network) + + # Act / Assert + self.assertTrue(album1 != album2) + + def test_event_eq_none_is_false(self): + # Arrange + event1 = None + event_id = 3478520 # Glasto 2014 + event2 = pylast.Event(event_id, self.network) + + # Act / Assert + self.assertFalse(event1 == event2) + + def test_event_ne_none_is_true(self): + # Arrange + event1 = None + event_id = 3478520 # Glasto 2014 + event2 = pylast.Event(event_id, self.network) + + # Act / Assert + self.assertTrue(event1 != event2) + if __name__ == '__main__': parser = argparse.ArgumentParser(