Add __eq__ to album

This commit is contained in:
Thomas Adamcik 2010-04-27 22:55:36 +02:00
parent 06d6fd81c7
commit 3bc795ee95
2 changed files with 58 additions and 0 deletions

View File

@ -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."""

View File

@ -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):