def __init__(self, name=None, github_owner=None, pypi_owner=None, path=None): self.localmodule = LocalModule(name=name) self.name = self.localmodule.name self.localrepo = LocalRepo(name=self.name, path=path) self.path = self.localrepo.path self.github = GitHub(name=self.name, owner=github_owner) self.pypi = PyPI(name=self.name, owner=pypi_owner)
class Packager(Recycle, _SharedAPI, NetworkDiagram, _PackagerMarkdown, _PackagerGitHub, _PackagerFiles, _PackagerMetadata, _PackagerPypi, _PackagerWorkflow, _PackagerRelations): """ Uses APIs to manage 'general' package. Contains methods that require more than one API as well as methods specific for ManderaGeneral. """ author = 'Rickard "Mandera" Abraham' email = "*****@*****.**" license = "mit" python = "3.8", "3.9" # Only supports basic definition with tuple of major.minor os = "windows", "ubuntu" # , "macos" git_exclude_lines = ".idea", "build", "dist", "*.egg-info", "__pycache__", ".git", "test/tests", "PKG-INFO", "setup.cfg" _recycle_keys = LocalModule._recycle_keys _recycle_keys["path"] = str summary_packagers = [] def __init__(self, name=None, github_owner=None, pypi_owner=None, path=None): self.localmodule = LocalModule(name=name) self.name = self.localmodule.name self.localrepo = LocalRepo(name=self.name, path=path) self.path = self.localrepo.path self.github = GitHub(name=self.name, owner=github_owner) self.pypi = PyPI(name=self.name, owner=pypi_owner) # Quick fix, should probably put download in a workflow step instead # Yeah because this prevents us from creating a new package with create_blank # if (self.localmodule.is_general() or self.name in ("Mandera", ".github")) and not self.localrepo.exists(): # self.github.download(path=self.path.get_parent()) @property def simple_name(self): return self.name.replace("general", "") def spawn_children(self): """ :param generalpackager.Packager self: """ for packager in self.get_dependants(): if packager.is_general() and packager.localrepo.enabled: packager.set_parent(parent=self) def spawn_parents(self): """ :param generalpackager.Packager self: """ for packager in self.get_dependencies(): if packager.is_general() and packager.localrepo.enabled: self.set_parent(parent=packager) def exists(self): """ Just check GitHub for now. """ return self.github.exists() def __repr__(self): return f"<Packager: {self.name}>"
def test_get_description(self): github = GitHub("generalpackager") self.assertEqual(True, len(github.get_description()) > 5)
def test_get_website(self): github = GitHub("generalpackager") self.assertEqual(True, "pypi" in github.get_website())
def test_get_owners_packages(self): github = GitHub() self.assertEqual(set(), {"generallibrary", "generalfile", "generalvector", "generalpackager"}.difference(github.get_owners_packages())) github = GitHub(owner="pandas-dev") self.assertEqual(True, "pandas" in github.get_owners_packages())
def test_topics(self): github = GitHub("generalpackager") self.assertTrue(github.get_topics())
def test_exists(self): self.assertEqual(True, GitHub("generalpackager").exists())