code: def addAttachment(self, filepath):
          
  
          proj_id = self.contextId
  
          fa = self.rtc_obj.getFiledAgainst(self.filedAgainst,
                                            projectarea_id=proj_id)
          fa_id = fa.url.split("/")[-1]
  
          headers = copy.deepcopy(self.rtc_obj.headers)
          if headers.__contains__("Content-Type"):
              headers.__delitem__("Content-Type")
  
          filename = os.path.basename(filepath)
          fileh = open(filepath, "rb")
          files = {"attach": (filename, fileh, "application/octet-stream")}
  
          params = {"projectId": proj_id,
                    "multiple": "true",
                    "category": fa_id}
          req_url = "".join([self.rtc_obj.url,
                             "/service/com.ibm.team.workitem.service.",
                             "internal.rest.IAttachmentRestService/"])
          resp = self.post(req_url,
                           verify=False,
                           headers=headers,
                           proxies=self.rtc_obj.proxies,
                           params=params,
                           files=files)
          raw_data = xmltodict.parse(resp.content)
          json_body = json.loads(raw_data["html"]["body"]["textarea"])
          attachment_info = json_body["files"][0]
          return self._add_attachment_link(attachment_info)
docs: Upload attachment to a workitem
  
          :param filepath: the attachment file path
          :return: the :class:`rtcclient.models.Attachment` object
          :rtype: rtcclient.models.Attachment