|
Pierre-Yves Chibon |
17b6f6 |
# -*- coding: utf-8 -*-
|
|
Pierre-Yves Chibon |
17b6f6 |
|
|
Pierre-Yves Chibon |
17b6f6 |
"""
|
|
Pierre-Yves Chibon |
17b6f6 |
(c) 2017 - Copyright Red Hat Inc
|
|
Pierre-Yves Chibon |
17b6f6 |
|
|
Pierre-Yves Chibon |
17b6f6 |
Authors:
|
|
Pierre-Yves Chibon |
17b6f6 |
Pierre-Yves Chibon <pingou@pingoured.fr></pingou@pingoured.fr>
|
|
Pierre-Yves Chibon |
17b6f6 |
|
|
Pierre-Yves Chibon |
17b6f6 |
"""
|
|
Pierre-Yves Chibon |
17b6f6 |
|
|
Pierre-Yves Chibon |
17b6f6 |
__requires__ = ['SQLAlchemy >= 0.8']
|
|
Pierre-Yves Chibon |
17b6f6 |
import pkg_resources
|
|
Pierre-Yves Chibon |
17b6f6 |
|
|
Pierre-Yves Chibon |
17b6f6 |
import unittest
|
|
Pierre-Yves Chibon |
17b6f6 |
import shutil
|
|
Pierre-Yves Chibon |
17b6f6 |
import sys
|
|
Pierre-Yves Chibon |
17b6f6 |
import os
|
|
Pierre-Yves Chibon |
17b6f6 |
|
|
Pierre-Yves Chibon |
17b6f6 |
import mock
|
|
Pierre-Yves Chibon |
17b6f6 |
import pygit2
|
|
Pierre-Yves Chibon |
17b6f6 |
import werkzeug
|
|
Pierre-Yves Chibon |
17b6f6 |
|
|
Pierre-Yves Chibon |
17b6f6 |
sys.path.insert(0, os.path.join(os.path.dirname(
|
|
Pierre-Yves Chibon |
17b6f6 |
os.path.abspath(__file__)), '..'))
|
|
Pierre-Yves Chibon |
17b6f6 |
|
|
Pierre-Yves Chibon |
17b6f6 |
import pagure.lib
|
|
Pierre-Yves Chibon |
17b6f6 |
import pagure.lib.model
|
|
Pierre-Yves Chibon |
17b6f6 |
import tests
|
|
Pierre-Yves Chibon |
17b6f6 |
|
|
Pierre-Yves Chibon |
17b6f6 |
class PagureGetRemoteRepoPath(tests.Modeltests):
|
|
Pierre-Yves Chibon |
17b6f6 |
""" Tests for pagure """
|
|
Pierre-Yves Chibon |
17b6f6 |
|
|
Pierre-Yves Chibon |
17b6f6 |
def setUp(self):
|
|
Pierre-Yves Chibon |
17b6f6 |
""" Set up the environnment, ran before every tests. """
|
|
Pierre-Yves Chibon |
17b6f6 |
super(PagureGetRemoteRepoPath, self).setUp()
|
|
Pierre-Yves Chibon |
17b6f6 |
|
|
Pierre-Yves Chibon |
17b6f6 |
pagure.APP.config['GIT_FOLDER'] = os.path.join(self.path, 'repos')
|
|
Pierre-Yves Chibon |
17b6f6 |
pagure.APP.config['REMOTE_GIT_FOLDER'] = os.path.join(
|
|
Pierre-Yves Chibon |
17b6f6 |
self.path, 'remotes')
|
|
Pierre-Yves Chibon |
17b6f6 |
tests.create_projects(self.session)
|
|
Pierre-Yves Chibon |
17b6f6 |
tests.create_projects_git(os.path.join(self.path, 'repos'), bare=True)
|
|
Pierre-Yves Chibon |
17b6f6 |
tests.add_content_git_repo(os.path.join(self.path, 'repos', 'test2.git'))
|
|
Pierre-Yves Chibon |
17b6f6 |
|
|
Pierre-Yves Chibon |
17b6f6 |
def test_failed_clone(self):
|
|
Pierre-Yves Chibon |
17b6f6 |
""" Test get_remote_repo_path in pagure. """
|
|
Pierre-Yves Chibon |
17b6f6 |
with self.assertRaises(werkzeug.exceptions.InternalServerError) as cm:
|
|
Pierre-Yves Chibon |
17b6f6 |
pagure.get_remote_repo_path('remote_repo', 'branch')
|
|
Pierre-Yves Chibon |
17b6f6 |
|
|
Pierre-Yves Chibon |
17b6f6 |
self.assertEqual(
|
|
Pierre-Yves Chibon |
17b6f6 |
cm.exception.get_description(),
|
|
Pierre-Yves Chibon |
17b6f6 |
'The following error was raised when trying to clone the '
|
|
Pierre-Yves Chibon |
17b6f6 |
'remote repo: Unsupported URL protocol')
|
|
Pierre-Yves Chibon |
17b6f6 |
|
|
Pierre-Yves Chibon |
17b6f6 |
@mock.patch(
|
|
Pierre-Yves Chibon |
17b6f6 |
'pagure.lib.repo.PagureRepo.pull',
|
|
Pierre-Yves Chibon |
17b6f6 |
mock.MagicMock(side_effect=pygit2.GitError))
|
|
Pierre-Yves Chibon |
17b6f6 |
def test_failed_pull(self):
|
|
Pierre-Yves Chibon |
17b6f6 |
""" Test get_remote_repo_path in pagure. """
|
|
Pierre-Yves Chibon |
17b6f6 |
pagure.get_remote_repo_path(
|
|
Pierre-Yves Chibon |
17b6f6 |
os.path.join(self.path, 'repos', 'test2.git'), 'master')
|
|
Pierre-Yves Chibon |
17b6f6 |
|
|
Pierre-Yves Chibon |
17b6f6 |
with self.assertRaises(werkzeug.exceptions.InternalServerError) as cm:
|
|
Pierre-Yves Chibon |
17b6f6 |
pagure.get_remote_repo_path(
|
|
Pierre-Yves Chibon |
17b6f6 |
os.path.join(self.path, 'repos', 'test2.git'), 'master')
|
|
Pierre-Yves Chibon |
17b6f6 |
|
|
Pierre-Yves Chibon |
17b6f6 |
self.assertEqual(
|
|
Pierre-Yves Chibon |
17b6f6 |
cm.exception.get_description(),
|
|
Pierre-Yves Chibon |
17b6f6 |
'The following error was raised when trying to pull the '
|
|
Pierre-Yves Chibon |
17b6f6 |
'changes from the remote: ')
|
|
Pierre-Yves Chibon |
17b6f6 |
|
|
Pierre-Yves Chibon |
17b6f6 |
@mock.patch(
|
|
Pierre-Yves Chibon |
17b6f6 |
'pagure.lib.repo.PagureRepo.pull',
|
|
Pierre-Yves Chibon |
17b6f6 |
mock.MagicMock(side_effect=pygit2.GitError))
|
|
Pierre-Yves Chibon |
17b6f6 |
def test_passing(self):
|
|
Pierre-Yves Chibon |
17b6f6 |
""" Test get_remote_repo_path in pagure. """
|
|
Pierre-Yves Chibon |
17b6f6 |
output = pagure.get_remote_repo_path(
|
|
Pierre-Yves Chibon |
17b6f6 |
os.path.join(self.path, 'repos', 'test2.git'), 'master')
|
|
Pierre-Yves Chibon |
17b6f6 |
|
|
Pierre-Yves Chibon |
17b6f6 |
self.assertTrue(output.endswith('repos_test2.git_master'))
|
|
Pierre-Yves Chibon |
17b6f6 |
|
|
Pierre-Yves Chibon |
17b6f6 |
|
|
Pierre-Yves Chibon |
17b6f6 |
if __name__ == '__main__':
|
|
Pierre-Yves Chibon |
78e6f4 |
unittest.main(verbosity=2)
|