def get(self, *args, **kwargs): """ Augmented `get()` method: - Adds support for `fork_name` to allow to query the github org & repo using a single argument """ fork_name = kwargs.pop('fork_name', None) if fork_name is not None: kwargs['github_organization_name'], kwargs['github_repository_name'] = fork_name2tuple(fork_name) return super().get(*args, **kwargs)
def set_fork_name(self, fork_name, commit=True): """ Set the organization and repository based on the GitHub fork name By default, save the instance object - pass `commit=False` to not save it """ self.log('info', 'Setting fork name for instance {}: {}'.format(self, fork_name)) fork_org, fork_repo = github.fork_name2tuple(fork_name) if self.github_organization_name == fork_org \ and self.github_repository_name == fork_repo: return self.github_organization_name = fork_org self.github_repository_name = fork_repo if commit: self.save()
def test_fork_name2tuple(self): """ Conversion of `fork_name` to `fork_tuple` """ self.assertEqual(github.fork_name2tuple('open-craft/edx-platform'), ['open-craft', 'edx-platform'])
def test_fork_name2tuple(self): """ Conversion of `fork_name` to `fork_tuple` """ self.assertEqual(github.fork_name2tuple("open-craft/edx-platform"), ["open-craft", "edx-platform"])