code: def _fake_associatornames(self, namespace, **params):
          # pylint: disable=invalid-name
          
  
          self._validate_namespace(namespace)
  
          rc = None if params['ResultClass'] is None else \
              params['ResultClass'].classname
          ac = None if params['AssocClass'] is None else \
              params['AssocClass'].classname
          role = params['Role']
          result_role = params['ResultRole']
          obj_name = params['ObjectName']
          classname = obj_name.classname
  
          if isinstance(obj_name, CIMClassName):
              rtn_classnames = self._get_associated_classnames(classname,
                                                               namespace,
                                                               ac, rc,
                                                               result_role, role)
  
              assoc_result = [CIMClassName(classname=cn, host=self.host,
                                           namespace=namespace)
                              for cn in rtn_classnames]
  
              return self._return_assoc_tuple(assoc_result)
  
          assert isinstance(obj_name, CIMInstanceName)
          rtn_paths = self._get_associated_instancenames(obj_name,
                                                         namespace,
                                                         ac, rc,
                                                         result_role, role)
          results = [deepcopy(p) for p in rtn_paths]
  
          for iname in results:
              if iname.host is None:
                  iname.host = self.host
  
          return self._return_assoc_tuple(results)
docs: Implements a mock WBEM server responder for
          :meth:`~pywbem.WBEMConnection.AssociatorNames`