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])
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])
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])
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 ])
def setUp(self): self.paginator = DummyAPIPaginator(client=None, url='http://example.com') self.proxy = ProxyPaginator(self.paginator)
class ProxyPaginatorTests(TestCase): """Tests for ProxyPaginator.""" def setUp(self): self.paginator = DummyAPIPaginator(client=None, url='http://example.com') self.proxy = ProxyPaginator(self.paginator) def test_has_prev(self): """Testing ProxyPaginator.has_prev""" self.assertFalse(self.proxy.has_prev) self.paginator.prev_url = 'http://example.com/?start=1' self.assertTrue(self.proxy.has_prev) def test_has_next(self): """Testing ProxyPaginator.has_next""" self.assertFalse(self.proxy.has_next) self.paginator.next_url = 'http://example.com/?start=2' self.assertTrue(self.proxy.has_next) def test_per_page(self): """Testing ProxyPaginator.per_page""" self.paginator.per_page = 10 self.assertEqual(self.proxy.per_page, 10) def test_total_count(self): """Testing ProxyPaginator.total_count""" self.paginator.total_count = 100 self.assertEqual(self.proxy.total_count, 100) def test_prev(self): """Testing ProxyPaginator.prev""" prev_url = 'http://example.com/?page=1' self.paginator.prev_url = prev_url self.assertTrue(self.proxy.has_prev) self.assertFalse(self.proxy.has_next) data = self.proxy.prev() self.assertEqual(data, [1, 2, 3]) self.assertEqual(self.paginator.url, prev_url) def test_next(self): """Testing ProxyPaginator.next""" next_url = 'http://example.com/?page=3' self.paginator.next_url = next_url self.assertFalse(self.proxy.has_prev) self.assertTrue(self.proxy.has_next) data = self.proxy.next() self.assertEqual(data, [1, 2, 3]) self.assertEqual(self.paginator.url, next_url) 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]) def test_normalize_page_data_on_prev(self): """Testing ProxyPaginator.normalize_page_data on prev""" proxy = ProxyPaginator( self.paginator, normalize_page_data_func=lambda data: list(reversed(data))) self.paginator.prev_url = 'http://example.com/?page=1' data = proxy.prev() self.assertEqual(data, [3, 2, 1]) 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])
def setUp(self): self.paginator = DummyAPIPaginator(None, 'http://example.com') self.proxy = ProxyPaginator(self.paginator)
class ProxyPaginatorTests(TestCase): """Tests for ProxyPaginator.""" def setUp(self): self.paginator = DummyAPIPaginator(None, 'http://example.com') self.proxy = ProxyPaginator(self.paginator) def test_has_prev(self): """Testing ProxyPaginator.has_prev""" self.assertFalse(self.proxy.has_prev) self.paginator.prev_url = 'http://example.com/?start=1' self.assertTrue(self.proxy.has_prev) def test_has_next(self): """Testing ProxyPaginator.has_next""" self.assertFalse(self.proxy.has_next) self.paginator.next_url = 'http://example.com/?start=2' self.assertTrue(self.proxy.has_next) def test_per_page(self): """Testing ProxyPaginator.per_page""" self.paginator.per_page = 10 self.assertEqual(self.proxy.per_page, 10) def test_total_count(self): """Testing ProxyPaginator.total_count""" self.paginator.total_count = 100 self.assertEqual(self.proxy.total_count, 100) def test_prev(self): """Testing ProxyPaginator.prev""" prev_url = 'http://example.com/?page=1' self.paginator.prev_url = prev_url self.assertTrue(self.proxy.has_prev) self.assertFalse(self.proxy.has_next) data = self.proxy.prev() self.assertEqual(data, [1, 2, 3]) self.assertEqual(self.paginator.url, prev_url) def test_next(self): """Testing ProxyPaginator.next""" next_url = 'http://example.com/?page=3' self.paginator.next_url = next_url self.assertFalse(self.proxy.has_prev) self.assertTrue(self.proxy.has_next) data = self.proxy.next() self.assertEqual(data, [1, 2, 3]) self.assertEqual(self.paginator.url, next_url) 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]) def test_normalize_page_data_on_prev(self): """Testing ProxyPaginator.normalize_page_data on prev""" proxy = ProxyPaginator( self.paginator, normalize_page_data_func=lambda data: list(reversed(data))) self.paginator.prev_url = 'http://example.com/?page=1' data = proxy.prev() self.assertEqual(data, [3, 2, 1]) 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])