Python 使用magicmock测试githubapi

Python 使用magicmock测试githubapi,python,mocking,Python,Mocking,我基本上是使用magic mock和context manager来测试我的代码,我成功地模拟了我的get_URL函数,但是我在模拟我的access_all_repos_pr():函数时遇到了问题,它包含了比7天更新的pr数据,有人能帮我模拟这些数据吗 以下是我的get_URL()的测试代码: 我想模拟函数access\u all\u repo\u pr的响应,有谁能帮助我准确地创建access\u all\u repo\u pr函数的模拟。我是否需要以某种方式重构代码?(对python来说相对

我基本上是使用magic mock和context manager来测试我的代码,我成功地模拟了我的get_URL函数,但是我在模拟我的access_all_repos_pr():函数时遇到了问题,它包含了比7天更新的pr数据,有人能帮我模拟这些数据吗

以下是我的get_URL()的测试代码:

我想模拟函数access\u all\u repo\u pr的响应,有谁能帮助我准确地创建access\u all\u repo\u pr函数的模拟。我是否需要以某种方式重构代码?(对python来说相对较新)

我尝试的是:

class Test_GithubApi_newer_than_7_days(unittest.TestCase):
    def test_access_all_repo_pr_returns_valid_response(self):
        with ExitStack() as stack:

            mock_access_all_repo_pr = stack.enter_context(
                patch("GithubAPIpackage.GithubAPI._fetch_url")
            )
            fake_data = {"current_user_repositories_url": "http://myfakeurl.com"}
            mock_access_all_repo_pr.return_value = fake_data


            result = access_all_repo_pr()

            self.assertEqual(result, "")

由于您使用的是发动机罩下的
请求
,我可以建议您在测试中使用吗?我不想回避这个问题,但根据我的经验,我发现在编写处理
请求的
模块的测试时,这是一条阻力最小的路径。测试结果更干净、更安全、更易于编写。

您解决了这个问题吗?我还想测试基于pygithub的AWS lambda函数。我想知道用什么库来模拟GithubAPI for python。你从哪里知道magicmock的?效果好吗?
class Test_GithubApi_newer_than_7_days(unittest.TestCase):
    def test_access_all_repo_pr_returns_valid_response(self):
        with ExitStack() as stack:

            mock_access_all_repo_pr = stack.enter_context(
                patch("GithubAPIpackage.GithubAPI._fetch_url")
            )
            fake_data = {"current_user_repositories_url": "http://myfakeurl.com"}
            mock_access_all_repo_pr.return_value = fake_data


            result = access_all_repo_pr()

            self.assertEqual(result, "")