mirror of
https://github.com/ArchiveBox/ArchiveBox.git
synced 2026-04-06 07:47:53 +10:00
39 lines
1.5 KiB
Python
39 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')
|
|
|