@@ -29,7 +29,7 @@ def noop(cls) -> Self:
2929 def prompt (cls ) -> Self :
3030 return cls ({"PROMPT" : lambda goal : goal .prompt })
3131
32- def act (self , goal : Goal , toolbox : Toolbox ) -> Action :
32+ async def act (self , goal : Goal , toolbox : Toolbox ) -> Action :
3333 for key , value in self ._contents .items ():
3434 path = PurePosixPath (key )
3535 if value is None :
@@ -62,37 +62,41 @@ def _commit_files(self, ref: str) -> frozenset[str]:
6262 def _checkout (self ) -> None :
6363 self ._repo .git ("checkout" , "--" , "." )
6464
65- def test_generate_draft (self ) -> None :
65+ @pytest .mark .asyncio
66+ async def test_generate_draft (self ) -> None :
6667 self ._fs .write ("p1" , "a" )
67- self ._drafter .generate_draft ("hello" , _SimpleBot ({"p1" : "A" }))
68+ await self ._drafter .generate_draft ("hello" , _SimpleBot ({"p1" : "A" }))
6869 assert len (self ._commits ()) == 1
6970 assert len (self ._commits ("@{u}" )) == 3
7071 assert self ._fs .read ("p1" ) == "a"
7172
72- def test_generate_empty_draft (self ) -> None :
73- self ._drafter .generate_draft ("hello" , _SimpleBot .noop ())
73+ @pytest .mark .asyncio
74+ async def test_generate_empty_draft (self ) -> None :
75+ await self ._drafter .generate_draft ("hello" , _SimpleBot .noop ())
7476 assert len (self ._commits ()) == 1
7577 assert len (self ._commits ("@{u}" )) == 2
7678
77- def test_generate_draft_merge (self ) -> None :
79+ @pytest .mark .asyncio
80+ async def test_generate_draft_merge (self ) -> None :
7881 self ._fs .write ("p1" , "a" )
7982
80- self ._drafter .generate_draft (
83+ await self ._drafter .generate_draft (
8184 "hello" , _SimpleBot ({"p2" : "b" }), merge_strategy = "ignore-all-space"
8285 )
8386 # No sync(merge) commit since no changes happened between.
8487 assert len (self ._commits ()) == 4 # init, sync(prompt), prompt, merge
8588 assert self ._fs .read ("p1" ) == "a"
8689 assert self ._fs .read ("p2" ) == "b"
8790
88- def test_generate_draft_merge_no_conflict (self ) -> None :
91+ @pytest .mark .asyncio
92+ async def test_generate_draft_merge_no_conflict (self ) -> None :
8993 self ._fs .write ("p1" , "a" )
9094
9195 def update (_goal : Goal ) -> str :
9296 self ._fs .write ("p2" , "b" )
9397 return "A"
9498
95- self ._drafter .generate_draft (
99+ await self ._drafter .generate_draft (
96100 "hello" ,
97101 _SimpleBot ({"p1" : update }),
98102 merge_strategy = "ignore-all-space" ,
@@ -101,70 +105,81 @@ def update(_goal: Goal) -> str:
101105 assert self ._fs .read ("p1" ) == "A"
102106 assert self ._fs .read ("p2" ) == "b"
103107
104- def test_generate_draft_merge_theirs (self ) -> None :
108+ @pytest .mark .asyncio
109+ async def test_generate_draft_merge_theirs (self ) -> None :
105110 self ._fs .write ("p1" , "a" )
106111
107112 def update (_goal : Goal ) -> str :
108113 self ._fs .write ("p1" , "b" )
109114 return "A"
110115
111- self ._drafter .generate_draft (
116+ await self ._drafter .generate_draft (
112117 "hello" , _SimpleBot ({"p1" : update }), merge_strategy = "theirs"
113118 )
114119 # sync(merge) commit here since p1 was updated separately.
115120 assert len (self ._commits ()) == 5 # init, sync, prompt, sync, merge
116121 assert self ._fs .read ("p1" ) == "A"
117122
118- def test_generate_draft_merge_conflict (self ) -> None :
123+ @pytest .mark .asyncio
124+ async def test_generate_draft_merge_conflict (self ) -> None :
119125 self ._fs .write ("p1" , "a" )
120126
121127 def update (_goal : Goal ) -> str :
122128 self ._fs .write ("p1" , "b" )
123129 return "A"
124130
125131 with pytest .raises (GitError ):
126- self ._drafter .generate_draft (
132+ await self ._drafter .generate_draft (
127133 "hello" ,
128134 _SimpleBot ({"p1" : update }),
129135 merge_strategy = "ignore-all-space" ,
130136 )
131137
132- def test_generate_outside_branch (self ) -> None :
138+ @pytest .mark .asyncio
139+ async def test_generate_outside_branch (self ) -> None :
133140 self ._repo .git ("checkout" , "--detach" )
134141 with pytest .raises (RuntimeError ):
135- self ._drafter .generate_draft ("ok" , _SimpleBot .noop ())
142+ await self ._drafter .generate_draft ("ok" , _SimpleBot .noop ())
136143
137- def test_generate_empty_prompt (self ) -> None :
144+ @pytest .mark .asyncio
145+ async def test_generate_empty_prompt (self ) -> None :
138146 with pytest .raises (ValueError ):
139- self ._drafter .generate_draft ("" , _SimpleBot .noop ())
147+ await self ._drafter .generate_draft ("" , _SimpleBot .noop ())
140148
141- def test_generate_reuse_branch (self ) -> None :
149+ @pytest .mark .asyncio
150+ async def test_generate_reuse_branch (self ) -> None :
142151 bot = _SimpleBot ({"prompt" : lambda goal : goal .prompt })
143- self ._drafter .generate_draft ("prompt1" , bot , "theirs" )
144- self ._drafter .generate_draft ("prompt2" , bot , "theirs" )
152+ await self ._drafter .generate_draft ("prompt1" , bot , "theirs" )
153+ await self ._drafter .generate_draft ("prompt2" , bot , "theirs" )
145154 assert self ._fs .read ("prompt" ) == "prompt2"
146155
147- def test_delete_unknown_file (self ) -> None :
148- self ._drafter .generate_draft ("hello" , _SimpleBot ({"p1" : None }))
156+ @pytest .mark .asyncio
157+ async def test_delete_unknown_file (self ) -> None :
158+ await self ._drafter .generate_draft ("hello" , _SimpleBot ({"p1" : None }))
149159
150- def test_quit_keeps_changes (self ) -> None :
160+ @pytest .mark .asyncio
161+ async def test_quit_keeps_changes (self ) -> None :
151162 self ._fs .write ("p1.txt" , "a1" )
152- self ._drafter .generate_draft ("hello" , _SimpleBot .prompt (), "theirs" )
163+ await self ._drafter .generate_draft (
164+ "hello" , _SimpleBot .prompt (), "theirs"
165+ )
153166 self ._fs .write ("p1.txt" , "a2" )
154167 self ._drafter .quit_folio ()
155168 assert self ._fs .read ("p1.txt" ) == "a2"
156169 assert self ._fs .read ("PROMPT" ) == "hello"
157170
158- def test_latest_draft_prompt (self ) -> None :
171+ @pytest .mark .asyncio
172+ async def test_latest_draft_prompt (self ) -> None :
159173 bot = _SimpleBot .noop ()
160174
161175 prompt1 = "First prompt"
162- self ._drafter .generate_draft (prompt1 , bot )
176+ await self ._drafter .generate_draft (prompt1 , bot )
163177 assert self ._drafter .latest_draft_prompt () == prompt1
164178
165179 prompt2 = "Second prompt"
166- self ._drafter .generate_draft (prompt2 , bot )
180+ await self ._drafter .generate_draft (prompt2 , bot )
167181 assert self ._drafter .latest_draft_prompt () == prompt2
168182
169- def test_latest_draft_prompt_no_active_branch (self ) -> None :
183+ @pytest .mark .asyncio
184+ async def test_latest_draft_prompt_no_active_branch (self ) -> None :
170185 assert self ._drafter .latest_draft_prompt () is None
0 commit comments