def test_musica_type_wav(album, b64_arquivo_wav): with pytest.raises(ValueError): musica = models.Musica( nome='teste', album=album, ordem=1, arquivo=b64_arquivo_wav ) musica.save()
def test_musica_file_invalid(album, capa): musica = models.Musica( nome='teste', album=album, ordem=1, arquivo=capa ) with pytest.raises(ValueError): musica.save()
def test_musica_type_error(album, b64_arquivo_wav): with pytest.raises(ValueError): musica = models.Musica( nome='teste', album=album, ordem=1, arquivo=ContentFile(b64_arquivo_wav, 'teste.wav') ) musica.save()
def create(self, request, *args, **kwargs): erros = [] nome = request.data.get('nome', None) album = request.data.get('album', None) ordem = request.data.get('ordem', None) if not ordem: erros.append('O campo ordem é obrigatório') if not album: erros.append('O campo ordem é obrigatório') arquivo = request.data.get('arquivo', None) if arquivo: tipo = get_file_type(arquivo, musica=True) try: existe = models.Musica.objects.get(ordem=ordem, album_id=album) except models.Musica.DoesNotExist: existe = False except ValueError: existe = False if not existe and tipo: arquivo = ContentFile(decode_file(arquivo), (nome + tipo)) try: musica = models.Musica(nome=nome, album_id=album, ordem=ordem, arquivo=arquivo) musica.save() except Exception: pass else: response = json.dumps({ 'musica': { 'id': musica.id, 'nome': musica.nome, 'ordem': musica.ordem, 'tipo': musica.arquivo_tipo, 'arquivo': musica.arquivo.path } }) return JsonResponse(response, safe=False, status=201) else: if existe: erros.append('Já existe uma música com essa ordem') if not tipo: erros.append('Tipo de arquivo inválido') else: erros.append('O arquivo de música é obrigatório') response = json.dumps({'erros': erros}) return JsonResponse(response, safe=False, status=400)
def musica(album, arquivo): musica = models.Musica(nome='teste', album=album, ordem=1, arquivo=arquivo) musica.save() yield musica music_dir = os.path.join(settings.BASE_DIR, settings.MEDIA_ROOT, musica.arquivo.path) teste_dir = os.path.join(settings.BASE_DIR, settings.MEDIA_ROOT, 'musics', musica.album.banda.nome) try: os.remove(music_dir) except FileNotFoundError: pass rmtree(teste_dir)
def test_repr_musica(): assert repr(models.Musica()) == 'Musica()'
def create(self, validated_data): return models.Musica(**validated_data)