def test_get_auth_functions(self, comments_enabled):

        auth_functions_len = TOTAL_ACTIONS if comments_enabled == 'True' else ACTIONS_NO_COMMENTS

        # Configure config and create instance
        plugin.config.get.return_value = comments_enabled
        self.plg_instance = plugin.DataRequestsPlugin()

        # Get auth functions
        auth_functions = self.plg_instance.get_auth_functions()

        self.assertEquals(auth_functions_len, len(auth_functions))
        self.assertEquals(plugin.auth.create_datarequest, auth_functions[self.create_datarequest])
        self.assertEquals(plugin.auth.show_datarequest, auth_functions[self.show_datarequest])
        self.assertEquals(plugin.auth.update_datarequest, auth_functions[self.update_datarequest])
        self.assertEquals(plugin.auth.list_datarequests, auth_functions[self.list_datarequests])
        self.assertEquals(plugin.auth.delete_datarequest, auth_functions[self.delete_datarequest])
        self.assertEquals(plugin.auth.follow_datarequest, auth_functions[self.follow_datarequest])
        self.assertEquals(plugin.auth.unfollow_datarequest, auth_functions[self.unfollow_datarequest])

        if comments_enabled == 'True':
            self.assertEquals(plugin.auth.comment_datarequest, auth_functions[self.comment_datarequest])
            self.assertEquals(plugin.auth.list_datarequest_comments, auth_functions[self.list_datarequest_comments])
            self.assertEquals(plugin.auth.show_datarequest_comment, auth_functions[self.show_datarequest_comment])
            self.assertEquals(plugin.auth.update_datarequest_comment, auth_functions[self.update_datarequest_comment])
            self.assertEquals(plugin.auth.delete_datarequest_comment, auth_functions[self.delete_datarequest_comment])
Exemplo n.º 2
0
    def test_helpers(self, comments_enabled, show_datarequests_badge):

        # Configure config and get instance
        plugin.config = {
            "ckan.datarequests.comments": comments_enabled,
            "ckan.datarequests.show_datarequests_badge": show_datarequests_badge,
        }
        self.plg_instance = plugin.DataRequestsPlugin()

        # Check result
        show_comments_expected = True if comments_enabled == "True" else False
        helpers = self.plg_instance.get_helpers()
        self.assertEquals(helpers["show_comments_tab"](), show_comments_expected)
        self.assertEquals(
            helpers["get_comments_number"], plugin.helpers.get_comments_number
        )
        self.assertEquals(
            helpers["get_comments_badge"], plugin.helpers.get_comments_badge
        )
        self.assertEquals(
            helpers["get_open_datarequests_number"],
            plugin.helpers.get_open_datarequests_number,
        )
        self.assertEquals(
            helpers["get_open_datarequests_badge"], plugin.partial.return_value
        )

        # Check that partial has been called
        show_datarequests_expected = (
            True if show_datarequests_badge == "True" else False
        )
        plugin.partial.assert_called_once_with(
            plugin.helpers.get_open_datarequests_badge, show_datarequests_expected
        )
