class ResultMessageParserTestCase(unittest.TestCase):
    def setUp(self):
        self.parser = ResultMessageParser()
        self.id = 'id'
        self.error = 'error'
        self.result = {'result': [True, 1.0]}

    def test_with_error(self):
        message = self.parser.parse({'msg': 'result', 'id': self.id,
                                     'error': self.error})
        self.assertEqual(message, ResultMessage(self.id, error=self.error))

    def test_with_result(self):
        message = self.parser.parse({'msg': 'result', 'id': self.id,
                                     'result': self.result})
        self.assertEqual(message, ResultMessage(self.id, result=self.result))

    def test_with_error_with_result(self):
        with self.assertRaises(ValueError):
            self.parser.parse({'msg': 'result', 'id': self.id,
                               'error': self.error, 'result': self.result})

    def test_without_error_without_reuslt(self):
        message = self.parser.parse({'msg': 'result', 'id': self.id})
        self.assertEqual(message, ResultMessage(self.id))
 def setUp(self):
     self.parser = ResultMessageParser()
     self.id = 'id'
     self.error = 'error'
     self.result = {'result': [True, 1.0]}