Exemplo n.º 1
0
    def test_create_user_with_valid_data(self, create_valid_data):
        session = get_session()

        encoded_jwt = auth_services.create_user(session, create_valid_data,
                                                UserRepository)

        assert encoded_jwt["token"] != None
Exemplo n.º 2
0
    def test_create_music_with_valid_tag(self, create_valid_data,
                                         create_valid_data_music_tag,
                                         user_info):
        session = get_session()

        tag = music_tag_services.create_music_tag(
            session,
            {
                **create_valid_data_music_tag, "user_id": user_info["id"]
            },
            MusicTagRepository,
        )

        music = music_services.insert_music(
            session,
            {
                **create_valid_data, "user_id": user_info["id"],
                "tag_id": tag.id
            },
            MusicRepository,
        )

        assert music.name == create_valid_data["name"]
        assert music.artist == create_valid_data["artist"]
        assert music.info == create_valid_data["info"]
        assert music.album == create_valid_data["album"]
        assert music.tag_id == tag.id
Exemplo n.º 3
0
def music_tag_route(id_):
    session = get_session()

    try:
        if request.method == "PUT":
            music_tag = update_music_tag(
                session,
                {
                    **request.json,
                    "id": id_,
                    "user_id": request.user_info["id"],
                },
                MusicTagRepository,
            )

            response = music_tag.dict()

        else:
            response = delete_music_tag(
                session,
                {
                    "id": id_,
                    "user_id": request.user_info["id"],
                },
                MusicTagRepository,
            )
        return response, 200
    except Exception:
        if request.method == "PUT":
            return "Não foi possível atualizar tag", 400
        else:
            return "Não foi possível deletar tag", 400
Exemplo n.º 4
0
    def test_insert_with_invalid_data(self, invalid_data, user_info):
        session = get_session()

        with pytest.raises(ValidationError):
            create_music_tag(session, {
                **invalid_data, "user_id": user_info["id"]
            }, MusicTagRepository)
Exemplo n.º 5
0
    def test_login_with_valid_data(self, create_valid_data):
        session = get_session()

        self.test_register_with_valid_data(create_valid_data)
        response = auth_services.login(session, create_valid_data,
                                       UserRepository)

        assert "token" in response.keys()
Exemplo n.º 6
0
    def test_register_with_valid_data(self, create_valid_data):
        session = get_session()

        encoded_jwt = auth_services.create_user(session, create_valid_data,
                                                UserRepository)
        decoded_token = auth_services.validate_token(encoded_jwt["token"])

        assert decoded_token["id"] == 1
Exemplo n.º 7
0
    def test_create_music_with_invalid_tag(self, create_valid_data, user_info):
        session = get_session()

        with pytest.raises(Exception):
            music_services.insert_music(
                session, {
                    **create_valid_data, "user_id": user_info["id"],
                    "tag_id": 1
                })
Exemplo n.º 8
0
    def test_login_with_invalid_password(self, create_valid_data):
        session = get_session()

        self.test_register_with_valid_data(create_valid_data)

        with pytest.raises(Exception):
            auth_services.login(session, {
                **create_valid_data, "password": "******"
            })
Exemplo n.º 9
0
    def test_insert_with_valid_data(self, valid_data, user_info):
        session = get_session()

        music_tag = create_music_tag(session, {
            **valid_data, "user_id": user_info["id"]
        }, MusicTagRepository)

        assert music_tag.name == valid_data["name"]
        assert music_tag.id == user_info["id"]
Exemplo n.º 10
0
def user_musics():
    try:
        session = get_session()
        musics = music_services.list_user_musics(session,
                                                 request.user_info["id"],
                                                 UserRepository)
        return json.dumps(musics), 200
    except:
        return "Não foi possível efetivar pesquisa.", 200
Exemplo n.º 11
0
def get_valid_user_fixture():
    user_data = {
        "name": "Pedro",
        "email": "*****@*****.**",
        "password": "******",
    }
    session = get_session()
    jwt = auth_services.create_user(session, user_data, UserRepository)

    return jwt
Exemplo n.º 12
0
def login_route():
    session = get_session()
    try:
        response = auth_services.login(session, dict(request.json),
                                       UserRepository)
        return response, 200
    except ValidationError:
        return exceptions.auth_validation_error, 400
    except Exception as error:
        return error.message, 400
Exemplo n.º 13
0
def register_route():
    session = get_session()
    try:
        user = auth_services.create_user(session, dict(request.json),
                                         UserRepository)
        return user, 201
    except ValidationError:
        return exceptions.auth_validation_error, 400
    except Exception as error:
        return error.message, 400
