From 3bc795ee95200660ee1fc1eb7fe04402ff56b50b Mon Sep 17 00:00:00 2001 From: Thomas Adamcik Date: Tue, 27 Apr 2010 22:55:36 +0200 Subject: [PATCH] Add __eq__ to album --- mopidy/models.py | 6 +++++ tests/models_test.py | 52 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 58 insertions(+) diff --git a/mopidy/models.py b/mopidy/models.py index 6844b254..21812f9f 100644 --- a/mopidy/models.py +++ b/mopidy/models.py @@ -64,6 +64,12 @@ class Album(ImmutableObject): self._artists = kwargs.pop('artists', []) super(Album, self).__init__(*args, **kwargs) + def __eq__(self, other): + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not self.__eq__(other) + @property def artists(self): """List of :class:`Artist` elements. Read-only.""" diff --git a/tests/models_test.py b/tests/models_test.py index 3c1794dd..3135e4f2 100644 --- a/tests/models_test.py +++ b/tests/models_test.py @@ -72,6 +72,58 @@ class AlbumTest(unittest.TestCase): self.assertEqual(album.num_tracks, num_tracks) self.assertRaises(AttributeError, setattr, album, 'num_tracks', None) + def test_eq_name(self): + album1 = Album(name=u'name') + album2 = Album(name=u'name') + self.assertEqual(album1, album2) + + def test_eq_uri(self): + album1 = Album(uri=u'uri') + album2 = Album(uri=u'uri') + self.assertEqual(album1, album2) + + def test_eq_artists(self): + artists = [Artist()] + album1 = Album(artists=artists) + album2 = Album(artists=artists) + self.assertEqual(album1, album2) + + def test_eq_num_tracks(self): + album1 = Album(num_tracks=2) + album2 = Album(num_tracks=2) + self.assertEqual(album1, album2) + + def test_eq(self): + artists = [Artist()] + album1 = Album(name=u'name', uri=u'uri', artists=artists, num_tracks=2) + album2 = Album(name=u'name', uri=u'uri', artists=artists, num_tracks=2) + self.assertEqual(album1, album2) + + def test_ne_name(self): + album1 = Album(name=u'name1') + album2 = Album(name=u'name2') + self.assertNotEqual(album1, album2) + + def test_ne_uri(self): + album1 = Album(uri=u'uri1') + album2 = Album(uri=u'uri2') + self.assertNotEqual(album1, album2) + + def test_ne_artists(self): + album1 = Album(artists=[Artist(name=u'name1')]) + album2 = Album(artists=[Artist(name=u'name2')]) + self.assertNotEqual(album1, album2) + + def test_ne_num_tracks(self): + album1 = Album(num_tracks=1) + album2 = Album(num_tracks=2) + self.assertNotEqual(album1, album2) + + def test_ne(self): + album1 = Album(name=u'name1', uri=u'uri1', artists=[Artist(name=u'name1')], num_tracks=1) + album2 = Album(name=u'name2', uri=u'uri2', artists=[Artist(name=u'name2')], num_tracks=2) + self.assertNotEqual(album1, album2) + class TrackTest(unittest.TestCase): def test_uri(self):