Example #1
0
    def test_update_row(self):
        db = database.Database(DB_NAME)
        if not hasattr(db, 'add') or not hasattr(db, 'get_all') or not hasattr(db, 'update') or not hasattr(database, 'Note'):
            raise NotImplementedError('Método add, get_all ou update ou a classe Note não foram implementadas ainda. Ignore se ainda não chegou neste exercício')

        data = [
            database.Note(title='Hidratação', content='Lembrar de tomar água'),
            database.Note(title='Pão doce', content='Abra o pão e coloque o seu suco em pó favorito.'),
        ]
        for note in data:
            db.add(note)

        notes = sorted(db.get_all(), key=lambda n: n.title)
        new_title = 'Zebra'
        new_content = 'É um animal que começa com a letra Z.'
        updated_row = notes[1]
        updated_row.title = new_title
        updated_row.content = new_content
        db.update(updated_row)

        notes = sorted(db.get_all(), key=lambda n: n.title)
        data[1].title = new_title
        data[1].content = new_content
        assert isinstance(notes, list), f'O método get_all deveria devolver uma lista. Obtido: {notes}'
        assert len(data) == len(notes), f'A lista devolvida tem uma quantidade de elementos diferente do esperado. Esperado: {len(data)}. Obtido: {len(notes)}.'
        assert all(d.title == n.title and d.content == n.content for d, n in zip(data, notes)), f'A lista de anotações é diferente da esperada. Esperada: {data}. Obtida: {notes}.'
Example #2
0
    def test_delete_row(self):
        db = database.Database(DB_NAME)
        if not hasattr(db, 'add') or not hasattr(db, 'get_all') or not hasattr(
                db, 'delete') or not hasattr(database, 'Note'):
            raise NotImplementedError(
                'Método add, get_all ou delete ou a classe Note não foram implementadas ainda. Ignore se ainda não chegou neste exercício'
            )

        data = [
            database.Note(title='Hidratação', content='Lembrar de tomar água'),
            database.Note(
                title='Pão doce',
                content='Abra o pão e coloque o seu suco em pó favorito.'),
        ]
        for note in data:
            db.add(note)

        db.delete(1)
        notes = sorted(db.get_all(), key=lambda n: n.title)
        assert isinstance(
            notes, list
        ), f'O método get_all deveria devolver uma lista. Obtido: {notes}'
        assert len(
            notes
        ) == 1, f'A lista devolvida deveria ter apenas 1 elemento. Obtido: {len(notes)}.'
        note = notes[0]
        assert data[1].title == note.title and data[
            1].content == note.content, f'Foi removido o elemento errado.'
Example #3
0
    def test_add_rows(self):
        db = database.Database(DB_NAME)
        if not hasattr(db, 'add') or not hasattr(database, 'Note'):
            raise NotImplementedError('Método add ou classe Note não foram implementadas ainda. Ignore se ainda não chegou neste exercício')

        data = [
            ('Pão doce', 'Abra o pão e coloque o seu suco em pó favorito.'),
            ('', 'Lembrar de tomar água'),
        ]
        for title, content in data:
            db.add(database.Note(title=title, content=content))

        conn = sqlite3.connect(DB_FILENAME)
        cursor = conn.execute(f"SELECT * FROM {TABLE_NAME}")
        result = [(title, content) for _, title, content in cursor]
        result.sort(key=lambda r: r[1])
        assert data == result, 'Os dados não foram inseridos corretamente.'
Example #4
0
def save_notes():
    figureId = flask.request.form.get('figureId', None)
    string = flask.request.form.get('string', None)
    category = flask.request.form.get('category', None)

    figure = flask.g.session.query(database.Figure).get(figureId)

    for note in figure.notes:
        flask.g.session.delete(note)

    for classification in figure.classifications:
        flask.g.session.delete(classification)

    flask.g.session.add(
        database.Classification(data=[category],
                                userId=flask.ext.login.current_user.get_id(),
                                figureId=figureId))

    note = database.Note(string=string, figureId=figureId)
    flask.g.session.add(note)

    return flask.json.jsonify({})