예제 #1
0
def create_or_update_playlist(submission_period):
    if not submission_period or not is_deployed():
        return

    if not submission_period.playlist_created:
        # Create new playlist and link to this submission period
        app.logger.info("Creating playlist for round: %s", submission_period.id)
        playlist = create_playlist(submission_period)
        if not playlist:
            if submission_period.all_tracks:
                app.logger.error('There was a problem creating the playlist with tracks: %s', submission_period.all_tracks)
            else:
                app.logger.warn('Playlist creation w/ 0 tracks prevented')
            return

        playlist_url = playlist['external_urls']['spotify']
        submission_period.playlist_url = playlist_url
        upsert_round(submission_period)
        user_playlist_created_notification(submission_period)

    else:
        # Update existing playlist for this submission period
        app.logger.info("Updating playlist for round: %s", submission_period.id)
        playlist = update_playlist(submission_period)
        # TODO user_playlist_updated_notification(submission_period)

    return playlist
예제 #2
0
    def test_send(self, messenger, email):
        sent = user_playlist_created_notification(self.submission_period)

        self.assertTrue(sent)
        email.assert_called_once_with(self.submission_period)
예제 #3
0
 def test_no_users(self):
     self.league.users = []
     self.league.save()
     sent = user_playlist_created_notification(self.submission_period)
     self.assertFalse(sent)
예제 #4
0
 def test_no_submission_period(self):
     sent = user_playlist_created_notification(None)
     self.assertFalse(sent)