def test_datetime_multi_type(): today = now() field = MultiType("datetime", today) assert field.type == "datetime" assert field.value == today field = MultiType("datetime", str(today)) assert field.type == "datetime" assert field.value == today
def test_int_multi_type(): field_1 = MultiType("int", 10) field_2 = MultiType("int", 10.5) field_3 = MultiType("int", "10") assert field_1.type == "int" assert field_2.type == "int" assert field_3.type == "int" assert field_1.value == 10 assert field_2.value == 10 assert field_3.value == 10
def test_float_multi_type(): field_1 = MultiType("float", 10) field_2 = MultiType("float", 10.5) field_3 = MultiType("float", "10") field_4 = MultiType("float", "10.5") assert field_1.type == "float" assert field_2.type == "float" assert field_3.type == "float" assert field_4.type == "float" assert field_1.value == 10.0 assert field_2.value == 10.5 assert field_3.value == 10.0 assert field_4.value == 10.5
def test_dato_procesado_model_float(basic_models: Tuple[Plc, Area, Fila, Dato]): plc, area, fila, dato = basic_models dato_procesado = DatoProcesado.objects.create( plc=plc, area=area, fila=fila, raw_dato=dato, name="test", date=now(), dato=MultiType("float", 10.5) ) assert dato_procesado.dato.value == 10.5
def test_dato_procesado_model_datetime(basic_models: Tuple[Plc, Area, Fila, Dato]): plc, area, fila, dato = basic_models today = now() dato_procesado = DatoProcesado.objects.create( plc=plc, area=area, fila=fila, raw_dato=dato, name="test", date=now(), dato=MultiType("datetime", str(today)) ) assert dato_procesado.dato.value == today
def test_dato_procesado_model_bool(basic_models: Tuple[Plc, Area, Fila, Dato]): plc, area, fila, dato = basic_models dato_procesado = DatoProcesado.objects.create( plc=plc, area=area, fila=fila, raw_dato=dato, name="test", date=now(), dato=MultiType("bool", "True") ) assert dato_procesado.dato.value == True assert dato_procesado.dato.type == "bool"
def initial_data(): plc = Plc.objects.create(ip="127.0.0.1", rack=0, slot=0, port=1012) area = Area.objects.create(plc=plc, nombre="area 1", numero=1, offset=10, area=Area.DB) fila = Fila.objects.create(name="fila 1", area=area, byte=0, bit=0, tipo_dato=Fila.BOOL) dato = Dato.objects.create(area=area, dato=bytearray(10)) dato_procesado = DatoProcesado.objects.create(plc=plc, area=area, fila=fila, raw_dato=dato, date=now(), dato=MultiType(type="bool", value="True"))
def test_bool_multi_type(): field_1 = MultiType("bool", True) field_2 = MultiType("bool", False) field_3 = MultiType("bool", "False") field_4 = MultiType("bool", "false") field_5 = MultiType("bool", 0) field_6 = MultiType("bool", 1) assert field_1.type == "bool" assert field_2.type == "bool" assert field_3.type == "bool" assert field_4.type == "bool" assert field_5.type == "bool" assert field_6.type == "bool" assert field_1.value == True assert field_2.value == False assert field_3.value == False assert field_4.value == False assert field_5.value == False assert field_6.value == True
def basic_models() -> Tuple[Plc, Area, Fila, Dato]: plc = Plc.objects.create(ip=ip, rack=rack, slot=slot, port=port, nombre="test plc") area = Area.objects.create(plc=plc, area=Area.DB, nombre="area 1", numero=1, offset=10) fila = Fila.objects.create(area=area, name="fila 1", byte=0, bit=0, tipo_dato=Fila.INT) fila_2 = Fila.objects.create(area=area, name="fila 2", byte=2, bit=0, tipo_dato=Fila.INT) dato_1 = Dato.objects.create(area=area, dato=bytearray([100])) dato_2 = Dato.objects.create(area=area, dato=bytearray([150])) dato_3 = Dato.objects.create(area=area, dato=bytearray([200])) dato_4 = Dato.objects.create(area=area, dato=bytearray([0, 0, 200])) DatoProcesado.objects.create(area=area, plc=plc, fila=fila, raw_dato=dato_1, date=now(), dato=MultiType("int", 100)) DatoProcesado.objects.create(area=area, plc=plc, fila=fila, raw_dato=dato_2, date=now() + timedelta(seconds=10), dato=MultiType("int", 150)) DatoProcesado.objects.create(area=area, plc=plc, fila=fila, raw_dato=dato_3, date=now() + timedelta(seconds=20), dato=MultiType("int", 200)) DatoProcesado.objects.create(area=area, plc=plc, fila=fila_2, raw_dato=dato_4, date=now(), dato=MultiType("int", 0))