funkwhale/api/funkwhale_api/music/factories.py

103 wiersze
2.5 KiB
Python
Czysty Zwykły widok Historia

2017-12-11 18:32:56 +00:00
import os
2018-06-10 08:55:16 +00:00
import factory
from funkwhale_api.factories import ManyToManyFromList, registry
from funkwhale_api.federation import factories as federation_factories
SAMPLES_PATH = os.path.join(
os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))),
2018-06-09 13:36:16 +00:00
"tests",
"music",
)
@registry.register
class ArtistFactory(factory.django.DjangoModelFactory):
2018-06-09 13:36:16 +00:00
name = factory.Faker("name")
mbid = factory.Faker("uuid4")
2018-09-22 12:29:30 +00:00
fid = factory.Faker("federation_url")
class Meta:
2018-06-09 13:36:16 +00:00
model = "music.Artist"
@registry.register
class AlbumFactory(factory.django.DjangoModelFactory):
2018-06-09 13:36:16 +00:00
title = factory.Faker("sentence", nb_words=3)
mbid = factory.Faker("uuid4")
release_date = factory.Faker("date_object")
cover = factory.django.ImageField()
artist = factory.SubFactory(ArtistFactory)
2018-06-09 13:36:16 +00:00
release_group_id = factory.Faker("uuid4")
2018-09-22 12:29:30 +00:00
fid = factory.Faker("federation_url")
class Meta:
2018-06-09 13:36:16 +00:00
model = "music.Album"
@registry.register
class TrackFactory(factory.django.DjangoModelFactory):
2018-09-22 12:29:30 +00:00
fid = factory.Faker("federation_url")
2018-06-09 13:36:16 +00:00
title = factory.Faker("sentence", nb_words=3)
mbid = factory.Faker("uuid4")
album = factory.SubFactory(AlbumFactory)
2018-06-09 13:36:16 +00:00
artist = factory.SelfAttribute("album.artist")
position = 1
2018-06-09 13:36:16 +00:00
tags = ManyToManyFromList("tags")
class Meta:
2018-06-09 13:36:16 +00:00
model = "music.Track"
@registry.register
2018-09-22 12:29:30 +00:00
class UploadFactory(factory.django.DjangoModelFactory):
fid = factory.Faker("federation_url")
track = factory.SubFactory(TrackFactory)
library = factory.SubFactory(federation_factories.MusicLibraryFactory)
2017-12-11 18:32:56 +00:00
audio_file = factory.django.FileField(
2018-06-09 13:36:16 +00:00
from_path=os.path.join(SAMPLES_PATH, "test.ogg")
)
bitrate = None
size = None
duration = None
mimetype = "audio/ogg"
class Meta:
2018-09-22 12:29:30 +00:00
model = "music.Upload"
class Params:
2018-06-09 13:36:16 +00:00
in_place = factory.Trait(audio_file=None)
@registry.register
2017-12-15 22:41:04 +00:00
class WorkFactory(factory.django.DjangoModelFactory):
2018-06-09 13:36:16 +00:00
mbid = factory.Faker("uuid4")
language = "eng"
nature = "song"
title = factory.Faker("sentence", nb_words=3)
2017-12-15 22:41:04 +00:00
class Meta:
2018-06-09 13:36:16 +00:00
model = "music.Work"
2017-12-15 22:41:04 +00:00
@registry.register
2017-12-15 22:41:04 +00:00
class LyricsFactory(factory.django.DjangoModelFactory):
work = factory.SubFactory(WorkFactory)
2018-06-09 13:36:16 +00:00
url = factory.Faker("url")
content = factory.Faker("paragraphs", nb=4)
2017-12-15 22:41:04 +00:00
class Meta:
2018-06-09 13:36:16 +00:00
model = "music.Lyrics"
2017-12-15 22:41:04 +00:00
@registry.register
2017-12-15 22:41:04 +00:00
class TagFactory(factory.django.DjangoModelFactory):
2018-06-09 13:36:16 +00:00
name = factory.SelfAttribute("slug")
slug = factory.Faker("slug")
2017-12-15 22:41:04 +00:00
class Meta:
2018-06-09 13:36:16 +00:00
model = "taggit.Tag"