async def user_repos(self, username: str, sort: str='pushed'): cache_key = get_cache_key('user_repos', { 'username': username, 'sort': sort }) return await self.make_request( '/users/{username}/repos'.format(username=username), params={'sort': sort}, cache_key=cache_key )
async def compare(self, username: str, repo: str, base: str, head='HEAD'): cache_key = get_cache_key('compare', { 'username': username, 'repo': repo, 'base': base, 'head': head, }) return await self.make_request( '/repos/{username}/{repo}/compare/{base}...{head}'.format(**locals()), cache_key=cache_key )
async def repo_tags(self, username: str, repo: str): cache_key = get_cache_key('repo_tags', { 'username': username, 'repo': repo }) return await self.make_request( '/repos/{username}/{repo}/tags'.format( username=username, repo=repo ), cache_key=cache_key )
def test_get_cache_key(): assert get_cache_key('foo', {'bar': 42}) == get_cache_key('foo', {'bar': 42}) assert get_cache_key('foo', {}) == get_cache_key('foo', {}) assert( get_cache_key('foo', {'a': 1, 'b': 2, 'c': 3, 'd': 4}) == get_cache_key('foo', {'b': 2, 'a': 1, 'c': 3, 'd': 4}) ) assert get_cache_key('foo', {}) != get_cache_key('boo', {}) assert get_cache_key('foo', {'a': 1}) != get_cache_key('foo', {'a': 2}) assert get_cache_key('foo', {'a': 1}) != get_cache_key('foo', {'b': 1})