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