def test_response_is_a_user(self): httpretty.register_uri(httpretty.GET, self.resource_url(), content_type='application/json', body=self.resource_data(), status=200) response = User.find_user_by_username(username=self.username, client=self.test_client) assert isinstance(response, User) assert 'evzijst' == response.username assert 'Erik van Zijst' == response.display_name
def setup_class(cls): cls.with_user = \ cls.builder.add_user_by_username( cls.user) cls.with_users = \ cls.builder.add_users_from_usernames( cls.users) cls.user_obj = User( json.loads(cls.resource_data('User')), client=cls.test_client) cls.with_user_obj = cls.builder.add_user(cls.user_obj)
def test_response_is_a_user(self): url = (Bitbucket(client=self.test_client).data.get('_links', {}).get( 'userForMyself', {}).get('href')) httpretty.register_uri(httpretty.GET, url, content_type='application/json', body=self.resource_data(), status=200) response = User.find_current_user(client=self.test_client) assert isinstance(response, User) assert 'evzijst' == response.username assert 'Erik van Zijst' == response.display_name
def list(self, user, _long=False): try: user = User.find_user_by_username(user) except HTTPError as err: raise ResourceNotFoundError( "User {} does not exists.".format(user)) from err repositories = user.repositories() if not _long: yield "{}" repositories = list(repositories) yield ("Total repositories: {}".format(len(repositories)), ) yield from columnize([ "/".join([user.username, repo.name]) for repo in repositories ]) else: yield "{}\t{}\t{}\t{}\t{}\t{}\t{}\t{}\t{}\t{:12}\t{}" yield [ 'Status', 'Commits', 'Reqs', 'Issues', 'Forks', 'Coders', 'Watch', 'Likes', 'Lang', 'Modif', 'Name' ] for repo in repositories: # if repo.updated_at.year < datetime.now().year: # date_fmt = "%b %d %Y" # else: # date_fmt = "%b %d %H:%M" status = ''.join([ 'F' if getattr(repo, 'parent', None) else ' ', # is a fork? 'P' if repo.is_private else ' ', # is private? ]) yield [ # status status, # stats str(len(list(repo.commits()))), # number of commits str(len(list(repo.pullrequests()))), # number of pulls str('N.A.'), # number of issues str(len(list(repo.forks()))), # number of forks str('N.A.'), # number of contributors str(len(list(repo.watchers()))), # number of subscribers str('N.A.'), # number of ♥ # info repo.language or '?', # language repo.updated_on, # date '/'.join([user.username, repo.name]), # name ]
def list(self, user, _long=False): try: user = User.find_user_by_username(user) except HTTPError as err: raise ResourceNotFoundError("User {} does not exists.".format(user)) from err repositories = user.repositories() if not _long: yield "{}" repositories = list(repositories) yield ("Total repositories: {}".format(len(repositories)),) yield from columnize(["/".join([user.username, repo.name]) for repo in repositories]) else: yield "{}\t{}\t{}\t{}\t{}\t{}\t{}\t{}\t{}\t{:12}\t{}" yield ['Status', 'Commits', 'Reqs', 'Issues', 'Forks', 'Coders', 'Watch', 'Likes', 'Lang', 'Modif', 'Name'] for repo in repositories: # if repo.updated_at.year < datetime.now().year: # date_fmt = "%b %d %Y" # else: # date_fmt = "%b %d %H:%M" status = ''.join([ 'F' if getattr(repo, 'parent', None) else ' ', # is a fork? 'P' if repo.is_private else ' ', # is private? ]) yield [ # status status, # stats str(len(list(repo.commits()))), # number of commits str(len(list(repo.pullrequests()))), # number of pulls str('N.A.'), # number of issues str(len(list(repo.forks()))), # number of forks str('N.A.'), # number of contributors str(len(list(repo.watchers()))), # number of subscribers str('N.A.'), # number of ♥ # info repo.language or '?', # language repo.updated_on, # date '/'.join([user.username, repo.name]), # name ]
def process_user(username, url): table_name = "bitbucket_user" user = None if username not in USER: try: user = User.find_user_by_username(username=username, client=bitbucket_client) logger.debug("BitBucket user - {}".format(user)) except HTTPError: logger.debug("No BitBucket user - {}".format(username)) if user: user_info = vars(get_user_info(user)) r = requests.post( f'https://{url}/{table_name}', json={ "data": json.dumps(user_info, sort_keys=True, default=str) }, headers={"AUTH_TOKEN": get_config("azimu_api.auth_token")}) if r.status_code != 200: raise Exception(r.status_code) USER[username] = r.json() return r.json() else: return USER[username]
def test_passes_the_type_check(self): assert User.is_type(self.data)
def example_object(cls): return User(json.loads(cls.resource_data()), client=cls.test_client)
def owner(self): return User.find_user_by_username(self.owner_name, client=self.client)