def test_normal_case(self): p = PlayList() p.load_data(StringIO(INPUT)) p.apply_changes(StringIO(CHANGE)) output = StringIO() p.gen_output(output) obj = json.loads(output.getvalue()) self.assertEqual(len(obj['users']), 1) self.assertEqual(obj['users'][0]['id'], '1') self.assertEqual(len(obj['playlists']), 2) self.assertEqual(obj['playlists'][0]['id'], '2') self.assertEqual(obj['playlists'][0]['song_ids'], ['1', '2']) self.assertEqual(obj['playlists'][1]['id'], '3') self.assertEqual(obj['playlists'][1]['song_ids'], ['1', '2'])
def test_not_allow_duplicate_song_in_playlist(self): change = """ [ { "type": "add_song_to_playlist", "playlist_id": "1", "song_ids" : ["1"] } ] """ p = PlayList() p.load_data(StringIO(INPUT)) p.apply_changes(StringIO(change)) output = StringIO() p.gen_output(output) obj = json.loads(output.getvalue()) self.assertEqual(len(obj['playlists'][0]['song_ids']), 2)