本文整理汇总了Python中sourcetree.SourceTree.cleanup方法的典型用法代码示例。如果您正苦于以下问题:Python SourceTree.cleanup方法的具体用法?Python SourceTree.cleanup怎么用?Python SourceTree.cleanup使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类sourcetree.SourceTree
的用法示例。
在下文中一共展示了SourceTree.cleanup方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_cleanup_kills_backgrounded_processes_and_rmdirs
# 需要导入模块: from sourcetree import SourceTree [as 别名]
# 或者: from sourcetree.SourceTree import cleanup [as 别名]
def test_cleanup_kills_backgrounded_processes_and_rmdirs(self):
sourcetree = SourceTree()
sourcetree.run_command('python -c"import time; time.sleep(5)" & #runserver', cwd=sourcetree.tempdir)
assert len(sourcetree.processes) == 1
sourcetree_pid = sourcetree.processes[0].pid
pids = subprocess.check_output('pgrep -f time.sleep', shell=True).decode('utf8').split()
print('sourcetree_pid', sourcetree_pid)
print('pids', pids)
sids = []
for pid in reversed(pids):
print('checking', pid)
cmd = 'ps -o sid --no-header -p %s' % (pid,)
print(cmd)
try:
sid = subprocess.check_output(cmd, shell=True)
print('sid', sid)
sids.append(sid)
assert sourcetree_pid == int(sid)
except subprocess.CalledProcessError:
pass
assert sids
sourcetree.cleanup()
assert 'time.sleep' not in subprocess.check_output('ps auxf', shell=True).decode('utf8')
示例2: ChapterTest
# 需要导入模块: from sourcetree import SourceTree [as 别名]
# 或者: from sourcetree.SourceTree import cleanup [as 别名]
class ChapterTest(unittest.TestCase):
maxDiff = None
def setUp(self):
self.sourcetree = SourceTree()
self.tempdir = self.sourcetree.tempdir
self.processes = []
self.pos = 0
self.dev_server_running = False
self.current_server_cd = None
def tearDown(self):
self.sourcetree.cleanup()
def parse_listings(self):
base_dir = os.path.split(os.path.abspath(os.path.dirname(__file__)))[0]
filename = 'chapter_{0:02d}.html'.format(self.chapter_no)
with open(os.path.join(base_dir, filename), encoding='utf-8') as f:
raw_html = f.read()
parsed_html = html.fromstring(raw_html)
listings_nodes = parsed_html.cssselect('div.listingblock')
self.listings = [p for n in listings_nodes for p in parse_listing(n)]
def check_final_diff(
self, chapter, ignore_moves=False, ignore_secret_key=False,
diff=None
):
if diff is None:
diff = self.run_command(Command(
'git diff -b repo/chapter_{0:02d}'.format(chapter)
))
try:
print('checking final diff', diff)
except io.BlockingIOError:
pass
self.assertNotIn('fatal:', diff)
start_marker = 'diff --git a/\n'
commit = Commit.from_diff(start_marker + diff)
error = AssertionError('Final diff was not empty, was:\n{}'.format(diff))
if ignore_secret_key:
for line in commit.lines_to_add + commit.lines_to_remove:
if 'SECRET_KEY' not in line:
raise error
elif ignore_moves:
if commit.deleted_lines or commit.new_lines:
raise AssertionError(
'Found lines to delete or add in diff.\nto delete:\n{}\n\nto add:\n{}'.format(
'\n- '.join(commit.deleted_lines), '\n+'.join(commit.new_lines)
)
)
elif commit.lines_to_add or commit.lines_to_remove:
raise error
def write_to_file(self, codelisting):
self.assertEqual(
type(codelisting), CodeListing,
"passed a non-Codelisting to write_to_file:\n%s" % (codelisting,)
)
print('writing to file', codelisting.filename)
write_to_file(codelisting, os.path.join(self.tempdir, 'superlists'))
filenames = codelisting.filename.split(', ')
for filename in filenames:
with open(os.path.join(self.tempdir, 'superlists', filename)) as f:
print('wrote:')
print(f.read())
def apply_patch(self, codelisting):
tf = tempfile.NamedTemporaryFile(delete=False)
tf.write(codelisting.contents.encode('utf8'))
tf.write('\n'.encode('utf8'))
tf.close()
print('patch:\n', codelisting.contents)
patch_output = self.run_command(
Command('patch --fuzz=3 --no-backup-if-mismatch %s %s' % (codelisting.filename, tf.name))
)
print(patch_output)
self.assertNotIn('malformed', patch_output)
self.assertNotIn('failed', patch_output.lower())
codelisting.was_checked = True
with open(os.path.join(self.tempdir, 'superlists', codelisting.filename)) as f:
print(f.read())
os.remove(tf.name)
self.pos += 1
codelisting.was_written = True
def run_command(self, command, cwd=None, user_input=None, ignore_errors=False):
self.assertEqual(
type(command), Command,
"passed a non-Command to run-command:\n%s" % (command,)
)
if command == 'git push':
#.........这里部分代码省略.........
示例3: ChapterTest
# 需要导入模块: from sourcetree import SourceTree [as 别名]
# 或者: from sourcetree.SourceTree import cleanup [as 别名]
class ChapterTest(unittest.TestCase):
maxDiff = None
def setUp(self):
self.sourcetree = SourceTree()
self.tempdir = self.sourcetree.tempdir
self.processes = []
self.pos = 0
self.dev_server_running = False
self.current_server_cd = None
self.current_server_exports = {}
def tearDown(self):
self.sourcetree.cleanup()
def parse_listings(self):
base_dir = os.path.split(os.path.abspath(os.path.dirname(__file__)))[0]
filename = self.chapter_name + '.html'
with open(os.path.join(base_dir, filename), encoding='utf-8') as f:
raw_html = f.read()
parsed_html = html.fromstring(raw_html)
all_nodes = parsed_html.cssselect('.exampleblock.sourcecode, div:not(.sourcecode) div.listingblock')
listing_nodes = []
for ix, node in enumerate(all_nodes):
prev = all_nodes[ix - 1]
if node not in list(prev.iterdescendants()):
listing_nodes.append(node)
self.listings = [p for n in listing_nodes for p in parse_listing(n)]
def check_final_diff(self, ignore=None, diff=None):
if diff is None:
diff = self.run_command(Command(
'git diff -w repo/{}'.format(self.chapter_name)
))
try:
print('checking final diff', diff)
except io.BlockingIOError:
pass
self.assertNotIn('fatal:', diff)
start_marker = 'diff --git a/\n'
commit = Commit.from_diff(start_marker + diff)
if ignore is None:
if commit.lines_to_add:
self.fail('Found lines to add in diff:\n{}'.format(commit.lines_to_add))
if commit.lines_to_remove:
self.fail('Found lines to remove in diff:\n{}'.format(commit.lines_to_remove))
return
if "moves" in ignore:
ignore.remove("moves")
difference_lines = commit.deleted_lines + commit.new_lines
else:
difference_lines = commit.lines_to_add + commit.lines_to_remove
for line in difference_lines:
if any(ignorable in line for ignorable in ignore):
continue
self.fail('Found divergent line in diff:\n{}'.format(line))
def start_with_checkout(self):
update_sources_for_chapter(self.chapter_name, self.previous_chapter)
self.sourcetree.start_with_checkout(self.chapter_name, self.previous_chapter)
# simulate virtualenv folder
self.sourcetree.run_command('mkdir -p virtualenv/bin virtualenv/lib')
def write_to_file(self, codelisting):
self.assertEqual(
type(codelisting), CodeListing,
"passed a non-Codelisting to write_to_file:\n%s" % (codelisting,)
)
print('writing to file', codelisting.filename)
write_to_file(codelisting, self.tempdir)
def apply_patch(self, codelisting):
tf = tempfile.NamedTemporaryFile(delete=False)
tf.write(codelisting.contents.encode('utf8'))
tf.write('\n'.encode('utf8'))
tf.close()
print('patch:\n', codelisting.contents)
patch_output = self.run_command(
Command('patch --fuzz=3 --no-backup-if-mismatch %s %s' % (codelisting.filename, tf.name))
)
print(patch_output)
self.assertNotIn('malformed', patch_output)
self.assertNotIn('failed', patch_output.lower())
codelisting.was_checked = True
with open(os.path.join(self.tempdir, codelisting.filename)) as f:
print(f.read())
os.remove(tf.name)
self.pos += 1
codelisting.was_written = True
#.........这里部分代码省略.........