147 lines
5.7 KiB
Python
147 lines
5.7 KiB
Python
from unittest.mock import MagicMock, patch
|
|
from app.languages import getProject, helmSet
|
|
import gitlab
|
|
from gitlab.v4.objects import ProjectManager as pm
|
|
|
|
|
|
def test_get_project():
|
|
project_object = {
|
|
'id': 34,
|
|
'description': 'A getting started template for go-micro (https://micro.mu/docs/go-micro.html)',
|
|
'name': 'test',
|
|
'name_with_namespace': 'Administrator / test',
|
|
'path': 'test',
|
|
'path_with_namespace': 'root/test',
|
|
'created_at': '2022-05-21T20:37:54.935Z',
|
|
'default_branch': 'master',
|
|
'tag_list': [],
|
|
'topics': [],
|
|
'ssh_url_to_repo': 'git@localhost:root/test.git',
|
|
'http_url_to_repo': 'http://localhost/root/test.git',
|
|
'web_url': 'http://localhost/root/test',
|
|
'readme_url': 'http://localhost/root/test/-/blob/master/README.md',
|
|
'avatar_url': None,
|
|
'forks_count': 0,
|
|
'star_count': 0,
|
|
'last_activity_at': '2022-05-21T20:37:54.935Z',
|
|
'namespace': {
|
|
'id': 1,
|
|
'name': 'Administrator',
|
|
'path': 'root',
|
|
'kind': 'user',
|
|
'full_path': 'root',
|
|
'parent_id': None,
|
|
'avatar_url': 'https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon',
|
|
'web_url': 'http://localhost/root'},
|
|
'_links': {
|
|
'self': 'http://localhost/api/v4/projects/34',
|
|
'issues': 'http://localhost/api/v4/projects/34/issues',
|
|
'merge_requests': 'http://localhost/api/v4/projects/34/merge_requests',
|
|
'repo_branches': 'http://localhost/api/v4/projects/34/repository/branches',
|
|
'labels': 'http://localhost/api/v4/projects/34/labels',
|
|
'events': 'http://localhost/api/v4/projects/34/events',
|
|
'members': 'http://localhost/api/v4/projects/34/members'},
|
|
'packages_enabled': True,
|
|
'empty_repo': False,
|
|
'archived': False,
|
|
'visibility': 'public',
|
|
'owner': {
|
|
'id': 1,
|
|
'username': 'root',
|
|
'name': 'Administrator',
|
|
'state': 'active',
|
|
'avatar_url': 'https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon',
|
|
'web_url': 'http://localhost/root'},
|
|
'resolve_outdated_diff_discussions': False,
|
|
'container_expiration_policy': {
|
|
'cadence': '1d',
|
|
'enabled': False,
|
|
'keep_n': 10,
|
|
'older_than': '90d',
|
|
'name_regex': '.*',
|
|
'name_regex_keep': None,
|
|
'next_run_at': '2022-05-22T20:37:55.006Z'},
|
|
'issues_enabled': True,
|
|
'merge_requests_enabled': True,
|
|
'wiki_enabled': True,
|
|
'jobs_enabled': True,
|
|
'snippets_enabled': True,
|
|
'container_registry_enabled': True,
|
|
'service_desk_enabled': False,
|
|
'service_desk_address': None,
|
|
'can_create_merge_request_in': True,
|
|
'issues_access_level': 'enabled',
|
|
'repository_access_level': 'enabled',
|
|
'merge_requests_access_level': 'enabled',
|
|
'forking_access_level': 'enabled',
|
|
'wiki_access_level': 'enabled',
|
|
'builds_access_level': 'enabled',
|
|
'snippets_access_level': 'enabled',
|
|
'pages_access_level': 'enabled',
|
|
'operations_access_level': 'enabled',
|
|
'analytics_access_level': 'enabled',
|
|
'container_registry_access_level': 'enabled',
|
|
'security_and_compliance_access_level': 'private',
|
|
'emails_disabled': None,
|
|
'shared_runners_enabled': True,
|
|
'lfs_enabled': True,
|
|
'creator_id': 1,
|
|
'import_url': None,
|
|
'import_type': 'gitlab_project',
|
|
'import_status': 'finished',
|
|
'import_error': None,
|
|
'open_issues_count': 0,
|
|
'runners_token': 'REDACTED',
|
|
'ci_default_git_depth': 20,
|
|
'ci_forward_deployment_enabled': True,
|
|
'ci_job_token_scope_enabled': False,
|
|
'ci_separated_caches': True,
|
|
'public_jobs': True,
|
|
'build_git_strategy': 'fetch',
|
|
'build_timeout': 3600,
|
|
'auto_cancel_pending_pipelines': 'enabled',
|
|
'build_coverage_regex': None,
|
|
'ci_config_path': None,
|
|
'shared_with_groups': [],
|
|
'only_allow_merge_if_pipeline_succeeds': False,
|
|
'allow_merge_on_skipped_pipeline': None,
|
|
'restrict_user_defined_variables': False,
|
|
'request_access_enabled': False,
|
|
'only_allow_merge_if_all_discussions_are_resolved': False,
|
|
'remove_source_branch_after_merge': True,
|
|
'printing_merge_request_link_enabled': True,
|
|
'merge_method': 'merge',
|
|
'squash_option': 'default_off',
|
|
'suggestion_commit_message': None,
|
|
'merge_commit_template': None,
|
|
'squash_commit_template': None,
|
|
'auto_devops_enabled': True,
|
|
'auto_devops_deploy_strategy': 'continuous',
|
|
'autoclose_referenced_issues': True,
|
|
'repository_storage': 'default',
|
|
'keep_latest_artifact': True,
|
|
'runner_token_expiration_interval': None,
|
|
'permissions': {
|
|
'project_access': {
|
|
'access_level': 50,
|
|
'notification_level': 3},
|
|
'group_access': None}}
|
|
with patch.object(pm, 'get', return_value=project_object) as mock_method:
|
|
gl = gitlab.Gitlab()
|
|
project = getProject(gl, 'root/test')
|
|
assert project['id'] == 34
|
|
|
|
|
|
def test_get_language():
|
|
getLanguage = MagicMock(return_value=[('Go', 100.0)])
|
|
|
|
expected = [('Go', 100.0)]
|
|
actual = getLanguage("project")
|
|
assert expected == actual
|
|
|
|
|
|
def test_helm_set():
|
|
excepted = '--set global.language[0]=Go'
|
|
actual = helmSet([('Go', 100.0)])
|
|
assert excepted == actual
|