· 7 years ago · Oct 19, 2018, 07:30 AM
1#!/usr/bin/env python3
2"""Ejemplo de uso del módulo sqlite3"""
3
4# Correr con:
5 # python prueba_sqlite.py
6# o bien con:
7 # python -m unittest prueba_sqlite3.py
8
9import sqlite3
10import unittest
11import os
12
13class TestSqlite(unittest.TestCase):
14
15 """Testcase para probar el funcionamiento del módulo sqlite3"""
16
17 DB_NAME="db.sqlite3"
18 PRODUCTOS = [
19 (1, "La birrita", 100),
20 (2, "Lopo roto", 50),
21 (5, "Cosas", 85)
22 ]
23
24 @classmethod
25 def setUpClass(cls):
26 """Crear BD y cargar productos"""
27 cls.conn = sqlite3.connect(cls.DB_NAME)
28 #Crear tabla
29 cursor = cls.conn.cursor()
30 cursor.execute("""
31 CREATE TABLE IF NOT EXISTS Producto (
32 id integer PRIMARY KEY,
33 descripcion text,
34 precio real
35 )
36 """)
37 #Cargar productos
38 for prod in cls.PRODUCTOS:
39 cursor.execute("INSERT INTO Producto VALUES (?,?,?)", prod)
40
41 cls.conn.commit()
42 cursor.close()
43
44 @classmethod
45 def tearDownClass(cls):
46 """Eliminar BD una vez finalizado el testcase"""
47 os.remove(cls.DB_NAME)
48
49 def setUp(self):
50 self.cursor = self.conn.cursor()
51
52 def tearDown(self):
53 self.conn.commit()
54 self.cursor.close()
55 self.conn.close()
56
57 def test_productos_cargados_correctamente(self):
58 """Verificar que los productos se cargaron correctamente"""
59 productos_en_la_base = self.cursor.execute(
60 "SELECT * FROM Producto").fetchall()
61 for p in zip(self.PRODUCTOS, productos_en_la_base):
62 self.assertEqual(p[0], p[1])
63
64
65if __name__ == "__main__":
66 unittest.main()