diff --git a/api/funkwhale_api/playlists/migrations/0004_auto_20180319_1642.py b/api/funkwhale_api/playlists/migrations/0004_auto_20180320_1713.py similarity index 76% rename from api/funkwhale_api/playlists/migrations/0004_auto_20180319_1642.py rename to api/funkwhale_api/playlists/migrations/0004_auto_20180320_1713.py index f4a525291..415b53612 100644 --- a/api/funkwhale_api/playlists/migrations/0004_auto_20180319_1642.py +++ b/api/funkwhale_api/playlists/migrations/0004_auto_20180320_1713.py @@ -1,4 +1,4 @@ -# Generated by Django 2.0.3 on 2018-03-19 16:42 +# Generated by Django 2.0.3 on 2018-03-20 17:13 from django.db import migrations, models @@ -20,4 +20,8 @@ class Migration(migrations.Migration): name='index', field=models.PositiveIntegerField(blank=True, null=True), ), + migrations.AlterUniqueTogether( + name='playlisttrack', + unique_together=set(), + ), ] diff --git a/api/tests/playlists/test_models.py b/api/tests/playlists/test_models.py index da3e23e28..414ecaffc 100644 --- a/api/tests/playlists/test_models.py +++ b/api/tests/playlists/test_models.py @@ -44,12 +44,9 @@ def test_can_insert_at_index(factories): def test_can_insert_and_move(factories): playlist = factories['playlists.Playlist']() - first = factories['playlists.PlaylistTrack'](playlist=playlist) - second = factories['playlists.PlaylistTrack'](playlist=playlist) - third = factories['playlists.PlaylistTrack'](playlist=playlist) - playlist.insert(first) - playlist.insert(second) - playlist.insert(third) + first = factories['playlists.PlaylistTrack'](playlist=playlist, index=0) + second = factories['playlists.PlaylistTrack'](playlist=playlist, index=1) + third = factories['playlists.PlaylistTrack'](playlist=playlist, index=2) playlist.insert(second, index=0) @@ -62,6 +59,23 @@ def test_can_insert_and_move(factories): assert first.index == 1 +def test_can_insert_and_move_last_to_0(factories): + playlist = factories['playlists.Playlist']() + first = factories['playlists.PlaylistTrack'](playlist=playlist, index=0) + second = factories['playlists.PlaylistTrack'](playlist=playlist, index=1) + third = factories['playlists.PlaylistTrack'](playlist=playlist, index=2) + + playlist.insert(third, index=0) + + first.refresh_from_db() + second.refresh_from_db() + third.refresh_from_db() + + assert third.index == 0 + assert first.index == 1 + assert second.index == 2 + + def test_cannot_insert_at_wrong_index(factories): plt = factories['playlists.PlaylistTrack']() new = factories['playlists.PlaylistTrack'](playlist=plt.playlist)