Exemplo n.º 3
0
    def test_get_actions(self, comments_enabled):

        actions_len = TOTAL_ACTIONS if comments_enabled == 'True' else ACTIONS_NO_COMMENTS

        # Configure config and create instance
        plugin.config.get.return_value = comments_enabled
        self.plg_instance = plugin.DataRequestsPlugin()

        # Get actions
        actions = self.plg_instance.get_actions()

        self.assertEquals(actions_len, len(actions))
        self.assertEquals(plugin.actions.datarequest_create,
                          actions[self.datarequest_create])
        self.assertEquals(plugin.actions.datarequest_show,
                          actions[self.datarequest_show])
        self.assertEquals(plugin.actions.datarequest_update,
                          actions[self.datarequest_update])
        self.assertEquals(plugin.actions.datarequest_index,
                          actions[self.datarequest_index])
        self.assertEquals(plugin.actions.datarequest_delete,
                          actions[self.datarequest_delete])

        if comments_enabled == 'True':
            self.assertEquals(plugin.actions.datarequest_comment,
                              actions[self.datarequest_comment])
            self.assertEquals(plugin.actions.datarequest_comment_list,
                              actions[self.datarequest_comment_list])
            self.assertEquals(plugin.actions.datarequest_comment_show,
                              actions[self.datarequest_comment_show])
            self.assertEquals(plugin.actions.datarequest_comment_update,
                              actions[self.datarequest_comment_update])
            self.assertEquals(plugin.actions.datarequest_comment_delete,
                              actions[self.datarequest_comment_delete])
    def test_helpers(self, comments_enabled, show_datarequests_badge):

        # Configure config and get instance
        common.config = {
            'ckan.datarequests.comments': comments_enabled,
            'ckan.datarequests.show_datarequests_badge':
            show_datarequests_badge
        }
        self.plg_instance = plugin.DataRequestsPlugin()

        # Check result
        show_comments_expected = True if comments_enabled == 'True' else False
        helpers = self.plg_instance.get_helpers()
        self.assertEquals(helpers['show_comments_tab'](),
                          show_comments_expected)
        self.assertEquals(helpers['get_comments_number'],
                          plugin.helpers.get_comments_number)
        self.assertEquals(helpers['get_comments_badge'],
                          plugin.helpers.get_comments_badge)
        self.assertEquals(helpers['get_open_datarequests_number'],
                          plugin.helpers.get_open_datarequests_number)
        self.assertEquals(helpers['get_open_datarequests_badge'],
                          plugin.partial.return_value)

        # Check that partial has been called
        show_datarequests_expected = True if show_datarequests_badge == 'True' else False
        plugin.partial.assert_called_once_with(
            plugin.helpers.get_open_datarequests_badge,
            show_datarequests_expected)
    def test_update_config(self):
        # Create instance
        self.plg_instance = plugin.DataRequestsPlugin()

        # Test
        config = MagicMock()
        self.plg_instance.update_config(config)
        plugin.tk.add_template_directory.assert_called_once_with(config, 'templates')
Exemplo n.º 6
0
    def test_get_actions(self, comments_enabled):

        actions_len = (
            TOTAL_ACTIONS if comments_enabled == "True" else ACTIONS_NO_COMMENTS
        )

        # Configure config and create instance
        plugin.config.get.return_value = comments_enabled
        self.plg_instance = plugin.DataRequestsPlugin()

        # Get actions
        actions = self.plg_instance.get_actions()

        self.assertEquals(actions_len, len(actions))
        self.assertEquals(
            plugin.actions.create_datarequest, actions[self.create_datarequest]
        )
        self.assertEquals(
            plugin.actions.show_datarequest, actions[self.show_datarequest]
        )
        self.assertEquals(
            plugin.actions.update_datarequest, actions[self.update_datarequest]
        )
        self.assertEquals(
            plugin.actions.list_datarequests, actions[self.list_datarequests]
        )
        self.assertEquals(
            plugin.actions.delete_datarequest, actions[self.delete_datarequest]
        )
        self.assertEquals(
            plugin.actions.follow_datarequest, actions[self.follow_datarequest]
        )
        self.assertEquals(
            plugin.actions.unfollow_datarequest, actions[self.unfollow_datarequest]
        )

        if comments_enabled == "True":
            self.assertEquals(
                plugin.actions.comment_datarequest, actions[self.comment_datarequest]
            )
            self.assertEquals(
                plugin.actions.list_datarequest_comments,
                actions[self.list_datarequest_comments],
            )
            self.assertEquals(
                plugin.actions.show_datarequest_comment,
                actions[self.show_datarequest_comment],
            )
            self.assertEquals(
                plugin.actions.update_datarequest_comment,
                actions[self.update_datarequest_comment],
            )
            self.assertEquals(
                plugin.actions.delete_datarequest_comment,
                actions[self.delete_datarequest_comment],
            )
