kopia lustrzana https://github.com/Langenfeld/py-gitea
function for all changable fields to be correctly be added to the api objects
gitea does not return all fields that can be changed for an object together with the object. The api now generates all those fields without content, but with monitoring if they have to be added to the dirty fieldspull/3/head
rodzic
4005f6bf9e
commit
1a3f93b33d
|
@ -63,6 +63,15 @@ class BasicGiteaApiObject:
|
||||||
(lambda name: lambda self: self.__get_var(name))(name))
|
(lambda name: lambda self: self.__get_var(name))(name))
|
||||||
setattr(cls, name, prop)
|
setattr(cls, name, prop)
|
||||||
setattr(api_object, "_" + name, value)
|
setattr(api_object, "_" + name, value)
|
||||||
|
# add all patchable fields to be watched if changed
|
||||||
|
for name in cls.patchable_fields:
|
||||||
|
if not hasattr(api_object,name):
|
||||||
|
prop = property(
|
||||||
|
(lambda name: lambda self: self.__get_var(name))(name),
|
||||||
|
(lambda name: lambda self, v: self.__set_var(name, v))(name))
|
||||||
|
setattr(cls, name, prop)
|
||||||
|
setattr(api_object, "_" + name, None)
|
||||||
|
|
||||||
|
|
||||||
def __set_var(self, name, i):
|
def __set_var(self, name, i):
|
||||||
if self.deleted:
|
if self.deleted:
|
||||||
|
|
104
gitea/gitea.py
104
gitea/gitea.py
|
@ -692,8 +692,8 @@ class Gitea:
|
||||||
)
|
)
|
||||||
if request.status_code not in [200, 201]:
|
if request.status_code not in [200, 201]:
|
||||||
if (
|
if (
|
||||||
"already exists" in request.text
|
"already exists" in request.text
|
||||||
or "e-mail already in use" in request.text
|
or "e-mail already in use" in request.text
|
||||||
):
|
):
|
||||||
self.logger.warning(request.text)
|
self.logger.warning(request.text)
|
||||||
raise AlreadyExistsException()
|
raise AlreadyExistsException()
|
||||||
|
@ -777,7 +777,7 @@ class Gitea:
|
||||||
return self.requests_get(path)
|
return self.requests_get(path)
|
||||||
|
|
||||||
def post_org_repos(
|
def post_org_repos(
|
||||||
self, name, description, private, auto_init, gitignores, license, readme, org
|
self, name, description, private, auto_init, gitignores, license, readme, org
|
||||||
):
|
):
|
||||||
path = "/org/" + org + "/repos"
|
path = "/org/" + org + "/repos"
|
||||||
return self.requests_post(
|
return self.requests_post(
|
||||||
|
@ -809,15 +809,15 @@ class Gitea:
|
||||||
return self.requests_get(path)
|
return self.requests_get(path)
|
||||||
|
|
||||||
def post_repos_migrate(
|
def post_repos_migrate(
|
||||||
self,
|
self,
|
||||||
clone_addr,
|
clone_addr,
|
||||||
auth_username,
|
auth_username,
|
||||||
auth_password,
|
auth_password,
|
||||||
uid,
|
uid,
|
||||||
repo_name,
|
repo_name,
|
||||||
mirror,
|
mirror,
|
||||||
private,
|
private,
|
||||||
description,
|
description,
|
||||||
):
|
):
|
||||||
path = "/repos/migrate"
|
path = "/repos/migrate"
|
||||||
return self.requests_post(
|
return self.requests_post(
|
||||||
|
@ -835,7 +835,7 @@ class Gitea:
|
||||||
)
|
)
|
||||||
|
|
||||||
def post_user_repos(
|
def post_user_repos(
|
||||||
self, name, description, private, auto_init, gitignores, license, readme
|
self, name, description, private, auto_init, gitignores, license, readme
|
||||||
):
|
):
|
||||||
path = "/user/repos"
|
path = "/user/repos"
|
||||||
return self.requests_post(
|
return self.requests_post(
|
||||||
|
@ -880,14 +880,14 @@ class Gitea:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
def create_user(
|
def create_user(
|
||||||
self,
|
self,
|
||||||
user_name: str,
|
user_name: str,
|
||||||
email: str,
|
email: str,
|
||||||
password: str,
|
password: str,
|
||||||
login_name: str = None,
|
login_name: str = None,
|
||||||
change_pw=True,
|
change_pw=True,
|
||||||
send_notify=True,
|
send_notify=True,
|
||||||
source_id=0,
|
source_id=0,
|
||||||
):
|
):
|
||||||
""" Create User.
|
""" Create User.
|
||||||
Throws:
|
Throws:
|
||||||
|
@ -923,16 +923,16 @@ class Gitea:
|
||||||
return user
|
return user
|
||||||
|
|
||||||
def create_repo(
|
def create_repo(
|
||||||
self,
|
self,
|
||||||
repoOwner,
|
repoOwner,
|
||||||
repoName: str,
|
repoName: str,
|
||||||
description: str = "",
|
description: str = "",
|
||||||
private: bool = False,
|
private: bool = False,
|
||||||
autoInit=True,
|
autoInit=True,
|
||||||
gitignores: str = None,
|
gitignores: str = None,
|
||||||
license: str = None,
|
license: str = None,
|
||||||
readme: str = "Default",
|
readme: str = "Default",
|
||||||
issue_labels: str = None,
|
issue_labels: str = None,
|
||||||
):
|
):
|
||||||
""" Create a Repository.
|
""" Create a Repository.
|
||||||
Throws:
|
Throws:
|
||||||
|
@ -964,13 +964,13 @@ class Gitea:
|
||||||
return Repository.parse_response(self, result)
|
return Repository.parse_response(self, result)
|
||||||
|
|
||||||
def create_org(
|
def create_org(
|
||||||
self,
|
self,
|
||||||
owner: User,
|
owner: User,
|
||||||
orgName: str,
|
orgName: str,
|
||||||
description: str,
|
description: str,
|
||||||
location="",
|
location="",
|
||||||
website="",
|
website="",
|
||||||
full_name="",
|
full_name="",
|
||||||
):
|
):
|
||||||
assert isinstance(owner, User)
|
assert isinstance(owner, User)
|
||||||
result = self.requests_post(
|
result = self.requests_post(
|
||||||
|
@ -998,20 +998,20 @@ class Gitea:
|
||||||
return Organization.parse_response(self, result)
|
return Organization.parse_response(self, result)
|
||||||
|
|
||||||
def create_team(
|
def create_team(
|
||||||
self,
|
self,
|
||||||
org: Organization,
|
org: Organization,
|
||||||
name: str,
|
name: str,
|
||||||
description: str = "",
|
description: str = "",
|
||||||
permission: str = "read",
|
permission: str = "read",
|
||||||
units=(
|
units=(
|
||||||
"repo.code",
|
"repo.code",
|
||||||
"repo.issues",
|
"repo.issues",
|
||||||
"repo.ext_issues",
|
"repo.ext_issues",
|
||||||
"repo.wiki",
|
"repo.wiki",
|
||||||
"repo.pulls",
|
"repo.pulls",
|
||||||
"repo.releases",
|
"repo.releases",
|
||||||
"repo.ext_wiki",
|
"repo.ext_wiki",
|
||||||
),
|
),
|
||||||
):
|
):
|
||||||
""" Creates a Team.
|
""" Creates a Team.
|
||||||
|
|
||||||
|
|
|
@ -61,6 +61,15 @@ def test_create_user(instance):
|
||||||
assert user.email == email
|
assert user.email == email
|
||||||
assert not user.is_admin
|
assert not user.is_admin
|
||||||
|
|
||||||
|
def test_change_user(instance):
|
||||||
|
user = instance.get_user_by_name(test_user)
|
||||||
|
user.website = "other_testname"
|
||||||
|
user.full_name = "other_description"
|
||||||
|
user.commit()
|
||||||
|
del(user)
|
||||||
|
user = instance.get_user_by_name(test_user)
|
||||||
|
assert user.full_name == "other_description"
|
||||||
|
|
||||||
|
|
||||||
def test_create_org(instance):
|
def test_create_org(instance):
|
||||||
user = instance.get_user()
|
user = instance.get_user()
|
||||||
|
|
Ładowanie…
Reference in New Issue