def test_validate_reject_empty_items(self): f = forms_xso.Field() f.var = "foobar" obj = forms_xso.Data(forms_xso.DataType.RESULT) obj.reported = forms_xso.Reported() obj.reported.fields.append(f) obj.items.append(forms_xso.Item()) with self.assertRaisesRegex(ValueError, "field mismatch between row and header"): obj.validate()
def test_validate_rejects_fields_for_results_if_report(self): field = forms_xso.Field() field.type_ = forms_xso.FieldType.FIXED obj = forms_xso.Data(type_=forms_xso.DataType.RESULT) obj.fields.append(field) obj.reported = forms_xso.Reported() with self.assertRaisesRegex(ValueError, "field in report result"): obj.validate() obj.reported = None obj.items.append(forms_xso.Item()) with self.assertRaisesRegex(ValueError, "field in report result"): obj.validate()
def test_validate_rejects_reported_or_items_if_type_is_not_result(self): types = ["form", "submit", "cancel"] rep = forms_xso.Reported() item = forms_xso.Item() for type_ in types: obj = forms_xso.Data() obj.type_ = type_ obj.reported = rep with self.assertRaisesRegex(ValueError, "report in non-result"): obj.validate() obj.reported = None obj.items.append(item) with self.assertRaisesRegex(ValueError, "report in non-result"): obj.validate() obj.items.clear()
def test_validate_reject_mismatching_items(self): f = forms_xso.Field() f.var = "foobar" obj = forms_xso.Data() obj.type_ = "result" obj.reported = forms_xso.Reported() obj.reported.fields.append(f) f2 = forms_xso.Field() f2.var = "fnord" item = forms_xso.Item() item.fields.append(f2) obj.items.append(item) with self.assertRaisesRegex(ValueError, "field mismatch between row and header"): obj.validate()
def test_validate_rejects_reported_or_items_if_type_is_not_result(self): types = [ forms_xso.DataType.FORM, forms_xso.DataType.SUBMIT, forms_xso.DataType.CANCEL, ] rep = forms_xso.Reported() item = forms_xso.Item() for type_ in types: obj = forms_xso.Data(type_=type_) obj.reported = rep with self.assertRaisesRegex(ValueError, "report in non-result"): obj.validate() obj.reported = None obj.items.append(item) with self.assertRaisesRegex(ValueError, "report in non-result"): obj.validate() obj.items.clear()