def METHOD_NAME(self):
    bk_biz = MagicMock()
    bk_biz.bk_biz_id = self.bk_biz_id
    mock_first = MagicMock()
    mock_first.first = MagicMock(return_value=bk_biz)
    qs_filter = MagicMock()
    qs_filter.only = MagicMock(return_value=mock_first)
    upload_url_return = MagicMock(
        return_value={
            "result": True,
            "data": {"url_map": {self.file_name: {"upload_url": self.upload_url, "path": self.path}}},
        }
    )
    manager = JobRepoManager()
    with patch("files.managers.job_repo.JobRepoStorage.generate_temporary_upload_url", upload_url_return):
        with patch(
            "files.managers.job_repo.JobRepoStorage.save",
            MagicMock(return_value={"result": True, "data": {"nodeInfo": {"md5": "file_md5"}}, "message": ""}),
        ):
            with patch("files.managers.job_repo.Project.objects.filter", MagicMock(return_value=qs_filter)):
                kwargs = {"project_id": 1, "username": "user_name"}
                tag = manager.save(name=self.file_name, content=self.content, shims=None, **kwargs)
                manager.storage.generate_temporary_upload_url.assert_called_once_with(
                    username="user_name", bk_biz_id=self.bk_biz_id, file_names=[self.file_name]
                )
                manager.storage.save.assert_called_once_with(self.upload_url, self.file_name, self.content)
                self.assertEqual(
                    tag,
                    {
                        "type": "job_repo",
                        "tags": {"file_path": self.path, "name": self.file_name},
                        "md5": "file_md5",
                    },
                )