- OSC 52 is ignored: any output, cat'd or remote, could plant a command on the clipboard to paste - kill(): terminate(force=True), so a child ignoring HUP and INT does not outlive its tab with the pty open - reader pauses once 64 unparsed reads wait, so a large dump blocks the child at the pty instead of being buffered whole in memory - tests/_bootstrap.py: add every Lib/python3* directory; Package Control puts the libraries under the active plugin host's own directory
36 lines
1003 B
Python
36 lines
1003 B
Python
""" sys.path setup and fakes shared by the test scripts
|
|
|
|
They run as plain scripts (see README), so each imports this first to get the
|
|
sublime stubs and the Package Control libraries on the path.
|
|
"""
|
|
import glob
|
|
import os
|
|
import sys
|
|
|
|
ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
|
# Package Control puts the libraries under the plugin host's own directory
|
|
ST_LIBS = sorted(glob.glob(os.path.expanduser(
|
|
"~/Library/Application Support/Sublime Text/Lib/python3*")))
|
|
|
|
for path in [ROOT] + ST_LIBS + [os.path.join(ROOT, "tests", "stubs")]:
|
|
if path not in sys.path:
|
|
sys.path.insert(0, path)
|
|
|
|
|
|
class FakeProcess:
|
|
"""Captures what the emulator writes to the pty, one entry per write."""
|
|
|
|
def __init__(self):
|
|
self.writes = []
|
|
|
|
def write(self, data):
|
|
self.writes.append(data)
|
|
|
|
@property
|
|
def written(self):
|
|
return "".join(self.writes)
|
|
|
|
@written.setter
|
|
def written(self, value):
|
|
self.writes = [value] if value else []
|