Exemplo n.º 7
0
    def test_helpers(self, comments_enabled):

        # Configure config and get instance
        plugin.config.get.return_value = comments_enabled
        self.plg_instance = plugin.DataRequestsPlugin()

        # Check result
        expected_result = True if comments_enabled == 'True' else False
        self.assertEquals(
            self.plg_instance.get_helpers()['show_comments_tab'](),
            expected_result)
    def test_before_map(self, comments_enabled):

        urls_set = 12
        mapa_calls = urls_set if comments_enabled == 'True' else urls_set - 2

        # Configure config and get instance
        plugin.config.get.return_value = comments_enabled
        self.plg_instance = plugin.DataRequestsPlugin()

        mock_icon = 'icon'
        get_question_icon_patch = patch('ckanext.datarequests.plugin.get_question_icon', return_value=mock_icon)
        get_question_icon_patch.start()
        self.addCleanup(get_question_icon_patch.stop)

        # Test
        mapa = MagicMock()
        dr_basic_path = 'datarequest'
        self.plg_instance.before_map(mapa)

        self.assertEquals(mapa_calls, mapa.connect.call_count)
        mapa.connect.assert_any_call(
            'datarequests_index', "/%s" % dr_basic_path,
            controller='ckanext.datarequests.controllers.ui_controller:DataRequestsUI',
            action='index', conditions={'method': ['GET']})

        mapa.connect.assert_any_call(
            '/%s/new' % dr_basic_path,
            controller='ckanext.datarequests.controllers.ui_controller:DataRequestsUI',
            action='new', conditions={'method': ['GET', 'POST']})

        mapa.connect.assert_any_call(
            'show_datarequest', '/%s/{id}' % dr_basic_path,
            controller='ckanext.datarequests.controllers.ui_controller:DataRequestsUI',
            action='show', conditions={'method': ['GET']}, ckan_icon=mock_icon)

        mapa.connect.assert_any_call(
            '/%s/edit/{id}' % dr_basic_path,
            controller='ckanext.datarequests.controllers.ui_controller:DataRequestsUI',
            action='update', conditions={'method': ['GET', 'POST']})

        mapa.connect.assert_any_call(
            '/%s/delete/{id}' % dr_basic_path,
            controller='ckanext.datarequests.controllers.ui_controller:DataRequestsUI',
            action='delete', conditions={'method': ['POST']})

        mapa.connect.assert_any_call(
            '/%s/close/{id}' % dr_basic_path,
            controller='ckanext.datarequests.controllers.ui_controller:DataRequestsUI',
            action='close', conditions={'method': ['GET', 'POST']})

        mapa.connect.assert_any_call(
            'organization_datarequests',
            '/organization/%s/{id}' % dr_basic_path,
            controller='ckanext.datarequests.controllers.ui_controller:DataRequestsUI',
            action='organization_datarequests', conditions={'method': ['GET']},
            ckan_icon=mock_icon)

        mapa.connect.assert_any_call(
            'user_datarequests',
            '/user/%s/{id}' % dr_basic_path,
            controller='ckanext.datarequests.controllers.ui_controller:DataRequestsUI',
            action='user_datarequests', conditions={'method': ['GET']},
            ckan_icon=mock_icon)

        mapa.connect.assert_any_call(
            'user_datarequests',
            '/user/%s/{id}' % dr_basic_path,
            controller='ckanext.datarequests.controllers.ui_controller:DataRequestsUI',
            action='user_datarequests', conditions={'method': ['GET']},
            ckan_icon=mock_icon)

        mapa.connect.assert_any_call(
            '/%s/follow/{id}' % dr_basic_path,
            controller='ckanext.datarequests.controllers.ui_controller:DataRequestsUI',
            action='follow', conditions={'method': ['POST']})

        mapa.connect.assert_any_call(
            '/%s/unfollow/{id}' % dr_basic_path,
            controller='ckanext.datarequests.controllers.ui_controller:DataRequestsUI',
            action='unfollow', conditions={'method': ['POST']})

        if comments_enabled == 'True':
            mapa.connect.assert_any_call(
                'comment_datarequest', '/%s/comment/{id}' % dr_basic_path,
                controller='ckanext.datarequests.controllers.ui_controller:DataRequestsUI',
                action='comment', conditions={'method': ['GET', 'POST']}, ckan_icon='comment')

            mapa.connect.assert_any_call(
                '/%s/comment/{datarequest_id}/delete/{comment_id}' % dr_basic_path,
                controller='ckanext.datarequests.controllers.ui_controller:DataRequestsUI',
                action='delete_comment', conditions={'method': ['GET', 'POST']})
