예제 #1
0
    def test_view_product_message(self):
        product_content = Mock()
        client_handlers = Mock()
        user_info_cache = Mock()
        favorites_cache = Mock()
        target = Target(product_content=product_content, client_handlers=client_handlers, user_info_cache=user_info_cache, favorites_cache=favorites_cache)
        target.on_new_message = Mock()
        target.on_next_page_message = Mock()
        target.on_view_product_details_message = Mock()

        target.on_message(
            "handler_value",
            {
                "type": "view_product_details"
            }
        )

        self.assertEqual(0, target.on_new_message.call_count)
        self.assertEqual(0, target.on_next_page_message.call_count)

        self.assertEqual(1, target.on_view_product_details_message.call_count)
        self.assertEqual("handler_value", target.on_view_product_details_message.call_args_list[0][0][0])
        self.assertDictEqual(
            {
                "type": "view_product_details"
            },
            target.on_view_product_details_message.call_args_list[0][0][1]
        )
예제 #2
0
    def test_view_product_message(self):
        product_content = Mock()
        client_handlers = Mock()
        user_info_cache = Mock()
        favorites_cache = Mock()
        target = Target(product_content=product_content,
                        client_handlers=client_handlers,
                        user_info_cache=user_info_cache,
                        favorites_cache=favorites_cache)
        target.on_new_message = Mock()
        target.on_next_page_message = Mock()
        target.on_view_product_details_message = Mock()

        target.on_message("handler_value", {"type": "view_product_details"})

        self.assertEqual(0, target.on_new_message.call_count)
        self.assertEqual(0, target.on_next_page_message.call_count)

        self.assertEqual(1, target.on_view_product_details_message.call_count)
        self.assertEqual(
            "handler_value",
            target.on_view_product_details_message.call_args_list[0][0][0])
        self.assertDictEqual(
            {"type": "view_product_details"},
            target.on_view_product_details_message.call_args_list[0][0][1])
예제 #3
0
    def test_regular(self):
        handler = Mock(name="handler_value")
        handler.context_id = "context_id_value"
        handler.user_id = "user_id_value"
        handler.application_id = "application_id_value"
        handler.session_id = "session_id_value"
        handler.locale = "locale_value"
        handler.suggest_id = "suggest_id_value"
        handler.context_rev = "old_rev"

        product_content = Mock()
        client_handlers = Mock()
        user_info_cache = Mock()
        favorites_cache = Mock()
        target = Target(product_content=product_content,
                        client_handlers=client_handlers,
                        user_info_cache=user_info_cache,
                        favorites_cache=favorites_cache)
        target.post_context_feedback = Mock(return_value="new_rev")

        target.on_view_product_details_message(handler, {
            "product_id": "product_id_value",
            "feedback_type": "type_value"
        })

        self.assertEqual(1, target.post_context_feedback.call_count)
        self.assertEqual("context_id_value",
                         target.post_context_feedback.call_args_list[0][0][0])
        self.assertEqual("user_id_value",
                         target.post_context_feedback.call_args_list[0][0][1])
        self.assertEqual("application_id_value",
                         target.post_context_feedback.call_args_list[0][0][2])
        self.assertEqual("session_id_value",
                         target.post_context_feedback.call_args_list[0][0][3])
        self.assertEqual("product_id_value",
                         target.post_context_feedback.call_args_list[0][0][4])
        self.assertEqual("type_value",
                         target.post_context_feedback.call_args_list[0][0][5])
        self.assertIsNone(target.post_context_feedback.call_args_list[0][0][6])

        self.assertEqual("context_id_value", handler.context_id)
        self.assertEqual("suggest_id_value", handler.suggest_id)
        self.assertEqual("new_rev", handler.context_rev)
