27 lines
1.1 KiB
Python
27 lines
1.1 KiB
Python
"""Row 323 tester-switch mutant; run only after Sage CLEAR."""
|
|
import hashlib
|
|
import os
|
|
from pathlib import Path
|
|
import subprocess
|
|
|
|
root = Path(__file__).resolve().parents[4]
|
|
source = root / 'docs/guides/case1-business.mosaic-stack.json'
|
|
fixed = source.read_bytes()
|
|
needle = b'"bus.tester": true'
|
|
assert fixed.count(needle) == 1
|
|
try:
|
|
source.write_bytes(fixed.replace(needle, b'"bus.tester": false'))
|
|
result = subprocess.run([
|
|
'timeout', '-k', '10', '90', 'node', '--test', '--test-reporter=tap',
|
|
'--test-name-pattern=row 323: committed Case 1 document loads',
|
|
'packages/business/tests/case1-business-file.test.mjs',
|
|
], cwd=root, env=os.environ, text=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
|
|
Path(__file__).with_suffix('.log').write_text(result.stdout)
|
|
print(f'bus.tester mutant: exit {result.returncode}', flush=True)
|
|
assert result.returncode == 1, result.stdout
|
|
assert '# fail 1\n' in result.stdout and 'false !== true' in result.stdout, result.stdout
|
|
finally:
|
|
source.write_bytes(fixed)
|
|
assert source.read_bytes() == fixed
|
|
print('restored sha256 ' + hashlib.sha256(fixed).hexdigest(), flush=True)
|