in solutions_builder/template_root/{{common_path if has_common}}/src/common/testing/firestore_emulator.py [0:0]
def firestore_emulator():
is_windows = bool(platform.system() == "Windows")
if is_windows:
emulator = subprocess.Popen(
"firebase emulators:start --only firestore --project fake-project",
shell=True)
else:
emulator = subprocess.Popen(
"firebase emulators:start --only firestore --project fake-project",
shell=True,
preexec_fn=os.setsid)
time.sleep(15)
os.environ["FIRESTORE_EMULATOR_HOST"] = "localhost:8080"
os.environ["GOOGLE_CLOUD_PROJECT"] = "fake-project"
os.environ["PROJECT_ID"] = "fake-project"
# yield so emulator isn't recreated each test
yield emulator
if is_windows:
os.kill(emulator.pid, signal.CTRL_BREAK_EVENT)
else:
os.killpg(os.getpgid(emulator.pid), signal.SIGTERM)
# delete debug files
# some get deleted, not all
try:
os.remove("firestore-debug.log")
os.remove("ui-debug.log")
except OSError:
pass