def test_nexts(self): self.response('user', _iter=True) self.get(self.api_url) self.conf = {'params': None, 'headers': {}} self.j = GitHubIterator(self.num, self.api_url, github3.users.User, self.g) expect(self.j.next().login) == next(self.i).login self.mock_assertions()
def test_count_reaches_0(self): self.response('user', _iter=True) self.get(self.api_url) self.conf = {'params': {'per_page': 1}, 'headers': {}} self.i = GitHubIterator(1, self.api_url, github3.users.User, self.g) assert isinstance(next(self.i), github3.users.User) self.assertRaises(StopIteration, next, self.i) self.mock_assertions()
def test_count_reaches_0(self): self.response('user', _iter=True) self.get(self.api_url) self.conf = {'params': None, 'headers': {}} self.i = GitHubIterator(1, self.api_url, github3.users.User, self.g) expect(next(self.i)).isinstance(github3.users.User) with expect.raises(StopIteration): next(self.i) self.mock_assertions()
def test_headers(self): i = GitHubIterator(self.i.count, self.i.url, self.i.cls, self.g, etag='"foobarbogus"') expect(i.headers.get('If-None-Match')) == '"foobarbogus"'
def test_nexts(self): self.response('user', _iter=True) self.get(self.api_url) self.conf = {'params': {'per_page': 10}, 'headers': {}} self.j = GitHubIterator(self.num, self.api_url, github3.users.User, self.g) assert self.j.next().login == next(self.i).login self.mock_assertions()
def test_stores_etag_properly(self): session, url, count, cls = ( self.session, self.url, self.count, self.cls, ) i = GitHubIterator(count, url, cls, session, etag='"foobarbogus"') assert i.headers != {} assert i.headers.get("If-None-Match") == '"foobarbogus"'
def iter_branches(self, number=-1, etag=None, protected=False): url = self._build_url('branches', base_url=self._api) headers = {'Accept': 'application/vnd.github.loki-preview+json'} return GitHubIterator(int(number), url, github3.repos.branch.Branch, self, etag=etag, headers=headers, params={'protected': int(protected)})
def _iter(self, count, url, cls, params=None, etag=None): """Generic iterator for this project. :param int count: How many items to return. :param int url: First URL to start with :param class cls: cls to return an object of :param params dict: (optional) Parameters for the request :param str etag: (optional), ETag from the last call """ from github3.structs import GitHubIterator return GitHubIterator(count, url, cls, self, params, etag)
def test_stores_headers_properly(self): headers = {"Accept": "foo"} session, url, count, cls = ( self.session, self.url, self.count, self.cls, ) i = GitHubIterator(count, url, cls, session, headers=headers) assert i.headers != {} assert i.headers.get("Accept") == "foo"
class TestGitHubIterator(BaseCase): def setUp(self): super(TestGitHubIterator, self).setUp() self.api_url = 'https://api.github.com/users' self.num = 10 self.i = GitHubIterator(self.num, self.api_url, github3.users.User, self.g) def test_headers(self): i = GitHubIterator(self.i.count, self.i.url, self.i.cls, self.g, etag='"foobarbogus"') expect(i.headers.get('If-None-Match')) == '"foobarbogus"' def test_repr(self): expect(repr(self.i)) == '<GitHubIterator [{0}, /users]>'.format( self.num) def test_nexts(self): self.response('user', _iter=True) self.get(self.api_url) self.conf = {'params': None, 'headers': {}} self.j = GitHubIterator(self.num, self.api_url, github3.users.User, self.g) expect(self.j.next().login) == next(self.i).login self.mock_assertions() def test_catch_etags(self): self.response('user', _iter=True, etag='"foobarbogus"') self.get(self.api_url) self.conf = {'params': None, 'headers': {}} expect(next(self.i)).isinstance(github3.users.User) expect(self.i.etag) == '"foobarbogus"' self.mock_assertions() def test_catch_None(self): self.response('', 200) self.get(self.api_url) self.conf = {'params': None, 'headers': {}} with expect.raises(StopIteration): next(self.i) self.mock_assertions() def test_entire_while_loop(self): self.response('user', _iter=True) self.get(self.api_url) self.conf = {'params': None, 'headers': {}} expect(next(self.i)).isinstance(github3.users.User) with expect.raises(StopIteration): next(self.i) self.mock_assertions() def test_count_reaches_0(self): self.response('user', _iter=True) self.get(self.api_url) self.conf = {'params': None, 'headers': {}} self.i = GitHubIterator(1, self.api_url, github3.users.User, self.g) expect(next(self.i)).isinstance(github3.users.User) with expect.raises(StopIteration): next(self.i) self.mock_assertions() def test_refresh(self): with patch.object(GitHubIterator, '__iter__') as i: self.i.refresh() i.__iter__.assert_called() i.reset_mock() self.i.refresh(True) i.__iter__.assert_called()
class TestGitHubIterator(BaseCase): def setUp(self): super(TestGitHubIterator, self).setUp() self.api_url = 'https://api.github.com/users' self.num = 10 self.i = GitHubIterator(self.num, self.api_url, github3.users.User, self.g) def test_headers(self): i = GitHubIterator(self.i.count, self.i.url, self.i.cls, self.g, etag='"foobarbogus"') assert i.headers.get('If-None-Match') == '"foobarbogus"' def test_repr(self): assert repr(self.i) == '<GitHubIterator [{0}, /users]>'.format( self.num) def test_nexts(self): self.response('user', _iter=True) self.get(self.api_url) self.conf = {'params': {'per_page': 10}, 'headers': {}} self.j = GitHubIterator(self.num, self.api_url, github3.users.User, self.g) assert self.j.next().login == next(self.i).login self.mock_assertions() def test_catch_etags(self): self.response('user', _iter=True, etag='"foobarbogus"') self.get(self.api_url) self.conf = {'params': {'per_page': 10}, 'headers': {}} assert isinstance(next(self.i), github3.users.User) assert self.i.etag == '"foobarbogus"' self.mock_assertions() def test_catch_None(self): self.response('', 200) self.get(self.api_url) self.conf = {'params': {'per_page': 10}, 'headers': {}} self.assertRaises(StopIteration, next, self.i) self.mock_assertions() def test_entire_while_loop(self): self.response('user', _iter=True) self.get(self.api_url) self.conf = {'params': {'per_page': 10}, 'headers': {}} assert isinstance(next(self.i), github3.users.User) self.assertRaises(StopIteration, next, self.i) self.mock_assertions() def test_count_reaches_0(self): self.response('user', _iter=True) self.get(self.api_url) self.conf = {'params': {'per_page': 1}, 'headers': {}} self.i = GitHubIterator(1, self.api_url, github3.users.User, self.g) assert isinstance(next(self.i), github3.users.User) self.assertRaises(StopIteration, next, self.i) self.mock_assertions() def test_refresh(self): with patch.object(GitHubIterator, '__iter__') as i: self.i.refresh() i.__iter__.assert_called() i.reset_mock() self.i.refresh(True) i.__iter__.assert_called()
def test_stores_headers_properly(self): headers = {'Accept': 'foo'} session, url, count, cls = self.session, self.url, self.count, self.cls i = GitHubIterator(count, url, cls, session, headers=headers) assert i.headers != {} assert i.headers.get('Accept') == 'foo'
def setUp(self): super(TestGitHubIterator, self).setUp() self.api_url = 'https://api.github.com/users' self.num = 10 self.i = GitHubIterator(self.num, self.api_url, github3.users.User, self.g)
class TestGitHubIterator(BaseCase): def setUp(self): super(TestGitHubIterator, self).setUp() self.api_url = 'https://api.github.com/users' self.num = 10 self.i = GitHubIterator(self.num, self.api_url, github3.users.User, self.g) def test_headers(self): i = GitHubIterator(self.i.count, self.i.url, self.i.cls, self.g, etag='"foobarbogus"') expect(i.headers.get('If-None-Match')) == '"foobarbogus"' def test_repr(self): expect(repr(self.i)) == '<GitHubIterator [{0}, /users]>'.format( self.num) def test_nexts(self): self.response('user', _iter=True) self.get(self.api_url) self.conf = {'params': None, 'headers': {}} self.j = GitHubIterator(self.num, self.api_url, github3.users.User, self.g) expect(self.j.next().login) == next(self.i).login self.mock_assertions() def test_catch_etags(self): self.response('user', _iter=True, etag='"foobarbogus"') self.get(self.api_url) self.conf = {'params': None, 'headers': {}} expect(next(self.i)).isinstance(github3.users.User) expect(self.i.etag) == '"foobarbogus"' self.mock_assertions() def test_catch_None(self): self.response('', 200) self.get(self.api_url) self.conf = {'params': None, 'headers': {}} with expect.raises(StopIteration): next(self.i) self.mock_assertions() def test_entire_while_loop(self): self.response('user', _iter=True) self.get(self.api_url) self.conf = {'params': None, 'headers': {}} expect(next(self.i)).isinstance(github3.users.User) with expect.raises(StopIteration): next(self.i) self.mock_assertions() def test_count_reaches_0(self): self.response('user', _iter=True) self.get(self.api_url) self.conf = {'params': None, 'headers': {}} self.i = GitHubIterator(1, self.api_url, github3.users.User, self.g) expect(next(self.i)).isinstance(github3.users.User) with expect.raises(StopIteration): next(self.i) self.mock_assertions()