def test_add_messages(self): """ Test the behavior of calling `add_messages` with combination of `StudioValidation` instances. """ validation_1 = StudioValidation("id") validation_1.set_summary( StudioValidationMessage(StudioValidationMessage.WARNING, "Summary message")) validation_1.add( StudioValidationMessage(StudioValidationMessage.ERROR, "Error message")) validation_2 = StudioValidation("id") validation_2.set_summary( StudioValidationMessage(StudioValidationMessage.ERROR, "Summary 2 message")) validation_2.add( StudioValidationMessage(StudioValidationMessage.NOT_CONFIGURED, "Not configured")) validation_1.add_messages(validation_2) assert 2 == len(validation_1.messages) assert StudioValidationMessage.ERROR == validation_1.messages[0].type assert 'Error message' == validation_1.messages[0].text assert StudioValidationMessage.NOT_CONFIGURED == validation_1.messages[ 1].type assert 'Not configured' == validation_1.messages[1].text assert StudioValidationMessage.WARNING == validation_1.summary.type assert 'Summary message' == validation_1.summary.text
def test_add_messages(self): """ Test the behavior of calling `add_messages` with combination of `StudioValidation` instances. """ validation_1 = StudioValidation("id") validation_1.set_summary( StudioValidationMessage(StudioValidationMessage.WARNING, u"Summary message")) validation_1.add( StudioValidationMessage(StudioValidationMessage.ERROR, u"Error message")) validation_2 = StudioValidation("id") validation_2.set_summary( StudioValidationMessage(StudioValidationMessage.ERROR, u"Summary 2 message")) validation_2.add( StudioValidationMessage(StudioValidationMessage.NOT_CONFIGURED, u"Not configured")) validation_1.add_messages(validation_2) self.assertEqual(2, len(validation_1.messages)) self.assertEqual(StudioValidationMessage.ERROR, validation_1.messages[0].type) self.assertEqual(u"Error message", validation_1.messages[0].text) self.assertEqual(StudioValidationMessage.NOT_CONFIGURED, validation_1.messages[1].type) self.assertEqual(u"Not configured", validation_1.messages[1].text) self.assertEqual(StudioValidationMessage.WARNING, validation_1.summary.type) self.assertEqual(u"Summary message", validation_1.summary.text)
def test_set_summary_accepts_validation_message(self): """ Test that `set_summary` accepts a ValidationMessage. """ validation = StudioValidation("id") validation.set_summary(ValidationMessage(ValidationMessage.WARNING, u"Summary message")) self.assertEqual(ValidationMessage.WARNING, validation.summary.type) self.assertEqual(u"Summary message", validation.summary.text)
def test_set_summary_accepts_validation_message(self): """ Test that `set_summary` accepts a ValidationMessage. """ validation = StudioValidation("id") validation.set_summary(ValidationMessage(ValidationMessage.WARNING, u"Summary message")) self.assertEqual(ValidationMessage.WARNING, validation.summary.type) self.assertEqual(u"Summary message", validation.summary.text)
def test_set_summary_accepts_validation_message(self): """ Test that `set_summary` accepts a ValidationMessage. """ validation = StudioValidation("id") validation.set_summary( ValidationMessage(ValidationMessage.WARNING, "Summary message")) assert ValidationMessage.WARNING == validation.summary.type assert 'Summary message' == validation.summary.text
def test_to_json(self): """ Test the ability to serialize a `StudioValidation` instance. """ validation = StudioValidation("id") expected = {"xblock_id": "id", "messages": [], "empty": True} self.assertEqual(expected, validation.to_json()) validation.add( StudioValidationMessage(StudioValidationMessage.ERROR, u"Error message", action_label=u"Action label", action_class="edit-button")) validation.add( StudioValidationMessage(StudioValidationMessage.NOT_CONFIGURED, u"Not configured message", action_label=u"Action label", action_runtime_event="make groups")) validation.set_summary( StudioValidationMessage(StudioValidationMessage.WARNING, u"Summary message", action_label=u"Summary label", action_runtime_event="fix everything")) # Note: it is important to test all the expected strings here because the client-side model depends on them # (for instance, "warning" vs. using the xblock constant ValidationMessageTypes.WARNING). expected = { "xblock_id": "id", "messages": [{ "type": "error", "text": u"Error message", "action_label": u"Action label", "action_class": "edit-button" }, { "type": "not-configured", "text": u"Not configured message", "action_label": u"Action label", "action_runtime_event": "make groups" }], "summary": { "type": "warning", "text": u"Summary message", "action_label": u"Summary label", "action_runtime_event": "fix everything" }, "empty": False } self.assertEqual(expected, validation.to_json())
def test_to_json(self): """ Test the ability to serialize a `StudioValidation` instance. """ validation = StudioValidation("id") expected = { "xblock_id": "id", "messages": [], "empty": True } self.assertEqual(expected, validation.to_json()) validation.add( StudioValidationMessage( StudioValidationMessage.ERROR, u"Error message", action_label=u"Action label", action_class="edit-button" ) ) validation.add( StudioValidationMessage( StudioValidationMessage.NOT_CONFIGURED, u"Not configured message", action_label=u"Action label", action_runtime_event="make groups" ) ) validation.set_summary( StudioValidationMessage( StudioValidationMessage.WARNING, u"Summary message", action_label=u"Summary label", action_runtime_event="fix everything" ) ) # Note: it is important to test all the expected strings here because the client-side model depends on them # (for instance, "warning" vs. using the xblock constant ValidationMessageTypes.WARNING). expected = { "xblock_id": "id", "messages": [ {"type": "error", "text": u"Error message", "action_label": u"Action label", "action_class": "edit-button"}, {"type": "not-configured", "text": u"Not configured message", "action_label": u"Action label", "action_runtime_event": "make groups"} ], "summary": {"type": "warning", "text": u"Summary message", "action_label": u"Summary label", "action_runtime_event": "fix everything"}, "empty": False } self.assertEqual(expected, validation.to_json())
def test_empty(self): """ Test that `empty` return True iff there are no messages and no summary. Also test the "bool" property of `Validation`. """ validation = StudioValidation("id") self.assertTrue(validation.empty) self.assertTrue(validation) validation.add(StudioValidationMessage(StudioValidationMessage.ERROR, u"Error message")) self.assertFalse(validation.empty) self.assertFalse(validation) validation_with_summary = StudioValidation("id") validation_with_summary.set_summary( StudioValidationMessage(StudioValidationMessage.NOT_CONFIGURED, u"Summary message") ) self.assertFalse(validation.empty) self.assertFalse(validation)
def test_empty(self): """ Test that `empty` return True iff there are no messages and no summary. Also test the "bool" property of `Validation`. """ validation = StudioValidation("id") self.assertTrue(validation.empty) self.assertTrue(validation) validation.add(StudioValidationMessage(StudioValidationMessage.ERROR, u"Error message")) self.assertFalse(validation.empty) self.assertFalse(validation) validation_with_summary = StudioValidation("id") validation_with_summary.set_summary( StudioValidationMessage(StudioValidationMessage.NOT_CONFIGURED, u"Summary message") ) self.assertFalse(validation.empty) self.assertFalse(validation)
def test_add_messages(self): """ Test the behavior of calling `add_messages` with combination of `StudioValidation` instances. """ validation_1 = StudioValidation("id") validation_1.set_summary(StudioValidationMessage(StudioValidationMessage.WARNING, u"Summary message")) validation_1.add(StudioValidationMessage(StudioValidationMessage.ERROR, u"Error message")) validation_2 = StudioValidation("id") validation_2.set_summary(StudioValidationMessage(StudioValidationMessage.ERROR, u"Summary 2 message")) validation_2.add(StudioValidationMessage(StudioValidationMessage.NOT_CONFIGURED, u"Not configured")) validation_1.add_messages(validation_2) self.assertEqual(2, len(validation_1.messages)) self.assertEqual(StudioValidationMessage.ERROR, validation_1.messages[0].type) self.assertEqual(u"Error message", validation_1.messages[0].text) self.assertEqual(StudioValidationMessage.NOT_CONFIGURED, validation_1.messages[1].type) self.assertEqual(u"Not configured", validation_1.messages[1].text) self.assertEqual(StudioValidationMessage.WARNING, validation_1.summary.type) self.assertEqual(u"Summary message", validation_1.summary.text)