def get_forms_by_last_modified(start_datetime, end_datetime): ''' Returns all form ids that have been modified within a time range. The start date is exclusive while the end date is inclusive (start_datetime, end_datetime]. ''' return FormAccessorSQL.iter_forms_by_last_modified(start_datetime, end_datetime)
def test_get_forms_by_last_modified(self): start = datetime(2016, 1, 1) end = datetime(2018, 1, 1) form1 = create_form_for_test(DOMAIN, received_on=datetime(2017, 1, 1)) create_form_for_test(DOMAIN, received_on=datetime(2015, 1, 1)) # Test that it gets all states form2 = create_form_for_test( DOMAIN, state=XFormInstanceSQL.ARCHIVED, received_on=datetime(2017, 1, 1) ) # Test that other date fields are properly fetched form3 = create_form_for_test( DOMAIN, received_on=datetime(2015, 1, 1), edited_on=datetime(2017, 1, 1), ) forms = list(FormAccessorSQL.iter_forms_by_last_modified(start, end)) self.assertEqual(3, len(forms)) self.assertEqual( {form1.form_id, form2.form_id, form3.form_id}, {form.form_id for form in forms}, )