Exemplo n.º 9
0
    def test_before_map(self, comments_enabled):

        urls_set = 12
        mapa_calls = urls_set if comments_enabled == "True" else urls_set - 2

        # Configure config and get instance
        plugin.config.get.return_value = comments_enabled
        self.plg_instance = plugin.DataRequestsPlugin()

        mock_icon = "question-circle"
        # get_question_icon_patch = patch(
        #     "ckanext.datarequests.plugin.get_question_icon", return_value=mock_icon
        # )
        # get_question_icon_patch.start()
        # self.addCleanup(get_question_icon_patch.stop)

        # Test
        mapa = MagicMock()
        dr_basic_path = "datarequest"
        self.plg_instance.before_map(mapa)

        self.assertEquals(mapa_calls, mapa.connect.call_count)
        mapa.connect.assert_any_call(
            "datarequests_index",
            f"/{dr_basic_path}",
            controller="datarequests",
            action="index",
            conditions=dict(method=["GET"]),
        )

        mapa.connect.assert_any_call(
            f"/{dr_basic_path}/new",
            controller="datarequests",
            action="new",
            conditions=dict(method=["GET", "POST"]),
        )

        mapa.connect.assert_any_call(
            "show_datarequest",
            f"/{dr_basic_path}/{{id}}",
            controller="datarequests",
            action="show",
            conditions=dict(method=["GET"]),
            ckan_icon=mock_icon,
        )

        mapa.connect.assert_any_call(
            f"/{dr_basic_path}/edit/{{id}}",
            controller="datarequests",
            action="update",
            conditions=dict(method=["GET", "POST"]),
        )

        mapa.connect.assert_any_call(
            f"/{dr_basic_path}/delete/{{id}}",
            controller="datarequests",
            action="delete",
            conditions=dict(method=["POST"]),
        )

        mapa.connect.assert_any_call(
            f"/{dr_basic_path}/close/{{id}}",
            controller="datarequests",
            action="close",
            conditions=dict(method=["GET", "POST"]),
        )

        mapa.connect.assert_any_call(
            "organization_datarequests",
            f"/organization/{dr_basic_path}/{{id}}",
            controller="datarequests",
            action="organization_datarequests",
            conditions=dict(method=["GET"]),
            ckan_icon=mock_icon,
        )

        mapa.connect.assert_any_call(
            "user_datarequests",
            f"/user/{dr_basic_path}/{{id}}",
            controller="datarequests",
            action="user_datarequests",
            conditions=dict(method=["GET"]),
            ckan_icon=mock_icon,
        )

        mapa.connect.assert_any_call(
            "user_datarequests",
            f"/user/{dr_basic_path}/{{id}}",
            controller="datarequests",
            action="user_datarequests",
            conditions=dict(method=["GET"]),
            ckan_icon=mock_icon,
        )

        mapa.connect(
            f"/{dr_basic_path}/follow/{{id}}",
            controller="datarequests",
            action="follow",
            conditions=dict(method=["POST"]),
        )

        mapa.connect(
            f"/{dr_basic_path}/unfollow/{{id}}",
            controller="datarequests",
            action="unfollow",
            conditions=dict(method=["POST"]),
        )

        if comments_enabled == "True":
            mapa.connect.assert_any_call(
                "comment_datarequest",
                f"/{dr_basic_path}/comment/{{id}}",
                controller="datarequests",
                action="comment",
                conditions=dict(method=["GET", "POST"]),
                ckan_icon="comment",
            )

            mapa.connect.assert_any_call(
                f"/{dr_basic_path}/comment/{{datarequest_id}}/delete/{{comment_id}}",
                controller="datarequests",
                action="delete_comment",
                conditions=dict(method=["GET", "POST"]),
            )
