import unittest,tempfile
from pathlib import Path
from dm_verify_contract import save_manifest
class ExclusiveReportTest(unittest.TestCase):
 def test_existing_report_preserved(self):
  with tempfile.TemporaryDirectory() as d:
   p=Path(d)/'report.json'
   save_manifest(p,{'first':True}); before=p.read_bytes()
   with self.assertRaises(FileExistsError):save_manifest(p,{'replacement':True})
   self.assertEqual(p.read_bytes(),before)
   self.assertEqual(p.stat().st_mode & 0o777,0o600)
