Esempio n. 1
0
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()
Esempio n. 2
0
def test_musica_file_invalid(album, capa):
    musica = models.Musica(
        nome='teste', album=album, ordem=1,
        arquivo=capa
    )
    with pytest.raises(ValueError):
        musica.save()
Esempio n. 3
0
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()
Esempio n. 4
0
    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)
Esempio n. 5
0
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)
Esempio n. 6
0
def test_repr_musica():
    assert repr(models.Musica()) == 'Musica()'
 def create(self, validated_data):
     return models.Musica(**validated_data)