85 lines
2.9 KiB
Python
85 lines
2.9 KiB
Python
from odoo.exceptions import ValidationError
|
|
|
|
from .common import CommonTest
|
|
|
|
|
|
class TestRepo(CommonTest):
|
|
"""Test class for git repository."""
|
|
|
|
@classmethod
|
|
def setUpClass(cls):
|
|
super().setUpClass()
|
|
|
|
def test_repo_create_from_url_https_success(self):
|
|
"""Test if repository is created correctly"""
|
|
# -- 1 --
|
|
# Valid HTTPS URL
|
|
repo = self.Repo.create(
|
|
{
|
|
"url": "https://github.com/memes-demo/doge-memes.git",
|
|
}
|
|
)
|
|
repo.invalidate_recordset()
|
|
|
|
self.assertEqual(repo.name, "github.com/memes-demo/doge-memes")
|
|
self.assertEqual(repo.host, "github.com")
|
|
self.assertEqual(repo.owner_id.name, "memes-demo")
|
|
self.assertEqual(repo.provider, "github")
|
|
self.assertEqual(repo.is_private, False)
|
|
self.assertEqual(repo.url_ssh, "git@github.com:memes-demo/doge-memes.git")
|
|
self.assertEqual(repo.url_git, "git://github.com/memes-demo/doge-memes.git")
|
|
|
|
def test_repo_create_from_url_ssh_success(self):
|
|
"""Test if repository is created correctly"""
|
|
# -- 1 --
|
|
# Valid SSH URL
|
|
repo = self.Repo.create(
|
|
{
|
|
"url": "git@gitlab.com:chad-guy/chad-guy.git",
|
|
}
|
|
)
|
|
repo.invalidate_recordset()
|
|
|
|
self.assertEqual(repo.name, "gitlab.com/chad-guy/chad-guy")
|
|
self.assertEqual(repo.host, "gitlab.com")
|
|
self.assertEqual(repo.owner_id.name, "chad-guy")
|
|
self.assertEqual(repo.provider, "gitlab")
|
|
self.assertEqual(repo.is_private, False)
|
|
self.assertEqual(repo.url, "https://gitlab.com/chad-guy/chad-guy.git")
|
|
self.assertEqual(repo.url_git, "git://gitlab.com/chad-guy/chad-guy.git")
|
|
|
|
def test_repo_create_from_url_git_success(self):
|
|
"""Test if repository is created correctly"""
|
|
# -- 1 --
|
|
# Valid GIT URL
|
|
repo = self.Repo.create(
|
|
{
|
|
"url": "git://bitbucket.com/much-pepe/pepe-memes.git",
|
|
}
|
|
)
|
|
self.assertEqual(repo.name, "bitbucket.com/much-pepe/pepe-memes")
|
|
self.assertEqual(repo.host, "bitbucket.com")
|
|
self.assertEqual(repo.owner_id.name, "much-pepe")
|
|
self.assertEqual(repo.provider, "bitbucket")
|
|
self.assertEqual(repo.is_private, False)
|
|
self.assertEqual(repo.url_ssh, "git@bitbucket.com:much-pepe/pepe-memes.git")
|
|
self.assertEqual(repo.url, "https://bitbucket.com/much-pepe/pepe-memes.git")
|
|
|
|
def test_repo_create_from_url_fails(self):
|
|
"""Test if repository creation fails with invalid URLs"""
|
|
|
|
# Invalid URL 1
|
|
with self.assertRaises(ValidationError):
|
|
self.Repo.create(
|
|
{
|
|
"url": "something.com",
|
|
}
|
|
)
|
|
# Invalid URL 2
|
|
with self.assertRaises(ValidationError):
|
|
self.Repo.create(
|
|
{
|
|
"url": "random string",
|
|
}
|
|
)
|