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}.'
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.'
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.'
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({})