예제 #1
0
    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)
예제 #2
0
    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, '')
예제 #3
0
    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)
예제 #4
0
    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)
예제 #5
0
 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)
예제 #6
0
파일: item.py 프로젝트: semtle/ShinyMUD
 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'
예제 #7
0
 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.'
예제 #8
0
 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'