def test_multiplication(self):
     self.assertTrue(state.is_done(plugins.calculator.cmd_calc("1 * 1")))
     self.assertEqual(plugins.calculator.cmd_calc("1 * 1").value, "1")
     self.assertTrue(state.is_done(plugins.calculator.cmd_calc("-1 * 1")))
     self.assertEqual(plugins.calculator.cmd_calc("-1 * 1").value, "-1")
     self.assertTrue(state.is_done(plugins.calculator.cmd_calc("0.1 * 0.1")))
     self.assertEqual(plugins.calculator.cmd_calc("0.1 * 0.1").value, "0.01")
 def test_addition(self):
     self.assertTrue(state.is_done(plugins.calculator.cmd_calc("1 + 1")))
     self.assertEqual(plugins.calculator.cmd_calc("1 + 1").value, "2")
     self.assertTrue(state.is_done(plugins.calculator.cmd_calc("-1 + 1")))
     self.assertEqual(plugins.calculator.cmd_calc("-1 + 1").value, "0")
     self.assertTrue(state.is_done(plugins.calculator.cmd_calc("0.5 + 0.5")))
     self.assertEqual(plugins.calculator.cmd_calc("0.5 + 0.5").value, "1.0")
 def test_subtraction(self):
     self.assertTrue(state.is_done(plugins.calculator.cmd_calc("1 - 1")))
     self.assertEqual(plugins.calculator.cmd_calc("1 - 1").value, "0")
     self.assertTrue(state.is_done(plugins.calculator.cmd_calc("-1 - 1")))
     self.assertEqual(plugins.calculator.cmd_calc("-1 - 1").value, "-2")
     self.assertTrue(state.is_done(plugins.calculator.cmd_calc("0.6 - 0.5")))
     self.assertEqual(plugins.calculator.cmd_calc("0.6 - 0.5").value, "0.1")
Exemple #4
0
    def parse(self, msg):
        """
        Parse a message, return relevant output.

        @param msg: unparsed message
        @type msg: str
        @return: message to print or None (if there's no output to print)
        @rtype: str|None
        """

        # split message into first word + rest of line
        try:
            command, args  = msg.split(None, 1)
        except ValueError:
            command, args = msg, ""

        if command in self.COMMANDS:
            stat = self.COMMANDS[command](args)
            if state.is_done(stat):
                return stat.value
            elif state.is_next(stat):
                print(stat.value)
                return None
            else:
                return None

        for func in self.FILTERS:
            stat = func(msg)

            if state.is_done(stat):
                return stat.value
            elif state.is_replace(stat):
                msg = stat.value

        return msg
Exemple #5
0
    def parse(self, msg):
        """
        Parse a message, return relevant output.

        @param msg: unparsed message
        @type msg: str
        @return: message to print or None (if there's no output to print)
        @rtype: str|None
        """
        # split msg into command & arguments
        try:
            command, args = msg.split(None, 1)
        except ValueError:  # split failed
            command, args = msg.rstrip(), ""
        # try execute command
        if command in self.COMMANDS:
            rval = self.COMMANDS[command](args)
            if state.is_done(rval):
                return rval.value
        # run text HOOKS
        for f in self.FILTERS:
            rval = f(msg)
            if state.is_done(rval):
                return rval.value
            if state.is_replace(rval):
                msg = rval.value
        return msg
Exemple #6
0
	def parse(self, msg):
		"""
		Parses given input.

		@param msg: input message to parse
		@type msg: str
		@return: return message processed with associated commands and filters
		@rtype: str
		"""
		try:
			cmd, args = msg.split(" ", 1)
		except ValueError:
			cmd, args = msg.rstrip(), ""

		if cmd in self.COMMANDS:
			ret = self.COMMANDS[cmd](args)

			if state.is_done(ret):
				return ret.value
			elif state.is_next(ret):
				pass
			else:
				raise Exception("Illegal state of command.")

		for filter in self.FILTERS:
			ret = filter(msg)

			if state.is_done(ret):
				return ret.value

			if state.is_replace(ret):
				msg = ret.value

		return msg
 def test_division(self):
     self.assertTrue(state.is_done(plugins.calculator.cmd_calc("1 / 1")))
     self.assertEqual(plugins.calculator.cmd_calc("1 / 1").value, "1")
     self.assertTrue(state.is_done(plugins.calculator.cmd_calc("1 / 2")))
     self.assertEqual(plugins.calculator.cmd_calc("1 / 2").value, "0")
     self.assertTrue(state.is_done(plugins.calculator.cmd_calc("1.0 / 2")))
     self.assertEqual(plugins.calculator.cmd_calc("1.0 / 2").value, "0.5")
 def test_custom(self):
     plugins.wordcount.WORDCOUNT = 5
     self.assertEqual(plugins.wordcount.WORDCOUNT, 5)
     self.assertTrue(state.is_done(plugins.wordcount.cmd_word_count()))
     self.assertEqual(
         plugins.wordcount.cmd_word_count(None).value,
         "Actual word count is " + str(plugins.wordcount.WORDCOUNT) + " words.",
     )
 def test_single_negative_number_float(self):
     self.assertTrue(state.is_done(plugins.calculator.cmd_calc("-1.0")))
     self.assertEqual(plugins.calculator.cmd_calc("-1.0").value, "-1.0")
Exemple #10
0
 def test_not_state(self):
     self.assertFalse(state.is_done(object()))
Exemple #11
0
 def test_not_done(self):
     self.assertFalse(state.is_done(state.replace(None)))
     self.assertFalse(state.is_done(state.next(None)))
Exemple #12
0
	def test_single_negative_number(self):
		self.assertTrue(state.is_done(calculator.cmd_calc("-1")))
		self.assertEqual(calculator.cmd_calc("-1").value, "-1")
Exemple #13
0
 def test_single_positive_number(self):
     self.assertTrue(state.is_done(plugins.calculator.cmd_calc("1")))
     self.assertEquals(plugins.calculator.cmd_calc("1").value, "1")
Exemple #14
0
 def test_default(self):
     self.assertTrue(state.is_done(plugins.karma.cmd_karma("foo")))
     self.assertEqual(plugins.karma.cmd_karma("foo").value, "'foo' has no karma.")
     plugins.karma.KARMA = {"foo": 5}
     self.assertTrue(state.is_done(plugins.karma.cmd_karma("foo")))
     self.assertEqual(plugins.karma.cmd_karma("foo").value, "'foo' has 5 points of karma.")
Exemple #15
0
	def test_default(self):
		self.assertTrue(state.is_done(plugins.wordcount.cmd_word_count()))
		self.assertEqual(plugins.wordcount.cmd_word_count(None).value, 'Actual word count is ' + str(plugins.wordcount.WORDCOUNT) + ' words.')
Exemple #16
0
 def test_done(self):
     self.assertTrue(state.is_done(state.done(None)))
Exemple #17
0
 def test_correct_parenthesis(self):
     self.assertTrue(state.is_done(plugins.calculator.cmd_calc("2 * (1 + 2)")))
     self.assertEqual(plugins.calculator.cmd_calc("2 * (1 + 2)").value, "6")
Exemple #18
0
	def test_single_positive_number_float(self):
		self.assertTrue(state.is_done(calculator.cmd_calc("1.0")))
		self.assertEquals(calculator.cmd_calc("1.0").value, "1.0")