本文整理汇总了Python中testfixtures.popen.MockPopen.wait方法的典型用法代码示例。如果您正苦于以下问题:Python MockPopen.wait方法的具体用法?Python MockPopen.wait怎么用?Python MockPopen.wait使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类testfixtures.popen.MockPopen
的用法示例。
在下文中一共展示了MockPopen.wait方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: setup_git_popen
# 需要导入模块: from testfixtures.popen import MockPopen [as 别名]
# 或者: from testfixtures.popen.MockPopen import wait [as 别名]
class TestGitPopenMockupMixin:
def setup_git_popen(self):
# repository mockup (in a temporary place)
self.repository = Repo.init(self.tempdir.name)
# setup git command mockup
self.Popen = MockPopen()
def FixPopen(*a, **k):
if 'start_new_session' in k:
del k['start_new_session']
return self.Popen.Popen(*a, **k)
self.Popen.mock.Popen.side_effect = FixPopen
self.Popen.mock.Popen_instance.stdin = None
self.Popen.mock.Popen_instance.wait = lambda *a, **k: self.Popen.wait()
self.Popen.mock.Popen_instance.__enter__ = lambda self: self
self.Popen.mock.Popen_instance.__exit__ = lambda self, *a, **k: None
def set_mock_popen_commands(self, cmd_list):
for cmd, out, err, rc in cmd_list:
self.Popen.set_command(cmd, out, err, returncode=rc)
def mockup_git(self, namespace, repository, url=None):
# disable refspec check
from git import remote
remote.Remote._assert_refspec = lambda self: None
# write FETCH_HEAD ref
with open(os.path.join(self.repository.git_dir, 'FETCH_HEAD'), 'w') as f:
url = url or "{}:{}/{}".format(self.service.fqdn, namespace, repository)
f.write("749656b8b3b282d11a4221bb84e48291ca23ecc6" \
" branch 'master' of {}".format(url))
return Replace('git.cmd.Popen', self.Popen)
示例2: GitRepoTestCase
# 需要导入模块: from testfixtures.popen import MockPopen [as 别名]
# 或者: from testfixtures.popen.MockPopen import wait [as 别名]
class GitRepoTestCase():
def setup_method(self, method):
self.log.info('GitRepoTestCase.setup_method({})'.format(method))
# build temporary directory
self.tempdir = TemporaryDirectory()
# repository mockup (in a temporary place)
self.repository = Repo.init(self.tempdir.name)
# setup git command mockup
self.Popen = MockPopen()
self.Popen.mock.Popen_instance.stdin = None
self.Popen.mock.Popen_instance.wait = lambda *a, **k: self.Popen.wait()
self.Popen.mock.Popen_instance.__enter__ = lambda self: self
self.Popen.mock.Popen_instance.__exit__ = lambda self, *a, **k: None
# when initiating service with no repository, the connection is not triggered
self.service = self.get_service()
self.service.repository = self.repository
# setup http api mockup
self.recorder = betamax.Betamax(self.get_requests_session())
self.get_requests_session().headers['Accept-Encoding'] = 'identity'
# have git commands logged
Git.GIT_PYTHON_TRACE = True
FORMAT = '> %(message)s'
formatter = logging.Formatter(fmt=FORMAT)
handler = logging.StreamHandler()
handler.setFormatter(formatter)
logging.getLogger('git.cmd').removeHandler(logging.NullHandler())
logging.getLogger('git.cmd').addHandler(handler)
logging.getLogger('git.cmd').propagate = True
# have HTTP requests logged
import http.client
http.client.HTTPConnection.debuglevel = 1
logging.getLogger('requests.packages.urllib3').setLevel(logging.DEBUG)
logging.getLogger('requests.packages.urllib3').propagate = True
def teardown_method(self, method):
self.log.info('GitRepoTestCase.teardown_method({})'.format(method))
self.tempdir.cleanup()
'''popen helper'''
def set_mock_popen_commands(self, cmd_list):
for cmd, out, err, rc in cmd_list:
self.Popen.set_command(cmd, out, err, returncode=rc)
def mockup_git(self, namespace, repository):
# disable refspec check
from git import remote
remote.Remote._assert_refspec = lambda self: None
# write FETCH_HEAD ref
with open(os.path.join(self.repository.git_dir, 'FETCH_HEAD'), 'w') as f:
f.write("749656b8b3b282d11a4221bb84e48291ca23ecc6" \
" branch 'master' of [email protected]{}/{}/{}".format(self.service.fqdn, namespace, repository))
return Replace('git.cmd.Popen', self.Popen)
'''assertion helpers'''
def assert_repository_exists(self, namespace, repository):
try:
self.service.get_repository(namespace, repository)
except Exception as err:
raise AssertionError("Repository {}/{} not found on {}: {}".format(namespace,
repository,
self.service.name,
err)) from err
def assert_repository_not_exists(self, namespace, repository):
try:
self.service.get_repository(namespace, repository)
except Exception as err:
return
#raise AssertionError("Repository {}/{} exists on {}".format(namespace,
# repository,
# self.service.name,
# ))
def assert_added_remote(self, remote):
try:
self.repository.remote(remote)
except ValueError as err:
raise AssertionError("Remote {} not in repository".format(remote)) from err
def assert_added_remote_defaults(self):
self.assert_added_remote(self.service.name)
self.assert_added_remote('all')
def assert_tracking_remote(self, remote_name=None, branch_name='master'):
if not remote_name:
remote_name = self.service.name
for branch in self.repository.branches:
if branch == branch_name:
assert remote_name in self.repository.branches[0].tracking_branch().name, \
'Could not set "{}" as tracking branch master'.format(self.service.name)
'''test cases templates'''
def action_fork(self, cassette_name, local_namespace, remote_namespace, repository):
# hijack subprocess call
with self.mockup_git(local_namespace, repository):
# prepare output for git commands
remote_slug = self.service.format_path(namespace=remote_namespace, repository=repository, rw=True)
#.........这里部分代码省略.........
示例3: GitRepoTestCase
# 需要导入模块: from testfixtures.popen import MockPopen [as 别名]
# 或者: from testfixtures.popen.MockPopen import wait [as 别名]
class GitRepoTestCase(TestCase):
def setUp(self):
self.log.info('GitRepoTestCase')
# build temporary directory
self.tempdir = TemporaryDirectory()
self.addCleanup(self.tempdir.cleanup)
# repository mockup (in a temporary place)
self.repository = Repo.init(self.tempdir.name)
# setup git command mockup
self.Popen = MockPopen()
self.Popen.mock.Popen_instance.stdin = None
self.Popen.mock.Popen_instance.wait = lambda *a, **k: self.Popen.wait()
self.Popen.mock.Popen_instance.__enter__ = lambda self: self
self.Popen.mock.Popen_instance.__exit__ = lambda self, *a, **k: None
# when initiating service with no repository, the connection is not triggered
self.service = self.get_service()
self.service.repository = self.repository
# setup http api mockup
self.recorder = betamax.Betamax(self.get_requests_session())
# have git commands logged
Git.GIT_PYTHON_TRACE = True
FORMAT = '> %(message)s'
formatter = logging.Formatter(fmt=FORMAT)
handler = logging.StreamHandler()
handler.setFormatter(formatter)
logging.getLogger('git.cmd').removeHandler(logging.NullHandler())
logging.getLogger('git.cmd').addHandler(handler)
logging.getLogger('git.cmd').propagate = True
# have HTTP requests logged
import http.client
http.client.HTTPConnection.debuglevel = 1
logging.getLogger('requests.packages.urllib3').setLevel(logging.DEBUG)
logging.getLogger('requests.packages.urllib3').propagate = True
'''popen helper'''
def set_mock_popen_commands(self, cmd_list):
for cmd, out, err, rc in cmd_list:
self.Popen.set_command(cmd, out, err, returncode=rc)
def mockup_git(self, namespace, repository):
# disable refspec check
from git import remote
remote.Remote._assert_refspec = lambda self: None
# write FETCH_HEAD ref
with open(os.path.join(self.repository.git_dir, 'FETCH_HEAD'), 'w') as f:
f.write("749656b8b3b282d11a4221bb84e48291ca23ecc6" \
" branch 'master' of [email protected]{}/{}/{}".format(self.service.fqdn, namespace, repository))
return Replace('git.cmd.Popen', self.Popen)
'''assertion helpers'''
def assert_repository_exists(self, namespace, repository):
try:
self.service.get_repository(namespace, repository)
except Exception as err:
raise AssertionError("Repository {}/{} not found on {}: {}".format(namespace,
repository,
self.service.name,
err)) from err
def assert_repository_not_exists(self, namespace, repository):
try:
self.service.get_repository(namespace, repository)
except Exception as err:
return
#raise AssertionError("Repository {}/{} exists on {}".format(namespace,
# repository,
# self.service.name,
# ))
def assert_added_remote(self, remote):
try:
self.repository.remote(remote)
except ValueError as err:
raise AssertionError("Remote {} not in repository".format(remote)) from err
def assert_added_remote_defaults(self):
self.assert_added_remote(self.service.name)
self.assert_added_remote('all')
def assert_tracking_remote(self, remote_name=None, branch_name='master'):
if not remote_name:
remote_name = self.service.name
for branch in self.repository.branches:
if branch == branch_name:
assert remote_name in self.repository.branches[0].tracking_branch().name, \
'Could not set "{}" as tracking branch master'.format(self.service.name)
'''test cases templates'''
def action_fork(self, cassette_name, local_namespace, remote_namespace, repository):
# hijack subprocess call
with self.mockup_git(local_namespace, repository):
# prepare output for git commands
remote_slug = self.service.format_path(namespace=remote_namespace, repository=repository, rw=True)
local_slug = self.service.format_path(namespace=local_namespace, repository=repository, rw=True)
self.set_mock_popen_commands([
('git remote add upstream {}'.format(remote_slug), b'', b'', 0),
('git remote add all {}'.format(local_slug), b'', b'', 0),
#.........这里部分代码省略.........