def setUp(self): super(PlaylistTest, self).setUp() dbconfig['lastfm.api_key'] = 'SEKRET_LASTFM_KEY' self.dj = User(dj_name='DJ Night Moves', first_name='Steve', last_name='Dolfin', email='*****@*****.**', roles=[auth.roles.DJ]) self.dj.save() self.playlist = ChirpBroadcast() (self.stevie, self.talking_book, self.tracks) = create_stevie_wonder_album_data()
def setUp(self): dbconfig['lastfm.api_key'] = 'SEKRET_LASTFM_KEY' self.client = TestApp(application) self.dj = User(dj_name='DJ Night Moves', first_name='Steve', last_name='Dolfin', email='*****@*****.**', roles=[auth.roles.DJ]) self.dj.save() self.playlist = ChirpBroadcast() (self.stevie, self.talking_book, self.tracks) = create_stevie_wonder_album_data()
def test_report_ignores_reference_errors(self): selector = self.get_selector() playlist = ChirpBroadcast() stevie, talking_book, tracks = create_stevie_wonder_album_data() track = PlaylistTrack( playlist=playlist, selector=selector, artist=stevie, album=talking_book, track=tracks['You Are The Sunshine Of My Life'], freeform_label='Motown') track.put() # simulate an integrity error. # it is unlikely but happened to us after a bad data import. stevie.delete() talking_book.delete() from_date = datetime.date.today() - timedelta(days=1) to_date = datetime.date.today() + timedelta(days=1) response = self.client.post(reverse('playlists_report'), { 'from_date': from_date, 'to_date': to_date, 'download': 'Download' }) self.assertEquals(response['Content-Type'], 'text/csv; charset=utf-8') report = csv.reader(StringIO(response.content)) self.assertEquals( ['from_date', 'to_date', 'album_title', 'artist_name', 'label', 'play_count', 'heavy_rotation', 'light_rotation'], report.next()) self.assertEquals( [str(from_date), str(to_date), '__bad_reference__', '__bad_reference__', 'Motown', '1', '0', '0'], report.next())
def test_report_ignores_reference_errors(self): selector = self.get_selector() playlist = ChirpBroadcast() stevie, talking_book, tracks = create_stevie_wonder_album_data() track = PlaylistTrack(playlist=playlist, selector=selector, artist=stevie, album=talking_book, track=tracks['You Are The Sunshine Of My Life'], freeform_label='Motown') track.put() # simulate an integrity error. # it is unlikely but happened to us after a bad data import. stevie.delete() talking_book.delete() from_date = datetime.date.today() - timedelta(days=1) to_date = datetime.date.today() + timedelta(days=1) response = self.client.post(reverse('playlists_report'), { 'from_date': from_date, 'to_date': to_date, 'download': 'Download' }) self.assertEquals(response['Content-Type'], 'text/csv; charset=utf-8') report = csv.reader(StringIO(response.content)) self.assertEquals([ 'from_date', 'to_date', 'album_title', 'artist_name', 'label', 'play_count', 'heavy_rotation', 'light_rotation' ], report.next()) self.assertEquals([ str(from_date), str(to_date), '__bad_reference__', '__bad_reference__', 'Motown', '1', '0', '0' ], report.next())
def test_report_csv(self): selector = self.get_selector() playlist = ChirpBroadcast() stevie, talking_book, tracks = create_stevie_wonder_album_data() track = PlaylistTrack( categories=[HEAVY_ROTATION_TAG], playlist=playlist, selector=selector, artist=stevie, album=talking_book, track=tracks['You Are The Sunshine Of My Life'], freeform_label='Motown') track.put() # sleep to workaround microtime issues in Windows App Engine SDK time.sleep(0.4) track = PlaylistTrack( playlist=playlist, selector=selector, freeform_artist_name="Def Leoppard", freeform_album_title="Pyromania", freeform_track_title="Photograph", freeform_label="Geffen") track.put() time.sleep(0.4) track = PlaylistTrack( playlist=playlist, selector=selector, freeform_artist_name="Def Leoppard", freeform_album_title="Pyromania", freeform_track_title="Photograph", freeform_label="Geffen") track.put() time.sleep(0.4) # Heavy rotation: track = PlaylistTrack( categories=[LIGHT_ROTATION_TAG], playlist=playlist, selector=selector, freeform_artist_name=u'Ivan Krsti\u0107', freeform_album_title=u'Ivan Krsti\u0107', freeform_track_title=u'Ivan Krsti\u0107', freeform_label=u'Ivan Krsti\u0107') track.put() from_date = datetime.date.today() - timedelta(days=1) to_date = datetime.date.today() + timedelta(days=1) response = self.client.post(reverse('playlists_report'), { 'from_date': from_date, 'to_date': to_date, 'download': 'Download' }) self.assertEquals(response['Content-Type'], 'text/csv; charset=utf-8') report = csv.reader(StringIO(response.content)) self.assertEquals( ['from_date', 'to_date', 'album_title', 'artist_name', 'label', 'play_count', 'heavy_rotation', 'light_rotation'], report.next()) self.assertEquals( [str(from_date), str(to_date), # in light rotation: 'Ivan Krsti\xc4\x87', 'Ivan Krsti\xc4\x87', 'Ivan Krsti\xc4\x87', '1', '0', '1'], report.next()) self.assertEquals( [str(from_date), str(to_date), 'Pyromania', 'Def Leoppard', 'Geffen', '2', '0', '0'], report.next()) self.assertEquals( [str(from_date), str(to_date), # is in heavy rotation 'Talking Book', 'Stevie Wonder', 'Motown', '1', '1', '0'], report.next())
def test_report_csv(self): selector = self.get_selector() playlist = ChirpBroadcast() stevie, talking_book, tracks = create_stevie_wonder_album_data() track = PlaylistTrack(categories=[HEAVY_ROTATION_TAG], playlist=playlist, selector=selector, artist=stevie, album=talking_book, track=tracks['You Are The Sunshine Of My Life'], freeform_label='Motown') track.put() # sleep to workaround microtime issues in Windows App Engine SDK time.sleep(0.4) track = PlaylistTrack(playlist=playlist, selector=selector, freeform_artist_name="Def Leoppard", freeform_album_title="Pyromania", freeform_track_title="Photograph", freeform_label="Geffen") track.put() time.sleep(0.4) track = PlaylistTrack(playlist=playlist, selector=selector, freeform_artist_name="Def Leoppard", freeform_album_title="Pyromania", freeform_track_title="Photograph", freeform_label="Geffen") track.put() time.sleep(0.4) # Heavy rotation: track = PlaylistTrack(categories=[LIGHT_ROTATION_TAG], playlist=playlist, selector=selector, freeform_artist_name=u'Ivan Krsti\u0107', freeform_album_title=u'Ivan Krsti\u0107', freeform_track_title=u'Ivan Krsti\u0107', freeform_label=u'Ivan Krsti\u0107') track.put() from_date = datetime.date.today() - timedelta(days=1) to_date = datetime.date.today() + timedelta(days=1) response = self.client.post(reverse('playlists_report'), { 'from_date': from_date, 'to_date': to_date, 'download': 'Download' }) self.assertEquals(response['Content-Type'], 'text/csv; charset=utf-8') report = csv.reader(StringIO(response.content)) self.assertEquals([ 'from_date', 'to_date', 'album_title', 'artist_name', 'label', 'play_count', 'heavy_rotation', 'light_rotation' ], report.next()) self.assertEquals( [ str(from_date), str(to_date), # in light rotation: 'Ivan Krsti\xc4\x87', 'Ivan Krsti\xc4\x87', 'Ivan Krsti\xc4\x87', '1', '0', '1' ], report.next()) self.assertEquals([ str(from_date), str(to_date), 'Pyromania', 'Def Leoppard', 'Geffen', '2', '0', '0' ], report.next()) self.assertEquals( [ str(from_date), str(to_date), # is in heavy rotation 'Talking Book', 'Stevie Wonder', 'Motown', '1', '1', '0' ], report.next())