Esempio n. 1
0
def test_criterion_to_string():
    """
    Test `prewikka.dataprovider.Criterion.to_string()` method.
    """
    # empty criterion
    criterion = Criterion()

    assert criterion.to_string() == ''

    # simple criterion
    criterion = Criterion('alert.messageid', '=', 'fakemessageid')

    assert criterion.to_string() == "alert.messageid = 'fakemessageid'"

    criterion = Criterion('alert.messageid', '==', 'fakemessageid')

    assert criterion.to_string() == "alert.messageid = 'fakemessageid'"

    criterion = Criterion('alert.messageid', '!=', 'fakemessageid')

    assert criterion.to_string() == "alert.messageid != 'fakemessageid'"

    criterion = Criterion('alert.messageid', '>', 'fakemessageid')

    assert criterion.to_string() == "alert.messageid > 'fakemessageid'"

    criterion = Criterion('alert.messageid', '>=', 'fakemessageid')

    assert criterion.to_string() == "alert.messageid >= 'fakemessageid'"

    criterion = Criterion('alert.messageid', '<', 'fakemessageid')

    assert criterion.to_string() == "alert.messageid < 'fakemessageid'"

    criterion = Criterion('alert.messageid', '<=', 'fakemessageid')

    assert criterion.to_string() == "alert.messageid <= 'fakemessageid'"

    criterion = Criterion('alert.messageid', '<>*', 'fakemessageid')

    assert criterion.to_string() == "alert.messageid <>* 'fakemessageid'"

    # combined criterion
    criterion_1 = Criterion('alert.messageid', '=', 'fakemessageid1')
    criterion_2 = Criterion('alert.messageid', '=', 'fakemessageid2')
    criterion = Criterion(criterion_1, '||', criterion_2)

    assert criterion.to_string(
    ) == "alert.messageid = 'fakemessageid1' || alert.messageid = 'fakemessageid2'"

    criterion = Criterion(criterion_1, '&&', criterion_2)

    assert criterion.to_string(
    ) == "alert.messageid = 'fakemessageid1' && alert.messageid = 'fakemessageid2'"
Esempio n. 2
0
def test_criterion_operations():
    """
    Test `prewikka.dataprovider.Criterion` operations.
    """
    criterion_0 = Criterion()
    criterion_1 = Criterion('alert.messageid', '=', 'fakemessageid1')
    criterion_2 = Criterion('heartbeat.messageid', '=', 'fakemessageid2')

    # __str__()
    assert str(criterion_1) == criterion_1.to_string()

    # __bool__() / __nonzero__()
    assert not criterion_0
    assert criterion_1

    # __copy__()
    criterion_copy = copy.copy(criterion_1)

    assert criterion_copy != criterion_1
    assert criterion_copy.to_string() == criterion_1.to_string()

    # __json__()
    assert criterion_1.__json__() == {
        'left': 'alert.messageid',
        'operator': CriterionOperator.EQUAL,
        'right': 'fakemessageid1'
    }

    # __iadd__()
    criterion_iadd = copy.copy(criterion_1)
    criterion_iadd += criterion_2

    assert criterion_iadd.to_string() == Criterion(criterion_1, '&&',
                                                   criterion_2).to_string()

    # __ior__()
    criterion_ior = copy.copy(criterion_1)
    criterion_ior |= criterion_2

    assert criterion_ior.to_string() == Criterion(criterion_1, '||',
                                                  criterion_2).to_string()

    # __iand__()
    criterion_iand = copy.copy(criterion_1)
    criterion_iand &= criterion_2

    assert criterion_iand.to_string() == Criterion(criterion_1, '&&',
                                                   criterion_2).to_string()

    # __add__()
    criterion_add = criterion_1 + criterion_2

    assert criterion_add.to_string() == Criterion(criterion_1, '&&',
                                                  criterion_2).to_string()

    # __or__()
    criterion_or = criterion_1 | criterion_2

    assert criterion_or.to_string() == Criterion(criterion_1, '||',
                                                 criterion_2).to_string()

    # __and__()
    criterion_and = criterion_1 & criterion_2

    assert criterion_and.to_string() == Criterion(criterion_1, '&&',
                                                  criterion_2).to_string()