def test_post_result(mock_urlopen: MagicMock, helpers: Helpers) -> None: with helpers.nixpkgs() as nixpkgs: os.environ["PR"] = "1" os.environ["NIX_PATH"] = f"nixpkgs={nixpkgs.path}" os.environ["GITHUB_TOKEN"] = "foo" mock_urlopen.side_effect = [mock_open(read_data="{}")()] report = nixpkgs.path.joinpath("..", "report.md") with open(report, "w") as f: f.write("") main("nixpkgs-review", ["post-result"])
def test_pr_command_borg_eval(self, mock_run: MagicMock, mock_urlopen: MagicMock) -> None: effects = Mock(borg_eval_cmds() + build_cmds) mock_run.side_effect = effects mock_urlopen.side_effect = effects main( "nixpkgs-review", [ "pr", "--build-args", '--builders "ssh://[email protected] aarch64-linux"', "37200", ], )
def test_wip_command(self, mock_popen: MagicMock, mock_run: MagicMock) -> None: effects = Mock(self, wip_command_cmds() + build_cmds) mock_run.side_effect = effects popen_instance = mock_popen.return_value popen_instance.__enter__.side_effect = effects main( "nixpkgs-review", [ "wip", "--build-args", '--builders "ssh://[email protected] aarch64-linux"', ], )
def test_pr_ofborg_eval(mock_urlopen: MagicMock, helpers: Helpers) -> None: with helpers.nixpkgs() as nixpkgs: with open(nixpkgs.path.joinpath("pkg1.txt"), "w") as f: f.write("foo") subprocess.run(["git", "add", "."]) subprocess.run(["git", "commit", "-m", "example-change"]) subprocess.run(["git", "checkout", "-b", "pull/37200/head"]) subprocess.run(["git", "push", str(nixpkgs.remote), "pull/37200/head"]) mock_urlopen.side_effect = [ mock_open( read_data=helpers.read_asset("github-pull-37200.json"))(), mock_open(read_data=helpers.read_asset( "github-pull-37200-statuses.json"))(), helpers.read_asset("gist-37200.txt").encode("utf-8").split(b"\n"), ] path = main( "nixpkgs-review", [ "pr", "--remote", str(nixpkgs.remote), "--run", "exit 0", "37200", ], ) report = helpers.load_report(path) assert report["built"] == ["pkg1"]
def test_wip_command(helpers: Helpers) -> None: with helpers.nixpkgs() as nixpkgs: with open(nixpkgs.path.joinpath("pkg1.txt"), "w") as f: f.write("foo") path = main( "nixpkgs-review", ["wip", "--remote", str(nixpkgs.remote), "--run", "exit 0"], ) report = helpers.load_report(path) assert report["built"] == ["pkg1"]
def test_post_result(self, mock_run: MagicMock, mock_urlopen: MagicMock) -> None: directory = Path(self.directory.name) nix_instantiate = [( ["nix-instantiate", "--find-file", "nixpkgs"], MockCompletedProcess(stdout=str(directory.joinpath("nixpkgs"))), )] effects = Mock(nix_instantiate + dummy_api_response()) mock_urlopen.side_effect = effects mock_run.side_effect = effects report = os.path.join(self.directory.name, "report.md") with open(report, "w") as f: f.write("") print(os.environ["GITHUB_TOKEN"]) main( "nixpkgs-review", ["post-result"], )
def test_rev_command(helpers: Helpers) -> None: with helpers.nixpkgs() as nixpkgs: with open(nixpkgs.path.joinpath("pkg1.txt"), "w") as f: f.write("foo") subprocess.run(["git", "add", "."]) subprocess.run(["git", "commit", "-m", "example-change"]) path = main( "nixpkgs-review", [ "rev", "HEAD", "--remote", str(nixpkgs.remote), "--run", "exit 0" ], ) report = helpers.load_report(path) assert report["built"] == ["pkg1"]
def test_pr_local_eval(helpers: Helpers) -> None: with helpers.nixpkgs() as nixpkgs: with open(nixpkgs.path.joinpath("pkg1.txt"), "w") as f: f.write("foo") subprocess.run(["git", "add", "."]) subprocess.run(["git", "commit", "-m", "example-change"]) subprocess.run(["git", "checkout", "-b", "pull/1/head"]) subprocess.run(["git", "push", str(nixpkgs.remote), "pull/1/head"]) path = main( "nixpkgs-review", [ "pr", "--remote", str(nixpkgs.remote), "--run", "exit 0", "1", ], ) report = helpers.load_report(path) assert report["built"] == ["pkg1"]
def test_approve(self, mock_urlopen: MagicMock) -> None: mock_urlopen.side_effect = Mock(dummy_api_response()) main("nixpkgs-review", ["approve"])
def test_approve(mock_urlopen: MagicMock, helpers: Helpers) -> None: with helpers.save_environ(): os.environ["PR"] = "1" os.environ["GITHUB_TOKEN"] = "foo" mock_urlopen.side_effect = [mock_open(read_data="{}")()] main("nixpkgs-review", ["approve"])