Esempio n. 1
0
def test_time_interval_entity_get_value() -> None:
    body = "to 4 am"
    value = {
        "to": {
            "value": "2021-06-03T17:00:00.000+05:30",
            "grain": "hour"
        },
        "from": {
            "value": "2021-06-03T15:00:00.000+05:30",
            "grain": "hour"
        },
        "type": "interval",
    }
    entity = TimeIntervalEntity(
        range={
            "from": 0,
            "to": len(body)
        },
        body=body,
        entity_type="time",
        grain="hour",
        values=[value],
        value=value,
    )
    value = "2021-06-03T15:00:00+05:30"
    assert entity.get_value() == datetime.fromisoformat(value)
Esempio n. 2
0
def test_interval_entity_value_none() -> None:
    body = "between 2 to 4 am"
    entity = TimeIntervalEntity(
        range={"from": 0, "to": len(body)},
        body=body,
        type="time",
        grain="hour",
    )
    with pytest.raises(TypeError):
        entity.set_value()
Esempio n. 3
0
def test_interval_entity_set_value_values_present() -> None:
    body = "between 2 to 4 am"
    value = {
        "to": {"value": "2021-01-22T05:00:00.000+05:30", "grain": "hour"},
        "from": {"value": "2021-01-22T02:00:00.000+05:30", "grain": "hour"},
    }
    entity = TimeIntervalEntity(
        range={"from": 0, "to": len(body)},
        body=body,
        type="time",
        grain="hour",
    )
    entity.set_value(value)
    assert entity.value == value
Esempio n. 4
0
def test_bad_interval_entity_neither_from_nor_to() -> None:
    body = "to 4 am"
    value = {"type": "interval"}
    entity = TimeIntervalEntity(
        range={
            "from": 0,
            "to": len(body)
        },
        body=body,
        entity_type="time",
        grain="hour",
        values=[value],
    )
    with pytest.raises(KeyError):
        entity.get_value(value)
Esempio n. 5
0
def test_time_interval_entity_value_not_dict_error():
    body = "from 4 pm to 12 am"
    with pytest.raises(TypeError):
        _ = TimeIntervalEntity(range={
            "from": 0,
            "to": len(body)
        },
                               body=body,
                               entity_type="time",
                               grain=0)
Esempio n. 6
0
def test_interval_entity_only_to() -> None:
    body = "to 4 am"
    value = {
        "to": {
            "value": "2021-01-22T04:00:00.000+05:30",
            "grain": "hour"
        },
    }
    entity = TimeIntervalEntity(
        range={
            "from": 0,
            "to": len(body)
        },
        body=body,
        entity_type="time",
        grain="hour",
        values=[value],
    )
    entity.set_value(value=value)
    assert entity.value == value
Esempio n. 7
0
def test_time_interval_entity_no_value() -> None:
    body = "to 4 am"
    value = {
        "to": {
            "value": "2021-04-17T04:00:00.000+05:30",
            "grain": "hour"
        },
        "type": "interval",
    }
    entity = TimeIntervalEntity(
        range={
            "from": 0,
            "to": len(body)
        },
        body=body,
        entity_type="time",
        grain="hour",
        values=[value],
        value=value,
    )
    entity.values = entity.value
    with pytest.raises(TypeError):
        entity.set_value()
Esempio n. 8
0
def test_entity_grain_to_type() -> None:
    body = "between 2 to 4 am"
    value = {
        "to": {"value": "2021-01-22T05:00:00.000+05:30", "grain": "hour"},
        "from": {"value": "2021-01-22T02:00:00.000+05:30", "grain": "hour"},
    }
    entity = TimeIntervalEntity(
        range={"from": 0, "to": len(body)},
        body=body,
        type="time",
        grain="hour",
        values=[value],
    )
    assert entity.entity_type == "hour"
    assert entity.type == "hour"