def test_cancel_edit(self): from shinymud.modes.text_edit_mode import TextEditMode room = self.area.new_room() mode = TextEditMode(self.bob, room, 'description', room.description) mode.edit_lines = [ "This be a shiny room here!", "There be goblins here!", "And a pirate!" ] mode.finish_editing() mode = TextEditMode(self.bob, room, 'description', room.description) mode.insert_line(line='2', args='There be spam and eggs here!') mode.cancel_edit() self.assertFalse('There be spam and eggs here!' in room.description)
def test_clear(self): from shinymud.modes.text_edit_mode import TextEditMode room = self.area.new_room() mode = TextEditMode(self.bob, room, 'description', room.description) mode.edit_lines = ['This is a shiny new room!'] mode.clear_description() mode.finish_editing() self.assertEqual(room.description, '')
def test_insert_line(self): from shinymud.modes.text_edit_mode import TextEditMode room = self.area.new_room() mode = TextEditMode(self.bob, room, 'description', room.description) #Manually give the room description so we don't depend on the new_room() defaults mode.edit_lines = [ "This be a shiny room here!", "There be goblins here!", "And a pirate!" ] mode.insert_line(line='2', args='There be spam and eggs here!') self.assertEqual(len(mode.edit_lines), 4) mode.finish_editing() self.assertTrue('There be spam and eggs here!' in room.description) #stress testing mode = TextEditMode(self.bob, room, 'description', room.description) mode.insert_line(line='200') self.assertTrue("200 is not a valid line number." in self.bob.outq) mode.insert_line(args='YourMother') self.assertTrue( "'YourMother' is not a valid line number." in self.bob.outq)
def test_delete_line(self): from shinymud.modes.text_edit_mode import TextEditMode room = self.area.new_room() mode = TextEditMode(self.bob, room, 'description', room.description) #Manually give the room description so we don't depend on the new_room() defaults mode.edit_lines = [ "This be a shiny room here!", "There be goblins here!", "And a pirate!" ] mode.delete_line(line='2') self.assertEqual(len(mode.edit_lines), 2) mode.finish_editing() self.assertFalse("There be goblins here!" in room.description) #stress testing mode = TextEditMode(self.bob, room, 'description', room.description) mode.delete_line(line='200') self.assertTrue("200 is not a valid line number." in self.bob.outq) #(regular expression parses non-digit input into args instead of line) mode.delete_line(args='YourMother') self.assertTrue( "'YourMother' is not a valid line number." in self.bob.outq)
def test_help(self): from shinymud.modes.text_edit_mode import TextEditMode room = self.area.new_room() help_msg = " @done - saves your progress and exits the editor.\n" +\ " @cancel - quit the editor without saving changes.\n" +\ " @show - display your progress so far, line by line.\n" +\ " @preview - preview the formatted version of your text.\n" +\ " @clear - clears ALL of your progress, giving you an empty slate.\n" +\ " @delete line# - delete a specific line.\n" +\ " @replace line# new_sentence - replace a line with a new sentence:\n" +\ " e.g. \"@replace 5 My new sentence.\"\n" +\ " @insert line# new_sentence - inserts a sentence at line#:\n" +\ " e.g. \"@insert 1 My new sentence.\"\n" mode = TextEditMode(self.bob, room, 'description', room.description) mode.help() self.assertTrue(help_msg in self.bob.outq)
def build_set_description(self, desc, player=None): """Set the description of this item.""" player.last_mode = player.mode player.mode = TextEditMode(player, self, 'description', self.description) return 'ENTERING TextEditMode: type "@help" for help.\n'
def set_description(self, description): """Set the description for this player.""" self.last_mode = self.mode self.mode = TextEditMode(self, self, 'description', self.description) return 'ENTERING TextEditMode: type "@help" for help.'
def build_set_body(self, body, player=None): """Set the body of this script item.""" player.last_mode = player.mode player.mode = TextEditMode(player, self, 'body', self.body, 'script') return 'ENTERING TextEditMode: type "@help" for help.\n'