From 862ae11cfae284ea88db11dc133f64e623da315a Mon Sep 17 00:00:00 2001 From: hugovk Date: Mon, 18 Aug 2014 16:24:01 +0300 Subject: [PATCH] Fix opus comparison with None --- pylast.py | 4 ++++ test_pylast.py | 17 +++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/pylast.py b/pylast.py index f871b07..49a2f1a 100644 --- a/pylast.py +++ b/pylast.py @@ -1738,6 +1738,8 @@ class _Opus(_BaseObject, _Taggable): self.get_artist().get_name(), self.get_title()) def __eq__(self, other): + if type(self) != type(other): + return False a = self.get_title().lower() b = other.get_title().lower() c = self.get_artist().get_name().lower() @@ -1745,6 +1747,8 @@ 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() diff --git a/test_pylast.py b/test_pylast.py index 04ab3b0..ed2bf9b 100755 --- a/test_pylast.py +++ b/test_pylast.py @@ -1804,6 +1804,23 @@ class TestPyLast(unittest.TestCase): self.assertEqual(url, "http://www.last.fm/place/italy") + def test_track_eq_none_is_false(self): + # Arrange + track1 = None + track2 = pylast.Track("Test Artist", "Test Title", self.network) + + # Act / Assert + self.assertFalse(track1 == track2) + + def test_track_ne_none_is_true(self): + # Arrange + track1 = None + track2 = pylast.Track("Test Artist", "Test Title", self.network) + + # Act / Assert + self.assertTrue(track1 != track2) + + if __name__ == '__main__': parser = argparse.ArgumentParser( description="Integration (not unit) tests for pylast.py",