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'"
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()