Exemplo n.º 1
0
def main():
    """
    Load conf.yml
    """
    conf = load_conf("conf.yml")["backlog"]
    api = BacklogAPI(conf["space"], conf["api_key"])
    """
    Project API
    """
    # list project users
    # https://developer.nulab-inc.com/ja/docs/backlog/api/2/get-project-list/
    print("# list project users")
    users = api.project.list_users("SampleProject")
    print(json.dumps(users, indent=2))
    """
    Wiki API
    """
    # list wikis
    # https://developer.nulab-inc.com/ja/docs/backlog/api/2/get-wiki-page-list/
    print("# list wikis")
    wikis = api.wiki.list("SampleProject")
    print(json.dumps(wikis[0], indent=2))

    # get attachment
    # https://developer.nulab-inc.com/ja/docs/backlog/api/2/get-issue-attachment/
    print("# get attachment")
    wiki = [
        w for w in api.wiki.list("SampleProject") if len(w["attachments"]) > 0
    ][0]
    attachment = api.wiki.get_attachment(
        wikiId=wiki["id"], attachmentId=wiki["attachments"][0]["id"])
    attachment["data"] = base64.b64encode(attachment["data"]).decode()
    print(json.dumps(attachment, indent=2))
Exemplo n.º 2
0
def backlog_get_client(space: str, api_key: str):
    """Return Backlog API Client

    :param space: backlog space (backlog.jpのサブドメイン))
    :type space: str
    :param api_key: backlog api key
    :type api_key: str
    :return: Backlog API Client object
    :rtype: backlog.base.BacklogAPI
    """
    return BacklogAPI(space=space, api_key=api_key)
Exemplo n.º 3
0
    def setUp(self):
        self.conf = load_conf("./conf.default.yml")["backlog"]
        self.api = BacklogAPI(self.conf["space"], self.conf["api_key"])
        self.space = self.conf["space"]
        self.api_key = self.conf["api_key"]

        # tempfile
        self.test_dir = tempfile.mkdtemp()
        self.test_fd, self.test_file = tempfile.mkstemp(dir=self.test_dir)
        self.test_data = b"1234567890"

        with open(self.test_fd, "wb") as fp:
            fp.write(self.test_data)
Exemplo n.º 4
0
def main():
    """
    Load conf.yml
    """
    conf = load_conf("conf.yml")["backlog"]
    api = BacklogAPI(conf["space"], conf["api_key"])
    """
    Project API
    """
    # list project users
    # https://developer.nulab-inc.com/ja/docs/backlog/api/2/get-project-list/
    print("# list project users")

    userId = "shiratatsu"
    passowrd = "shiratatsu"
    name = "shiratatsu"
    mailAddress = "*****@*****.**"
    roleType = 1

    result = api.user.add(userId, passowrd, name, mailAddress, roleType)
    print(json.dumps(result, indent=2))
Exemplo n.º 5
0
def main():
    """
    Load conf.yml
    """
    conf = load_conf("conf.yml")["backlog"]
    api = BacklogAPI(conf["space"], conf["api_key"])
    """
    Project API
    """
    # list project users
    # https://developer.nulab-inc.com/ja/docs/backlog/api/2/get-project-list/
    print("# list project users")

    name = "テスト1"
    key = "test1"
    chartEnabled = "false"
    projectLeaderCanEditProjectLeader = "false"
    subtaskingEnabled = "true"
    textFormattingRule = "markdown"

    result = api.project.create(name, key, chartEnabled,
                                projectLeaderCanEditProjectLeader,
                                subtaskingEnabled, textFormattingRule)
    print(json.dumps(result, indent=2))
Exemplo n.º 6
0
 def setUp(self):
     self.conf = load_conf("./conf.default.yml")["backlog"]
     self.api = BacklogAPI(self.conf["space"], self.conf["api_key"])
     self.space = self.conf["space"]
     self.api_key = self.conf["api_key"]
Exemplo n.º 7
0
class TestApi(unittest.TestCase):
    def setUp(self):
        self.conf = load_conf("./conf.default.yml")["backlog"]
        self.api = BacklogAPI(self.conf["space"], self.conf["api_key"])
        self.space = self.conf["space"]
        self.api_key = self.conf["api_key"]

    @httpretty.activate
    def test_invoke_get(self):
        expects = {"ok": True}
        _uri = "test"

        # Status Pattern
        _http_statuses = [200, 201]

        for _status_code in _http_statuses:
            with self.subTest(status_code=_status_code):
                httpretty.register_uri(httpretty.GET,
                                       API_ENDPOINT.format(space=self.space,
                                                           uri=_uri),
                                       body=json.dumps(expects),
                                       content_type="application/json",
                                       status=_status_code)

                resp = self.api.invoke_method("GET", _uri)
                self.assertEqual(_status_code, resp.status_code)
                self.assertEqual(expects, resp.json())

        # Test 204(NO_CONTENT) Response
        #   NOTE: 204 response MUST NOT include a message-body.
        #   http://tools.ietf.org/search/rfc2616#section-10.2.5
        httpretty.register_uri(httpretty.GET,
                               API_ENDPOINT.format(space=self.space, uri=_uri),
                               content_type="application/json",
                               status=204)

        resp = self.api.invoke_method("GET", _uri)
        self.assertEqual(204, resp.status_code)

    @httpretty.activate
    def test_invoke_post(self):
        expects = {"ok": True}
        _uri = "test"

        # Status Pattern
        _http_statuses = [200, 201]

        for _status_code in _http_statuses:
            with self.subTest(status_code=_status_code):
                httpretty.register_uri(httpretty.POST,
                                       API_ENDPOINT.format(space=self.space,
                                                           uri=_uri),
                                       body=json.dumps(expects),
                                       content_type="application/json",
                                       status=_status_code)

                resp = self.api.invoke_method("POST", _uri)
                self.assertEqual(_status_code, resp.status_code)
                self.assertEqual(expects, resp.json())

    @httpretty.activate
    def test_invoke_delete(self):
        expects = {"ok": True}
        _uri = "test"

        # Status 200
        httpretty.register_uri(httpretty.DELETE,
                               API_ENDPOINT.format(space=self.space, uri=_uri),
                               body=json.dumps(expects),
                               content_type="application/json",
                               status=200)

        resp = self.api.invoke_method("DELETE", _uri)
        self.assertEqual(200, resp.status_code)
        self.assertEqual(expects, resp.json())

    @httpretty.activate
    def test_invoke_patch(self):
        expects = {"ok": True}
        _uri = "test"

        # Status 200
        httpretty.register_uri(httpretty.PATCH,
                               API_ENDPOINT.format(space=self.space, uri=_uri),
                               body=json.dumps(expects),
                               content_type="application/json",
                               status=200)

        resp = self.api.invoke_method("PATCH", _uri)
        self.assertEqual(200, resp.status_code)
        self.assertEqual(expects, resp.json())