def test_variants_tasks(self, sample_patch): patch = Patch(sample_patch, None) assert len(patch.variants_tasks) == len(sample_patch['variants_tasks']) for vt, svt in zip(patch.variants_tasks, sample_patch['variants_tasks']): assert vt.name == svt['name'] assert isinstance(vt.tasks, set)
def test_module_code_changes(self, sample_patch): patch = Patch(sample_patch, None) sample_code_changes = sample_patch["module_code_changes"][0] assert patch.module_code_changes[0].branch_name == sample_code_changes[ "branch_name"] assert (patch.module_code_changes[0].commit_messages == sample_code_changes["commit_messages"])
def patch_by_id(self, patch_id, params=None): """ Get a patch by patch id. :param patch_id: Id of patch to query for. :param params: Parameters to pass to endpoint. :return: Patch queried for. """ url = self._create_url('/patches/{patch_id}'.format(patch_id=patch_id)) return Patch(self._call_api(url, params).json(), self)
def patch_by_id(self, patch_id: str, params: Dict = None) -> Patch: """ Get a patch by patch id. :param patch_id: Id of patch to query for. :param params: Parameters to pass to endpoint. :return: Patch queried for. """ url = self._create_url("/patches/{patch_id}".format(patch_id=patch_id)) return Patch(self._call_api(url, params).json(), self) # type: ignore[arg-type]
def patches_by_project(self, project_id: str, params: Dict = None) -> Iterable[Patch]: """ Get a list of patches for the specified project. :param project_id: Id of project to query. :param params: parameters to pass to endpoint. :return: List of recent patches. """ url = self._create_url("/projects/{project_id}/patches".format(project_id=project_id)) patches = self._lazy_paginate_by_date(url, params) return (Patch(patch, self) for patch in patches) # type: ignore[arg-type]
def patches_by_project(self, project_id, params=None): """ Get a list of patches for the specified project. :param project_id: Id of project to query. :param params: parameters to pass to endpoint. :return: List of recent patches. """ url = self._create_url( '/projects/{project_id}/patches'.format(project_id=project_id)) patches = self._lazy_paginate_by_date(url, params) return (Patch(patch, self) for patch in patches)
def test_list_patches(monkeypatch, sample_patch, output_fmt): evg_api_mock = _create_api_mock(monkeypatch) evg_api_mock.patches_by_project.return_value = [ Patch(sample_patch, None) for _ in range(10) ] runner = CliRunner() cmd_list = ['list-patches', '--project', 'project', '--limit', '5'] if output_fmt: cmd_list = [output_fmt] + cmd_list result = runner.invoke(under_test.cli, cmd_list) assert result.exit_code == 0 assert sample_patch['patch_id'] in result.output
def test_list_patches(monkeypatch, sample_patch, output_fmt): evg_api_mock = _create_api_mock(monkeypatch) evg_api_mock.patches_by_project.return_value = [ Patch(sample_patch, None) for _ in range(10) ] runner = CliRunner() cmd_list = ["list-patches", "--project", "project", "--limit", "5"] if output_fmt: cmd_list = [output_fmt] + cmd_list result = runner.invoke(under_test.cli, cmd_list) assert result.exit_code == 0 if output_fmt == "--json": assert len(json.loads(result.output)) == 5 assert sample_patch["patch_id"] in result.output
def patches_by_user( self, user_id: str, start_at: Optional[datetime] = None, limit: Optional[int] = None ) -> Iterable[Patch]: """ Get an iterable of recent patches by the given user. :param user_id: Id of user to query. :param start_at: If specified, query starting at the given date. :param limit: If specified, limit the output per page. """ params: Dict[str, Any] = {} if start_at: params["start_at"] = start_at if limit: params["limit"] = limit url = self._create_url(f"/users/{user_id}/patches") return (Patch(patch, self) for patch in self._lazy_paginate(url, params))
def test_get_attributes(self, sample_patch): patch = Patch(sample_patch, None) assert patch.description == sample_patch['description'] assert patch.version == sample_patch['version'] assert patch.github_patch_data.pr_number == sample_patch[ 'github_patch_data']['pr_number']
def test_task_list_for_variant(self, sample_patch): patch = Patch(sample_patch, None) sample_variant = sample_patch['variants_tasks'][0] variant_name = sample_variant['name'] assert patch.task_list_for_variant(variant_name) == set( sample_variant['tasks'])
def test_get_attributes(self, sample_patch): patch = Patch(sample_patch, None) assert patch.description == sample_patch["description"] assert patch.version == sample_patch["version"] assert patch.github_patch_data.pr_number == sample_patch[ "github_patch_data"]["pr_number"]
def test_task_list_for_variant(self, sample_patch): patch = Patch(sample_patch, None) sample_variant = sample_patch["variants_tasks"][0] variant_name = sample_variant["name"] assert patch.task_list_for_variant(variant_name) == set( sample_variant["tasks"])