Esempio n. 1
0
    def test_normalize_page_data(self):
        """Testing ProxyPaginator.normalize_page_data"""
        proxy = ProxyPaginator(
            self.paginator,
            normalize_page_data_func=lambda data: list(reversed(data)))

        self.assertEqual(proxy.page_data, [3, 2, 1])
Esempio n. 2
0
    def test_normalize_page_data_on_next(self):
        """Testing ProxyPaginator.normalize_page_data on next"""
        proxy = ProxyPaginator(
            self.paginator,
            normalize_page_data_func=lambda data: list(reversed(data)))
        self.paginator.next_url = 'http://example.com/?page=3'

        data = proxy.next()

        self.assertEqual(data, [3, 2, 1])
Esempio n. 3
0
    def get_remote_repositories(self,
                                owner=None,
                                owner_type='user',
                                filter_type=None,
                                start=None,
                                per_page=None):
        """Return a list of remote repositories matching the given criteria.

        This will look up each remote repository on GitHub that the given
        owner either owns or is a member of.

        If the plan is an organization plan, then `owner` is expected to be
        an organization name, and the resulting repositories with be ones
        either owned by that organization or that the organization is a member
        of, and can be accessed by the authenticated user.

        If the plan is a public or private plan, and `owner` is the current
        user, then that user's public and private repositories or ones
        they're a member of will be returned.

        Otherwise, `owner` is assumed to be another GitHub user, and their
        accessible repositories that they own or are a member of will be
        returned.

        `owner` defaults to the linked account's username, and `plan`
        defaults to 'public'.
        """
        if owner is None and owner_type == 'user':
            owner = self.account.username

        assert owner

        url = self.get_api_url(self.account.hosting_url)
        paginator = self.client.api_get_remote_repositories(
            url, owner, owner_type, filter_type, start, per_page)

        return ProxyPaginator(
            paginator,
            normalize_page_data_func=lambda page_data: [
                RemoteRepository(self,
                                 repository_id='%s/%s' %
                                 (repo['owner']['login'], repo['name']),
                                 name=repo['name'],
                                 owner=repo['owner']['login'],
                                 scm_type='Git',
                                 path=repo['clone_url'],
                                 mirror_path=repo['mirror_url'],
                                 extra_data=repo) for repo in page_data
            ])
Esempio n. 4
0
 def setUp(self):
     self.paginator = DummyAPIPaginator(client=None,
                                        url='http://example.com')
     self.proxy = ProxyPaginator(self.paginator)
Esempio n. 5
0
 def setUp(self):
     self.paginator = DummyAPIPaginator(None, 'http://example.com')
     self.proxy = ProxyPaginator(self.paginator)