dirstate: wrap repository change in appropriate context in `test-context`
authorPierre-Yves David <pierre-yves.david@octobus.net>
Wed, 25 Jan 2023 12:56:26 +0100
changeset 50040 d41960df197e
parent 50039 7b289a70c2c8
child 50041 1346db77e14d
dirstate: wrap repository change in appropriate context in `test-context` We need the `wlock` (to add files), the `lock` (to commit), a `transaction` (to commit) and a `changing_files` context (to add files). Strictly speaking, we could let the commit take the `lock` and create a `transaction`, but it seems more consistent that way.
tests/test-context.py
--- a/tests/test-context.py	Wed Jan 25 12:57:52 2023 +0100
+++ b/tests/test-context.py	Wed Jan 25 12:56:26 2023 +0100
@@ -42,8 +42,10 @@
 os.utime('foo', (1000, 1000))
 
 # add+commit 'foo'
-repo[None].add([b'foo'])
-repo.commit(text=b'commit1', date=b"0 0")
+with repo.wlock(), repo.lock(), repo.transaction(b'test-context'):
+    with repo.dirstate.changing_files(repo):
+        repo[None].add([b'foo'])
+    repo.commit(text=b'commit1', date=b"0 0")
 
 d = repo[None][b'foo'].date()
 if os.name == 'nt':
@@ -108,16 +110,20 @@
 
 repo.wwrite(b'bar-m', b'bar-m\n', b'')
 repo.wwrite(b'bar-r', b'bar-r\n', b'')
-repo[None].add([b'bar-m', b'bar-r'])
-repo.commit(text=b'add bar-m, bar-r', date=b"0 0")
+with repo.wlock(), repo.lock(), repo.transaction(b'test-context'):
+    with repo.dirstate.changing_files(repo):
+        repo[None].add([b'bar-m', b'bar-r'])
+    repo.commit(text=b'add bar-m, bar-r', date=b"0 0")
 
 # ancestor "wcctx ~ 1"
 actx1 = repo[b'.']
 
 repo.wwrite(b'bar-m', b'bar-m bar-m\n', b'')
 repo.wwrite(b'bar-a', b'bar-a\n', b'')
-repo[None].add([b'bar-a'])
-repo[None].forget([b'bar-r'])
+with repo.wlock(), repo.lock(), repo.transaction(b'test-context'):
+    with repo.dirstate.changing_files(repo):
+        repo[None].add([b'bar-a'])
+        repo[None].forget([b'bar-r'])
 
 # status at this point:
 #   M bar-m
@@ -237,7 +243,8 @@
 with repo.wlock(), repo.lock(), repo.transaction(b'test'):
     with open(b'4', 'wb') as f:
         f.write(b'4')
-    repo.dirstate.set_tracked(b'4')
+    with repo.dirstate.changing_files(repo):
+        repo.dirstate.set_tracked(b'4')
     repo.commit(b'4')
     revsbefore = len(repo.changelog)
     repo.invalidate(clearfilecache=True)