示例#1
0
 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
示例#2
0
 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)
示例#3
0
 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
示例#4
0
    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
                ]
示例#5
0
    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
                ]
示例#6
0
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]
示例#7
0
 def test_passes_the_type_check(self):
     assert User.is_type(self.data)
示例#8
0
 def example_object(cls):
     return User(json.loads(cls.resource_data()), client=cls.test_client)
示例#9
0
 def owner(self):
     return User.find_user_by_username(self.owner_name, client=self.client)