Exemplo n.º 10
0
    def test_before_map(self, comments_enabled):

        urls_set = 10
        mapa_calls = urls_set if comments_enabled == 'True' else urls_set - 2

        # Configure config and get instance
        plugin.config.get.return_value = comments_enabled
        self.plg_instance = plugin.DataRequestsPlugin()

        # Test
        mapa = MagicMock()
        dr_basic_path = 'datarequest'
        self.plg_instance.before_map(mapa)

        self.assertEquals(mapa_calls, mapa.connect.call_count)
        mapa.connect.assert_any_call(
            'datarequests_index',
            "/%s" % dr_basic_path,
            controller=
            'ckanext.datarequests.controllers.ui_controller:DataRequestsUI',
            action='index',
            conditions=dict(method=['GET']))

        mapa.connect.assert_any_call(
            '/%s/new' % dr_basic_path,
            controller=
            'ckanext.datarequests.controllers.ui_controller:DataRequestsUI',
            action='new',
            conditions=dict(method=['GET', 'POST']))

        mapa.connect.assert_any_call(
            'datarequest_show',
            '/%s/{id}' % dr_basic_path,
            controller=
            'ckanext.datarequests.controllers.ui_controller:DataRequestsUI',
            action='show',
            conditions=dict(method=['GET']),
            ckan_icon='question-sign')

        mapa.connect.assert_any_call(
            '/%s/edit/{id}' % dr_basic_path,
            controller=
            'ckanext.datarequests.controllers.ui_controller:DataRequestsUI',
            action='update',
            conditions=dict(method=['GET', 'POST']))

        mapa.connect.assert_any_call(
            '/%s/delete/{id}' % dr_basic_path,
            controller=
            'ckanext.datarequests.controllers.ui_controller:DataRequestsUI',
            action='delete',
            conditions=dict(method=['POST']))

        mapa.connect.assert_any_call(
            '/%s/close/{id}' % dr_basic_path,
            controller=
            'ckanext.datarequests.controllers.ui_controller:DataRequestsUI',
            action='close',
            conditions=dict(method=['GET', 'POST']))

        mapa.connect.assert_any_call(
            'organization_datarequests',
            '/organization/%s/{id}' % dr_basic_path,
            controller=
            'ckanext.datarequests.controllers.ui_controller:DataRequestsUI',
            action='organization_datarequests',
            conditions=dict(method=['GET']),
            ckan_icon='question-sign')

        mapa.connect.assert_any_call(
            'user_datarequests',
            '/user/%s/{id}' % dr_basic_path,
            controller=
            'ckanext.datarequests.controllers.ui_controller:DataRequestsUI',
            action='user_datarequests',
            conditions=dict(method=['GET']),
            ckan_icon='question-sign')

        if comments_enabled == 'True':
            mapa.connect.assert_any_call(
                'datarequest_comment',
                '/%s/comment/{id}' % dr_basic_path,
                controller=
                'ckanext.datarequests.controllers.ui_controller:DataRequestsUI',
                action='comment',
                conditions=dict(method=['GET', 'POST']),
                ckan_icon='comment')

            mapa.connect.assert_any_call(
                '/%s/comment/{datarequest_id}/delete/{comment_id}' %
                dr_basic_path,
                controller=
                'ckanext.datarequests.controllers.ui_controller:DataRequestsUI',
                action='delete_comment',
                conditions=dict(method=['GET', 'POST']))