              "The `actions` argument must be provided "
              "when calling `.as_view()` on a ViewSet. "
              "For example `.as_view({'get': 'list'})`")
  
      def test_args_kwargs_request_action_map_on_self(self):
          """
          Test a view only has args, kwargs, request, action_map
          once `as_view` has been called.
 
</s> remove                 pass
 </s> add                 raise NotImplementedError </s> remove                 pass
 </s> add                 raise NotImplementedError </s> remove         return super(ExampleSerializer, self).retrieve(self, request)
 </s> add         raise NotImplementedError
    def test_initialize_view_set_with_both_name_and_suffix(self):
        with pytest.raises(TypeError) as excinfo:
            BasicViewSet.as_view(name='', suffix='', actions={
                'get': 'list',
            })

        assert str(excinfo.value) == (
            "BasicViewSet() received both `name` and `suffix`, "
            "which are mutually exclusive arguments.")

              "The `actions` argument must be provided "
              "when calling `.as_view()` on a ViewSet. "
              "For example `.as_view({'get': 'list'})`")
  
    def test_initialize_view_set_with_both_name_and_suffix(self):
        with pytest.raises(TypeError) as excinfo:
            BasicViewSet.as_view(name='', suffix='', actions={
                'get': 'list',
            })

        assert str(excinfo.value) == (
            "BasicViewSet() received both `name` and `suffix`, "
            "which are mutually exclusive arguments.")

      def test_args_kwargs_request_action_map_on_self(self):
          """
          Test a view only has args, kwargs, request, action_map
          once `as_view` has been called.
keep keep keep add keep keep keep keep
 Improvements to ViewSet extra actions (#5605)

* View suffix already set by initializer

* Add 'name' and 'description' attributes to ViewSet

ViewSets may now provide their `name` and `description` attributes
directly, instead of relying on view introspection to derive them.
These attributes may also be provided with the view's initkwargs.

The ViewSet `name` and `suffix` initkwargs are mutually exclusive.

The `action` decorator now provides the `name` and `description` to
the view's initkwargs. By default, these values are derived from the
method name and its docstring. The `name` may be overridden by providing
it as an argument to the decorator.

The `get_view_name` and `get_view_description` hooks now provide the
view instance to the handler, instead of the view class. The default
implementations of these handlers now respect the `name`/`description`.

* Add 'extra actions' to ViewSet & browsable APIs

* Update simple router tests

Removed old test logic around link/action decorators from `v2.3`. Also
simplified the test by making the results explicit instead of computed.

* Add method mapping to ViewSet actions

* Document extra action method mapping 
tests/test_viewsets.py