Langenfeld 2020-10-14 13:17:02 +02:00
rodzic 60316a5fd6
commit caed956b67
1 zmienionych plików z 63 dodań i 50 usunięć

Wyświetl plik

@ -1,19 +1,14 @@
import os
import pytest import pytest
import uuid import uuid
from .gitea import Gitea, User, Organization, Team, Repository, Issue from gitea import Gitea, User, Organization, Team, Repository, Issue
from .gitea import NotFoundException, AlreadyExistsException from gitea import NotFoundException, AlreadyExistsException
gitea = None
# put a ".token" file into your directory containg only the token for gitea # put a ".token" file into your directory containg only the token for gitea
try: try:
gitea = Gitea("http://localhost:3000", open(".token", "r").read().strip()) instance = Gitea("http://localhost:3000", open(".token", "r").read().strip())
print("Gitea Version: " + gitea.get_version()) print("Gitea Version: " + instance.get_version())
print("API-Token belongs to user: " + gitea.get_user().username) print("API-Token belongs to user: " + instance.get_user().username)
except: except:
assert ( assert (
False False
@ -22,44 +17,51 @@ except:
- Token at .token \ - Token at .token \
?" ?"
#make up some fresh names for the test run # make up some fresh names for the tests run
test_org = "org_" + uuid.uuid4().hex[:8] test_org = "org_" + uuid.uuid4().hex[:8]
test_user = "user_" +uuid.uuid4().hex[:8] test_user = "user_" + uuid.uuid4().hex[:8]
test_team = "team_" +uuid.uuid4().hex[:8] # team names seem to have a rather low max lenght test_team = "team_" + uuid.uuid4().hex[:8] # team names seem to have a rather low max lenght
test_repo = "repo_" +uuid.uuid4().hex[:8] test_repo = "repo_" + uuid.uuid4().hex[:8]
def test_token_owner(): def test_token_owner():
user = gitea.get_user() user = instance.get_user()
assert user.username == "test", "Token user not 'test'." assert user.username == "tests", "Token user not 'tests'."
assert user.is_admin, "Testuser is not Admin - Tests may fail" assert user.is_admin, "Testuser is not Admin - Tests may fail"
def test_gitea_version(): def test_gitea_version():
assert gitea.get_version() == "1.10.0", "Version changed. Updated?" assert instance.get_version() == "1.10.0", "Version changed. Updated?"
def test_fail_get_non_existent_user(): def test_fail_get_non_existent_user():
with pytest.raises(NotFoundException) as e: with pytest.raises(NotFoundException) as e:
User.request(gitea, test_user) User.request(instance, test_user)
def test_fail_get_non_existent_org(): def test_fail_get_non_existent_org():
with pytest.raises(NotFoundException) as e: with pytest.raises(NotFoundException) as e:
Organization.request(gitea, test_org) Organization.request(instance, test_org)
def test_fail_get_non_existent_repo(): def test_fail_get_non_existent_repo():
with pytest.raises(NotFoundException) as e: with pytest.raises(NotFoundException) as e:
Repository.request(gitea, test_user, test_repo) Repository.request(instance, test_user, test_repo)
def test_create_user(): def test_create_user():
email = test_user + "@example.org" email = test_user + "@example.org"
user = gitea.create_user(test_user, email, "abcdefg1.23AB") user = instance.create_user(test_user, email, "abcdefg1.23AB")
assert user.username == test_user assert user.username == test_user
assert user.login == test_user assert user.login == test_user
assert email in user.emails assert email in user.emails
assert user.email == email assert user.email == email
assert not user.is_admin assert not user.is_admin
def test_create_org(): def test_create_org():
user = gitea.get_user() user = instance.get_user()
org = gitea.create_org(user, test_org, "some-desc", "loc") org = instance.create_org(user, test_org, "some-desc", "loc")
assert org.get_members() == [user] assert org.get_members() == [user]
assert org.description == "some-desc" assert org.description == "some-desc"
assert org.username == test_org assert org.username == test_org
@ -67,92 +69,103 @@ def test_create_org():
assert not org.website assert not org.website
assert not org.full_name assert not org.full_name
def test_non_changable_field(): def test_non_changable_field():
org = Organization.request(gitea, test_org) org = Organization.request(instance, test_org)
with pytest.raises(AttributeError) as e: with pytest.raises(AttributeError) as e:
org.id = 55 org.id = 55
def test_create_repo_userowned(): def test_create_repo_userowned():
org = User.request(gitea, test_user) org = User.request(instance, test_user)
repo = gitea.create_repo(org, test_repo, "user owned repo") repo = instance.create_repo(org, test_repo, "user owned repo")
assert repo.description == "user owned repo" assert repo.description == "user owned repo"
assert repo.owner == org assert repo.owner == org
assert repo.name == test_repo assert repo.name == test_repo
assert not repo.private assert not repo.private
def test_edit_org_fields_and_commit(): def test_edit_org_fields_and_commit():
org = Organization.request(gitea, test_org) org = Organization.request(instance, test_org)
org.description = "some thing other man" org.description = "some thing other man"
org.location = "somewehre new" org.location = "somewehre new"
org.visibility = "public" org.visibility = "public"
org.website = "http:\\\\testurl.com" org.website = "http:\\\\testurl.com"
org.commit() org.commit()
org2 = Organization.request(gitea, test_org) org2 = Organization.request(instance, test_org)
assert org2.name == test_org assert org2.name == test_org
assert org2.description == "some thing other man" assert org2.description == "some thing other man"
assert org2.location == "somewehre new" assert org2.location == "somewehre new"
#assert org2.visibility == "private" # after commiting, this field just vanishes (Bug?) # assert org2.visibility == "private" # after commiting, this field just vanishes (Bug?)
assert org2.website == "http:\\\\testurl.com" assert org2.website == "http:\\\\testurl.com"
def test_create_repo_orgowned(): def test_create_repo_orgowned():
org = Organization.request(gitea, test_org) org = Organization.request(instance, test_org)
repo = gitea.create_repo(org, test_repo, "descr") repo = instance.create_repo(org, test_repo, "descr")
assert repo.description == "descr" assert repo.description == "descr"
assert repo.owner == org assert repo.owner == org
assert repo.name == test_repo assert repo.name == test_repo
assert not repo.private assert not repo.private
def test_create_team(): def test_create_team():
org = Organization.request(gitea, test_org) org = Organization.request(instance, test_org)
team = gitea.create_team(org, test_team, "descr") team = instance.create_team(org, test_team, "descr")
assert team.name == test_team assert team.name == test_team
assert team.description == "descr" assert team.description == "descr"
assert team.organization == org assert team.organization == org
def test_create_issue(): def test_create_issue():
org = Organization.request(gitea, test_org) org = Organization.request(instance, test_org)
repo = Repository.request(gitea, org.username, test_repo) repo = Repository.request(instance, org.username, test_repo)
issue = Issue.create_issue(gitea, repo, "TestIssue", "Body text with this issue") issue = Issue.create_issue(instance, repo, "TestIssue", "Body text with this issue")
assert issue.state == Issue.OPENED assert issue.state == Issue.OPENED
assert issue.title == "TestIssue" assert issue.title == "TestIssue"
assert issue.body == "Body text with this issue" assert issue.body == "Body text with this issue"
def test_delete_repo_userowned(): def test_delete_repo_userowned():
user = User.request(gitea, test_user) user = User.request(instance, test_user)
repo = Repository.request(gitea, user.username, test_repo) repo = Repository.request(instance, user.username, test_repo)
repo.delete() repo.delete()
with pytest.raises(NotFoundException) as e: with pytest.raises(NotFoundException) as e:
Repository.request(gitea, test_user, test_repo) Repository.request(instance, test_user, test_repo)
def test_secundary_email(): def test_secundary_email():
SECONDARYMAIL = "secondarytest@test.org" # set up with real email SECONDARYMAIL = "secondarytest@tests.org" # set up with real email
sec_user = gitea.get_user_by_email(SECONDARYMAIL) sec_user = instance.get_user_by_email(SECONDARYMAIL)
assert SECONDARYMAIL in sec_user.emails assert SECONDARYMAIL in sec_user.emails
assert sec_user.username == "test" assert sec_user.username == "tests"
def test_delete_repo_orgowned(): def test_delete_repo_orgowned():
org = Organization.request(gitea, test_org) org = Organization.request(instance, test_org)
repo = Repository.request(gitea, org.username, test_repo) repo = Repository.request(instance, org.username, test_repo)
repo.delete() repo.delete()
with pytest.raises(NotFoundException) as e: with pytest.raises(NotFoundException) as e:
Repository.request(gitea, test_user, test_repo) Repository.request(instance, test_user, test_repo)
def test_delete_team(): def test_delete_team():
org = Organization.request(gitea, test_org) org = Organization.request(instance, test_org)
team = org.get_team(test_team) team = org.get_team(test_team)
team.delete() team.delete()
with pytest.raises(NotFoundException) as e: with pytest.raises(NotFoundException) as e:
team = org.get_team(test_team) team = org.get_team(test_team)
def test_delete_org(): def test_delete_org():
org = Organization.request(gitea, test_org) org = Organization.request(instance, test_org)
org.delete() org.delete()
with pytest.raises(NotFoundException) as e: with pytest.raises(NotFoundException) as e:
Organization.request(gitea, test_org) Organization.request(instance, test_org)
def test_delete_user(): def test_delete_user():
user = User.request(gitea, test_user) user = User.request(instance, test_user)
user.delete() user.delete()
with pytest.raises(NotFoundException) as e: with pytest.raises(NotFoundException) as e:
User.request(gitea, test_user) User.request(instance, test_user)