mirror of
https://github.com/ArchiveBox/ArchiveBox.git
synced 2026-04-06 07:47:53 +10:00
38 lines
1.5 KiB
Python
38 lines
1.5 KiB
Python
import os
|
|
import unittest
|
|
from pathlib import Path
|
|
|
|
|
|
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "archivebox.settings")
|
|
|
|
|
|
from archivebox.machine.models import Process
|
|
|
|
|
|
class TestProcessRuntimePaths(unittest.TestCase):
|
|
def test_hook_processes_use_isolated_runtime_dir(self):
|
|
process = Process(
|
|
process_type=Process.TypeChoices.HOOK,
|
|
pwd="/tmp/archive/example/chrome",
|
|
cmd=["node", "/plugins/chrome/on_Snapshot__11_chrome_wait.js", "--url=https://example.com"],
|
|
)
|
|
|
|
expected_dir = Path("/tmp/archive/example/chrome/.hooks/on_Snapshot__11_chrome_wait.js")
|
|
self.assertEqual(process.runtime_dir, expected_dir)
|
|
self.assertEqual(process.stdout_file, expected_dir / "stdout.log")
|
|
self.assertEqual(process.stderr_file, expected_dir / "stderr.log")
|
|
self.assertEqual(process.pid_file, expected_dir / "process.pid")
|
|
|
|
def test_non_hook_processes_keep_runtime_files_in_pwd(self):
|
|
process = Process(
|
|
process_type=Process.TypeChoices.WORKER,
|
|
pwd="/tmp/archive/example",
|
|
cmd=["archivebox", "run", "--snapshot-id", "123"],
|
|
)
|
|
|
|
expected_dir = Path("/tmp/archive/example")
|
|
self.assertEqual(process.runtime_dir, expected_dir)
|
|
self.assertEqual(process.stdout_file, expected_dir / "stdout.log")
|
|
self.assertEqual(process.stderr_file, expected_dir / "stderr.log")
|
|
self.assertEqual(process.pid_file, expected_dir / "process.pid")
|