@@ -138,6 +138,8 @@ class Release:
138138 release_id : int
139139 tag_name : str
140140 assets : list = dataclasses .field (default_factory = list )
141+ draft : bool = True
142+ prerelease : bool = False
141143 # fault0 and fault1 are called before and after receiving the first
142144 # chunk of a PUT request, respectively. Each is called once per
143145 # release - the first upload that hits it will disarm it.
@@ -157,14 +159,15 @@ def render(self) -> dict:
157159 "node_id" : "fakenode" ,
158160 "tag_name" : self .tag_name ,
159161 "target_commitish" : "main" ,
160- "draft" : False ,
161- "prerelease" : True ,
162+ "draft" : self . draft ,
163+ "prerelease" : self . prerelease ,
162164 "assets" : [i .render () for i in self .assets ],
163165 }
164166
165167
166168releases = [
167169 Release (1 , "basic" ),
170+ Release (2 , "draft" ),
168171 Release (11 , "early-drop" , fault0 = drop_connection ),
169172 Release (12 , "late-drop" , fault1 = drop_connection ),
170173 Release (4011 , "early-401" , fault0 = lambda : quart .abort (401 )),
@@ -195,7 +198,17 @@ def get_release(*, tag=None, release=None) -> Release:
195198
196199@app .route ("/repos/<org>/<repo>/releases/tags/<tag>" )
197200async def get_release_by_tag (org , repo , tag ):
198- return get_release (tag = tag ).render ()
201+ release = get_release (tag = tag )
202+ if release .draft :
203+ quart .abort (
204+ 404 , response = quart .jsonify ({"message" : "Not Found" , "status" : "404" })
205+ )
206+ return release .render ()
207+
208+
209+ @app .route ("/repos/<org>/<repo>/releases" )
210+ async def list_releases (org , repo ):
211+ return quart .jsonify ([release .render () for release in releases ])
199212
200213
201214@app .route ("/repos/<org>/<repo>/releases/<int:release>" )
@@ -311,7 +324,7 @@ async def upload_release_distributions(*args):
311324
312325
313326# TODO: test all of [r.tag_name for r in releases]
314- TAGS_TO_TEST = ["basic" , "early-drop" , "late-drop" , "early-403" , "late-403" ]
327+ TAGS_TO_TEST = ["basic" , "draft" , " early-drop" , "late-drop" , "early-403" , "late-403" ]
315328
316329
317330@pytest .mark .parametrize ("tag" , TAGS_TO_TEST )
0 commit comments