""" 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 []