예제 #4
0
    def test_regular(self):
        handler = Mock(name="handler_value")
        handler.context_id = "context_id_value"
        handler.user_id = "user_id_value"
        handler.application_id = "application_id_value"
        handler.session_id = "session_id_value"
        handler.locale = "locale_value"
        handler.suggest_id = "suggest_id_value"
        handler.context_rev = "old_rev"

        product_content = Mock()
        client_handlers = Mock()
        user_info_cache = Mock()
        favorites_cache = Mock()
        target = Target(product_content=product_content, client_handlers=client_handlers, user_info_cache=user_info_cache, favorites_cache=favorites_cache)
        target.post_context_feedback = Mock(
            return_value="new_rev"
        )

        target.on_view_product_details_message(
            handler,
            {
                "product_id": "product_id_value",
                "feedback_type": "type_value"
            }
        )

        self.assertEqual(1, target.post_context_feedback.call_count)
        self.assertEqual("context_id_value", target.post_context_feedback.call_args_list[0][0][0])
        self.assertEqual("user_id_value", target.post_context_feedback.call_args_list[0][0][1])
        self.assertEqual("application_id_value", target.post_context_feedback.call_args_list[0][0][2])
        self.assertEqual("session_id_value", target.post_context_feedback.call_args_list[0][0][3])
        self.assertEqual("product_id_value", target.post_context_feedback.call_args_list[0][0][4])
        self.assertEqual("type_value", target.post_context_feedback.call_args_list[0][0][5])
        self.assertIsNone(target.post_context_feedback.call_args_list[0][0][6])

        self.assertEqual("context_id_value", handler.context_id)
        self.assertEqual("suggest_id_value", handler.suggest_id)
        self.assertEqual("new_rev", handler.context_rev)
예제 #5
0
    def test_unknown_message_type(self):
        product_content = Mock()
        client_handlers = Mock()
        user_info_cache = Mock()
        favorites_cache = Mock()
        target = Target(product_content=product_content,
                        client_handlers=client_handlers,
                        user_info_cache=user_info_cache,
                        favorites_cache=favorites_cache)
        target.on_new_message = Mock()
        target.on_next_page_message = Mock()
        target.on_view_product_details_message = Mock()

        self.assertRaises(Exception, target.on_message, {"type": "unknown"})

        self.assertEqual(0, target.on_new_message.call_count)
        self.assertEqual(0, target.on_next_page_message.call_count)
        self.assertEqual(0, target.on_view_product_details_message.call_count)
예제 #6
0
    def test_no_message_type(self):
        product_content = Mock()
        client_handlers = Mock()
        user_info_cache = Mock()
        favorites_cache = Mock()
        target = Target(product_content=product_content, client_handlers=client_handlers, user_info_cache=user_info_cache, favorites_cache=favorites_cache)
        target.on_new_message = Mock()
        target.on_next_page_message = Mock()
        target.on_view_product_details_message = Mock()

        self.assertRaises(
            Exception,
            target.on_message,
            {}
        )

        self.assertEqual(0, target.on_new_message.call_count)
        self.assertEqual(0, target.on_next_page_message.call_count)
        self.assertEqual(0, target.on_view_product_details_message.call_count)
예제 #7
0
    def test_new_message(self):
        product_content = Mock()
        client_handlers = Mock()
        user_info_cache = Mock()
        favorites_cache = Mock()
        target = Target(product_content=product_content,
                        client_handlers=client_handlers,
                        user_info_cache=user_info_cache,
                        favorites_cache=favorites_cache)
        target.new_message_handler = MagicMock()
        target.on_next_page_message = Mock()
        target.on_view_product_details_message = Mock()

        target.on_message("handler_value", {"type": "new_message"})

        target.new_message_handler.on_new_message.assert_called_once_with(
            'handler_value', {'type': 'new_message'}, new_conversation=False)

        self.assertEqual(0, target.on_next_page_message.call_count)
        self.assertEqual(0, target.on_view_product_details_message.call_count)
예제 #8
0
    def test_home_page_message(self):
        product_content = Mock()
        client_handlers = Mock()
        user_info_cache = Mock()
        favorites_cache = Mock()
        target = Target(product_content=product_content, client_handlers=client_handlers, user_info_cache=user_info_cache, favorites_cache=favorites_cache)
        target.new_message_handler = MagicMock()
        target.on_next_page_message = Mock()
        target.on_view_product_details_message = Mock()

        target.on_message(
            "handler_value",
            {
                "type": "home_page_message"
            }
        )

        target.new_message_handler.on_new_message.assert_called_once_with('handler_value', {'type': 'home_page_message'}, new_conversation=True)

        self.assertEqual(0, target.on_next_page_message.call_count)
        self.assertEqual(0, target.on_view_product_details_message.call_count)