mirror of
https://github.com/status-im/PyGithub.git
synced 2026-09-02 03:41:08 +00:00
Add support to create Repository objects lazily in MainClass.
This lets users do the following without issuing an unnecessary request:
issues_of_my_repository = g.get_repo('PyGithub/PyGithub').get_issues()
Since the GithubObject layer handles laziness transparently, lazy
loading is enabled by default, and can be disabled via the `lazy`
kwarg. This does not affect any test except tests that pertain to
caching or laziness itself.
This commit is contained in:
@@ -492,3 +492,30 @@ class Repository(Framework.TestCase):
|
||||
stats = self.repo.get_stats_punch_card()
|
||||
self.assertEqual(stats.get(4, 12), 7)
|
||||
self.assertEqual(stats.get(6, 18), 2)
|
||||
|
||||
|
||||
class LazyRepository(Framework.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
Framework.TestCase.setUp(self)
|
||||
self.user = self.g.get_user()
|
||||
self.repository_name = '%s/%s' % (self.user.login, "PyGithub")
|
||||
|
||||
def getLazyRepository(self):
|
||||
return self.g.get_repo(self.repository_name, lazy=True)
|
||||
|
||||
def getEagerRepository(self):
|
||||
return self.g.get_repo(self.repository_name, lazy=False)
|
||||
|
||||
def testGetIssues(self):
|
||||
lazy_repo = self.getLazyRepository()
|
||||
issues = lazy_repo.get_issues()
|
||||
eager_repo = self.getEagerRepository()
|
||||
issues2 = eager_repo.get_issues()
|
||||
self.assertListKeyEqual(issues2, id, [x for x in issues])
|
||||
|
||||
def testOwner(self):
|
||||
lazy_repo = self.getLazyRepository()
|
||||
owner = lazy_repo.owner
|
||||
eager_repo = self.getEagerRepository()
|
||||
self.assertEqual(owner, eager_repo.owner)
|
||||
|
||||
Reference in New Issue
Block a user