Exemplo n.º 14
0
    def test_insert_music_with_valid_data(self, create_valid_data, user_info):
        session = get_session()

        music = music_services.insert_music(
            session, {
                **create_valid_data, "user_id": user_info["id"]
            }, MusicRepository)

        assert music.name == create_valid_data["name"]
        assert music.artist == create_valid_data["artist"]
        assert music.info == create_valid_data["info"]
Exemplo n.º 15
0
    def test_login_with_invalid_email(self, create_valid_data,
                                      create_invalid_data):
        session = get_session()

        self.test_register_with_valid_data(create_valid_data)

        with pytest.raises(Exception):
            auth_services.login(
                session, {
                    **create_valid_data, "email": create_invalid_data["email"]
                })
Exemplo n.º 16
0
    def test_create_user_with_invalid_name(self, create_valid_data,
                                           create_invalid_data):
        session = get_session()

        with pytest.raises(ValidationError):
            auth_services.create_user(
                session,
                {
                    **create_valid_data, "name": create_invalid_data["name"]
                },
                UserRepository,
            )
Exemplo n.º 17
0
def get_valid_user_fixture():
    user_data = {
        "name": "João",
        "email": "*****@*****.**",
        "password": "******",
    }
    session = get_session()
    jwt = auth_services.create_user(session, user_data, UserRepository)
    user_info = auth_services.validate_token(jwt["token"])
    user_info["token"] = jwt["token"]

    return user_info
Exemplo n.º 18
0
    def test_insert_music_with_invalid_user_id(self, create_valid_data,
                                               create_invalid_data, user_info):
        session = get_session()

        with pytest.raises(Exception):
            music_services.insert_music(
                session,
                {
                    **create_valid_data,
                    "user_id": 17,
                },
                MusicRepository,
            )
Exemplo n.º 19
0
    def test_insert_music_with_invalid_artist(self, create_valid_data,
                                              create_invalid_data, user_info):
        session = get_session()

        with pytest.raises(ValidationError):
            music_services.insert_music(
                session,
                {
                    **create_valid_data,
                    "artist": create_invalid_data["artist"],
                    "user_id": user_info["id"],
                },
                MusicRepository,
            )
Exemplo n.º 20
0
    def test_list_musics_with_valid_data(self, create_valid_data_list,
                                         user_info):
        session = get_session()

        for music in create_valid_data_list:
            music_services.insert_music(session, music, MusicRepository)

        musics = music_services.list_user_musics(session, user_info["id"],
                                                 UserRepository)

        for music_arg, music_added in zip(create_valid_data_list, musics):
            assert music_arg["name"] == music_added.name
            assert music_arg["artist"] == music_added.artist
            assert music_arg["info"] == music_added.info
Exemplo n.º 21
0
    def test_update_valid_data(self, create_valid_data, update_valid_data):
        session = get_session()
        encoded_jwt = auth_services.create_user(session, create_valid_data,
                                                UserRepository)
        user_info = auth_services.validate_token(encoded_jwt["token"])
        user_services.update_user_data(
            session, {
                **update_valid_data, "id": user_info["id"]
            }, UserRepository)
        user = user_services.find_user(session, {"id": user_info["id"]},
                                       UserRepository)

        assert user["name"] == update_valid_data["name"]
        assert user["email"] == update_valid_data["email"]
Exemplo n.º 22
0
def music_route():
    session = get_session()
    try:
        music = music_services.insert_music(
            session,
            {
                **dict(request.json), "user_id": request.user_info["id"]
            },
            MusicRepository,
        )
        return music.dict(), 200
    except ValidationError as e:
        error = CustomValidationError(e)
        return error.message, 400
    except Exception as error:
        return error.message, 400
Exemplo n.º 23
0
def create_route():
    session = get_session()

    try:
        if request.method == "POST":
            music_tag = {**request.json, "user_id": request.user_info["id"]}
            music_tag = create_music_tag(session, music_tag,
                                         MusicTagRepository)
        else:
            music_tag = get_music_tag(session, request.user_info["id"],
                                      MusicTagRepository)

            return jsonify([tag.dict() for tag in music_tag]), 200
        return music_tag.dict(), 201

    except Exception:
        if request.method == "POST":
            return "Não foi possível criar tag", 400
        else:
            return "Não foi possível localizar tag", 400
Exemplo n.º 24
0
    def test_insert_with_invalid_user(self, valid_data):
        session = get_session()

        with pytest.raises(Exception):
            create_music_tag(session, {**valid_data, "user_id": 1})