def test_raise_error_si_get_items_con_fechas_fin_menor_que_fecha_ini(self): ini = dt.datetime(2017, 9, 28) # 28/09/2017 fin = dt.datetime(2017, 9, 1) # 01/09/2017 with self.assertRaises(ValueError): db = OmipDB() db.get_items(date_ini = ini , date_fin = fin)
def _load_data_from_file(self, csv_path): ''' lee el archivo csv y devuelve los datos en forma de base de datos OmipDB''' db = OmipDB() for item in self._get_items_from_csv_file(csv_path): (fecha, producto, valor) = item db.save_item(fecha, producto, valor) return db
def test_number_of_items_in_db(self): db = OmipDB() #db.save_item(dt.datetime(2017, 10, 22), "Q1-18", 1) # OmipDB.save_item(fecha, producto, valor) #db.save_item(dt.datetime(2017, 10, 22), "Q2-18", 2) #db.save_item(dt.datetime(2017, 10, 22), "Q3-18", 3) db[dt.datetime(2017, 10, 22), "Q1-18"] = 1 # OmipDB[fecha, producto] = valor db[dt.datetime(2017, 10, 22), "Q2-18"] = 2 db[dt.datetime(2017, 10, 22), "Q3-18"] = 3 self.assertEqual(len(db), 3) self.assertEqual(db.num_items(), 3)
def test_contains(self): db = OmipDB() t1 = dt.datetime(2017, 10, 22) p1 = "Q1-18" db[t1, p1] = 1 self.assertEqual(db.contiene(dt.datetime(2017, 10, 22), "Q1-18"), True) self.assertEqual(db.contiene(dt.datetime.now(), "PRODUCTO NO EXISTENTE"), False) self.assertEqual((dt.datetime(2017, 10, 22), "Q1-18") in db, True) self.assertEqual((dt.datetime.now(), "PRODUCTO NO EXISTENTE") in db, False)
def test_update(self): db1 = OmipDB() fecha = dt.datetime(2017, 10, 22) producto = "Q1-18" valor = 22.4 db1.save_item(fecha, producto, valor) #db[fecha, producto] = valor db2 = OmipDB() fecha = dt.datetime(2017, 10, 23) db1.save_item(fecha, producto, valor) db1.update(db2) self.assertEqual(len(db1.items()), 2)
def test_error_si_archivo_datos_ya_existe(self): filepath = get_file_path("omip_data_ya_existente.csv") with self.assertRaises(FileExistsError): writer = OmipStoredDataWriter() writer.write_data(OmipDB(), filepath)
def test_guarda_datos_vacios_en_archivo_no_da_error(self): filepath = get_file_path("omip_data_vacio3.csv") if os.path.isfile(filepath): os.remove(filepath) writer = OmipStoredDataWriter() db = OmipDB() writer.write_data(db, filepath)
def test_items(self): db = OmipDB() item1 = (dt.datetime(2017, 10, 22), "Q1-18", 1) item2 = (dt.datetime(2017, 10, 22), "Q2-18", 2) item3 = (dt.datetime(2017, 10, 22), "Q3-18", 3) #db.save_item(item1[0], item1[1], item1[2]) # OmipDB.save_item(fecha, producto, valor) #db.save_item(item2[0], item2[1], item2[2]) #db.save_item(item3[0], item3[1], item3[2]) db[item1[0], item1[1]] = item1[2] # OmipDB[fecha, producto] = valor db[item2[0], item2[1]] = item2[2] db[item3[0], item3[1]] = item3[2] self.assertEqual(len(db.items()), 3) self.assertEqual(db.items(), (item1, item2, item3))
def test_get_items_entre_dos_fechas(self): db = OmipDB() db.save_item(dt.datetime(2017, 10, 1), "Q1-18", 10.44) db.save_item(dt.datetime(2017, 10, 1), "Q2-18", 20.44) db.save_item(dt.datetime(2017, 10, 2), "Q1-18", 10.55) db.save_item(dt.datetime(2017, 10, 2), "Q2-18", 20.55) db.save_item(dt.datetime(2017, 10, 3), "Q1-18", 11.43) ini = dt.datetime(2017, 10, 1) # 01/10/2017 fin = dt.datetime(2017, 10, 2) # 02/10/2017 values = db.get_items(date_ini = ini , date_fin = fin) self.assertEqual(len(values), 4) self.assertEqual(values[dt.datetime(2017, 10, 1), "Q1-18"], 10.44) self.assertEqual(values[dt.datetime(2017, 10, 1), "Q2-18"], 20.44) self.assertEqual(values[dt.datetime(2017, 10, 2), "Q1-18"], 10.55) self.assertEqual(values[dt.datetime(2017, 10, 2), "Q2-18"], 20.55)
def test_get_items_sin_indicar_fecha_muestra_todos_los_values(self): db = OmipDB() db.save_item(dt.datetime(2017, 10, 1), "Q1-18", 10.44) db.save_item(dt.datetime(2017, 10, 1), "Q2-18", 20.44) db.save_item(dt.datetime(2017, 10, 2), "Q1-18", 10.55) db.save_item(dt.datetime(2017, 10, 2), "Q2-18", 20.55) db.save_item(dt.datetime(2017, 10, 3), "Q1-18", 11.43) values = db.get_items() self.assertEqual(len(values), 5) #print("values: ", values) self.assertEqual(values[dt.datetime(2017, 10, 1), "Q1-18"], 10.44) self.assertEqual(values[dt.datetime(2017, 10, 1), "Q2-18"], 20.44) self.assertEqual(values[dt.datetime(2017, 10, 2), "Q1-18"], 10.55) self.assertEqual(values[dt.datetime(2017, 10, 2), "Q2-18"], 20.55) self.assertEqual(values[dt.datetime(2017, 10, 3), "Q1-18"], 11.43)
def test_check_formato_item(self): item_ok = (dt.datetime(2017,10,7), "Q1-18", 20.2) item_mal_1 = () item_mal_2 = ("mal", "mal", "mal") item_mal_3 = (("mal", "mal"), "mal") item_mal_4 = (dt.datetime(2017, 10, 20), 22.2, "mal") item_mal_5 = ((dt.datetime(2017, 10, 20), "Q1-18"), 22.2) item_mal_6 = (dt.datetime(2017, 10, 20), "Q1-18", "mal") self.assertEqual(OmipDB.check_formato_item(item_ok), True) self.assertEqual(OmipDB.check_formato_item(item_mal_1), False) self.assertEqual(OmipDB.check_formato_item(item_mal_2), False) self.assertEqual(OmipDB.check_formato_item(item_mal_3), False) self.assertEqual(OmipDB.check_formato_item(item_mal_4), False) self.assertEqual(OmipDB.check_formato_item(item_mal_5), False) self.assertEqual(OmipDB.check_formato_item(item_mal_6), False)
def test_save_item_to_db(self): db = OmipDB() fecha = dt.datetime(2017, 10, 22) producto = "Q1-18" valor = 22.4 #db.save_item(fecha, producto, valor) db[fecha, producto] = valor #self.assertEqual(db.get_item(fecha, producto), valor) self.assertEqual(db[fecha, producto], valor) db = OmipDB() fecha = dt.datetime(2017, 10, 22) producto = "Q1-18" valor = 22.4 db.save_item(fecha, producto, valor) #db[fecha, producto] = valor self.assertEqual(db.get_item(fecha, producto), valor)
def test_fecha_in_date_range(self): ini = dt.datetime(2017, 10, 1) # 01/10/2017 fin = dt.datetime(2017, 10, 2) # 02/10/2017 db = OmipDB() db.save_item(dt.datetime(2017, 10, 1), "Q1-18", 10.44) db.save_item(dt.datetime(2017, 10, 1), "Q2-18", 20.44) db.save_item(dt.datetime(2017, 10, 2), "Q1-18", 10.55) db.save_item(dt.datetime(2017, 10, 2), "Q2-18", 20.55) db.save_item(dt.datetime(2017, 10, 3), "Q1-18", 11.43) #print("item: ", db[dt.datetime(2017, 10, 1), "Q1-18"]) #print("está el item? ", (dt.datetime(2017, 10, 1), "Q1-18") in db) self.assertEqual(db._fecha_in_date_range(dt.datetime(2017, 9, 30), ini, fin), False) self.assertEqual(db._fecha_in_date_range(dt.datetime(2017, 10, 1), ini, fin), True) self.assertEqual(db._fecha_in_date_range(dt.datetime(2017, 10, 2), ini, fin), True) self.assertEqual(db._fecha_in_date_range(dt.datetime(2017, 10, 3), ini, fin), False) self.assertEqual(db._fecha_in_date_range(dt.datetime(2017, 9, 30), None, fin), True) self.assertEqual(db._fecha_in_date_range(dt.datetime(2017, 10, 1), None, fin), True) self.assertEqual(db._fecha_in_date_range(dt.datetime(2017, 10, 2), None, fin), True) self.assertEqual(db._fecha_in_date_range(dt.datetime(2017, 10, 3), None, fin), False) self.assertEqual(db._fecha_in_date_range(dt.datetime(2017, 9, 30), ini, None), False) self.assertEqual(db._fecha_in_date_range(dt.datetime(2017, 10, 1), ini, None), True) self.assertEqual(db._fecha_in_date_range(dt.datetime(2017, 10, 2), ini, None), True) self.assertEqual(db._fecha_in_date_range(dt.datetime(2017, 10, 3), ini, None), True) self.assertEqual(db._fecha_in_date_range(dt.datetime(2017, 9, 30), None, None), True) self.assertEqual(db._fecha_in_date_range(dt.datetime(2017, 10, 1), None, None), True) self.assertEqual(db._fecha_in_date_range(dt.datetime(2017, 10, 2), None, None), True) self.assertEqual(db._fecha_in_date_range(dt.datetime(2017, 10, 3), None, None), True) ini = dt.datetime(2017, 11, 21) # 01/10/2017 fin = dt.datetime(2017, 11, 23) # 02/10/2017 self.assertEqual(db._fecha_in_date_range(dt.datetime(2017, 11, 22), ini, fin), True)