def test_filter_details(self): from core.Filter import Filter from core.Status import Status my_filter = Filter.from_dict({'operator': 'EQUAL', 'field': 'Status._details[\'BROWSER\']', 'value': 'Firefox'}) assert my_filter != False s1 = Status(str(uuid.uuid4()), str(uuid.uuid4()), 'FAILURE', details={'BROWSER': 'Firefox'}) s1._on = datetime.datetime.now() - datetime.timedelta(seconds=5) s2 = Status(str(uuid.uuid4()), str(uuid.uuid4()), 'SUCCESS', details={'BROWSER': 'Chrome'}) s2._on = datetime.datetime.now() + datetime.timedelta(seconds=5) assert my_filter.check_status(s1) == True assert my_filter.check_status(s2) == False status_filter = my_filter.check_statuses([s1, s2]) assert len(status_filter) == 1 assert status_filter[0]._test_id == s1._test_id
def test_filter_greater_than(self): from core.Filter import Filter from core.Status import Status my_filter = Filter.from_dict({'operator': 'GREATER THAN', 'field': 'Status._on', 'value': 'datetime.datetime.now() + datetime.timedelta(days=1)'}) assert my_filter != False s1 = Status(str(uuid.uuid4()), str(uuid.uuid4()), 'FAILURE', details={}) s1._on = datetime.datetime.now() - datetime.timedelta(seconds=5) s2 = Status(str(uuid.uuid4()), str(uuid.uuid4()), 'SUCCESS', details={}) s2._on = datetime.datetime.now() + datetime.timedelta(days=1, seconds=5) assert my_filter.check_status(s1) == False assert my_filter.check_status(s2) == True status_filter = my_filter.check_statuses([s1, s2]) assert len(status_filter) == 1 assert status_filter[0]._test_id == s2._test_id
def test_repr_getter_setter(self): from core.Status import Status test_id = str(uuid.uuid4()) test_status = random.choice(['SUCCESS', 'FAILURE']) test_type = str(uuid.uuid4()) status = Status(test_id, test_type, test_status) assert '{0}'.format(status) == '<Status {0} ({1}) : {2} on the {3}>'.format(test_id, test_type, test_status, None) assert status.to_dict() == {'test_id': test_id, 'status': test_status, 'type': test_type} status._on = datetime.datetime.now() status._last = True status._details = {'browser': random.choice(['Firefox', 'Chrome'])} assert status.to_dict()['on'] == status._on.replace(microsecond=0) assert status.to_dict()['last'] == status._last assert status.to_dict()['details'] == status._details status2 = status.from_dict(status.to_dict()) assert status2.to_dict() == status.to_dict()