def test_project_pr_num(self, mock_get_pr_num, mock_repo): expected = 3 mock_get_pr_num.return_value = expected package = None project = Project(package) self.assertEqual(project.pr_num, expected)
def _get_project(package_slug, project_path): if package_slug is not None: package = import_module_from_modname(package_slug) return Project(package) elif project_path is not None: return Project.from_path(project_path) else: return Project.from_cwd()
def test_detect_github_username_config(mock_project_repo): expected_username = '******' # output of project.repo.config_reader().get_value(...) mock_get_value = ( mock_project_repo.return_value.config_reader.return_value.get_value) mock_get_value.return_value = expected_username project = Project(None) username = detect_github_username(project) assert expected_username == username mock_get_value.assert_called_with('github', 'user', default=ANY)
def project(self) -> Project: """Access ballet-specific project info""" if self._prj is None: return Project.from_cwd() else: if isinstance(self._prj, Project): return self._prj elif isinstance(self._prj, ModuleType): return Project(self._prj) elif isinstance(self._prj, (str, PathLike)): return Project.from_path(self._prj) else: raise ValueError('not supported')
def collect_contrib_features(project_root): """Collect contributed features for a project at project_root For a project ``foo``, walks modules within the ``foo.features.contrib`` subpackage. A single object that is an instance of ``ballet.Feature`` is imported if present in each module. The resulting ``Feature`` objects are collected. Args: project_root (str, path-like): Path to project root Returns: List[ballet.Feature]: list of Feature objects """ # TODO Project should require ModuleType project = Project(project_root) contrib = project._resolve('.features.contrib') return _collect_contrib_features(contrib)
def validate_feature_acceptance(feature, X, y, subsample=False, path=None, package=None): if package is not None: project = Project(package) elif path is not None: project = Project.from_path(path) else: project = Project.from_cwd() if subsample: X, y = subsample_data_for_validation(X, y) # build project result = project.build(X, y) # load accepter for this project Accepter = _load_class(project, 'validation.feature_accepter') accepter = Accepter(result.X_df, result.y, result.features, feature) return accepter.judge()
def test_project_version(mock_repo, commit_object): mock_repo.return_value.head.commit = commit_object project = Project(None) version = project.version assert isinstance(version, str)