def test_evaluate_date_rule_equals_with_with_offset(self): when = { 'id': 'date-answer', 'condition': 'equals', 'date_comparison': { 'value': '2019-03-31', 'offset_by': { 'days': 1, 'months': 1, 'years': 1 } } } answer_value = '2020-05-01' result = evaluate_date_rule(when, None, 0, None, answer_value) self.assertTrue(result) when = { 'id': 'date-answer', 'condition': 'equals', 'date_comparison': { 'value': '2021-04-01', 'offset_by': { 'days': -1, 'months': -1, 'years': -1 } } } answer_value = '2020-02-29' result = evaluate_date_rule(when, None, 0, None, answer_value) self.assertTrue(result)
def test_evaluate_date_rule_not_equals_with_value_year_month(self): when = { 'id': 'date-answer', 'condition': 'not equals', 'date_comparison': { 'value': '2018-01' } } answer_value = '2018-02' result = evaluate_date_rule(when, None, 0, None, answer_value) self.assertTrue(result) answer_value = '2018-01' result = evaluate_date_rule(when, None, 0, None, answer_value) self.assertFalse(result)
def test_evaluate_date_rule_equals_with_value_now(self): when = { 'id': 'date-answer', 'condition': 'equals', 'date_comparison': { 'value': 'now' } } answer_value = datetime.utcnow().strftime('%Y-%m-%d') result = evaluate_date_rule(when, None, 0, None, answer_value) self.assertTrue(result) answer_value = '2000-01-01' result = evaluate_date_rule(when, None, 0, None, answer_value) self.assertFalse(result)
def test_evaluate_date_rule_less_than_meta(self): metadata = {'return_by': '2016-06-12'} when = { 'id': 'date-answer', 'condition': 'less than', 'date_comparison': { 'meta': 'return_by' } } answer_value = '2016-06-11' result = evaluate_date_rule(when, None, 0, metadata, answer_value) self.assertTrue(result) answer_value = '2016-06-12' result = evaluate_date_rule(when, None, 0, metadata, answer_value) self.assertFalse(result)
def test_evaluate_date_rule_not_equals_with_value_year_month(self): when = { "id": "date-answer", "condition": "not equals", "date_comparison": { "value": "2018-01" }, } answer_value = "2018-02" result = evaluate_date_rule(when, None, get_schema_mock(), None, answer_value) self.assertTrue(result) answer_value = "2018-01" result = evaluate_date_rule(when, None, get_schema_mock(), None, answer_value) self.assertFalse(result)
def test_evaluate_date_rule_equals_with_value_now(self): when = { "id": "date-answer", "condition": "equals", "date_comparison": { "value": "now" }, } answer_value = datetime.utcnow().strftime("%Y-%m-%d") result = evaluate_date_rule(when, None, get_schema_mock(), None, answer_value) self.assertTrue(result) answer_value = "2000-01-01" result = evaluate_date_rule(when, None, get_schema_mock(), None, answer_value) self.assertFalse(result)
def test_evaluate_date_rule_greater_than_with_id(self): when = { 'id': 'date-answer', 'condition': 'greater than', 'date_comparison': { 'id': 'compare_date_answer' } } answer_store = AnswerStore({}) answer_store.add(Answer(answer_id='compare_date_answer', value='2018-02-03')) answer_value = '2018-02-04' result = evaluate_date_rule(when, answer_store, 0, None, answer_value) self.assertTrue(result) answer_value = '2018-02-03' result = evaluate_date_rule(when, answer_store, 0, None, answer_value) self.assertFalse(result)
def test_evaluate_date_rule_less_than_meta(self): metadata = {"return_by": "2016-06-12"} when = { "id": "date-answer", "condition": "less than", "date_comparison": { "meta": "return_by" }, } answer_value = "2016-06-11" result = evaluate_date_rule(when, None, get_schema_mock(), metadata, answer_value) self.assertTrue(result) answer_value = "2016-06-12" result = evaluate_date_rule(when, None, get_schema_mock(), metadata, answer_value) self.assertFalse(result)
def test_evaluate_date_rule_invalid(self): when = { "id": "date-answer", "condition": "greater than", "date_comparison": { "id": "compare_date_answer" }, } answer_store = AnswerStore({}) result = evaluate_date_rule(when, answer_store, get_schema_mock(), None, None) self.assertFalse(result)
def test_evaluate_date_rule_greater_than_with_id(self): when = { "id": "date-answer", "condition": "greater than", "date_comparison": { "id": "compare_date_answer" }, } answer_store = AnswerStore({}) answer_store.add_or_update( Answer(answer_id="compare_date_answer", value="2018-02-03")) answer_value = "2018-02-04" result = evaluate_date_rule(when, answer_store, get_schema_mock(), None, answer_value) self.assertTrue(result) answer_value = "2018-02-03" result = evaluate_date_rule(when, answer_store, get_schema_mock(), None, answer_value) self.assertFalse(result)
def test_evaluate_date_rule_equals_with_with_offset(self): when = { "id": "date-answer", "condition": "equals", "date_comparison": { "value": "2019-03-31", "offset_by": { "days": 1, "months": 1, "years": 1 }, }, } answer_value = "2020-05-01" result = evaluate_date_rule(when, None, get_schema_mock(), None, answer_value) self.assertTrue(result) when = { "id": "date-answer", "condition": "equals", "date_comparison": { "value": "2021-04-01", "offset_by": { "days": -1, "months": -1, "years": -1 }, }, } answer_value = "2020-02-29" result = evaluate_date_rule(when, None, get_schema_mock(), None, answer_value) self.assertTrue(result)