File tree Expand file tree Collapse file tree 3 files changed +34
-0
lines changed
Expand file tree Collapse file tree 3 files changed +34
-0
lines changed Original file line number Diff line number Diff line change @@ -58,3 +58,18 @@ def test_reports_mismatched_signature(self):
5858 def test_reports_signature_time (self ):
5959 response = self .client .get ('/devel/reports/signature-time' , follow = True )
6060 self .assertEqual (response .status_code , 200 )
61+
62+ def test_reports_pkgbases (self ):
63+ response = self .client .get ('/devel/reports/old/pkgbases/' )
64+ self .assertEqual (response .status_code , 200 )
65+ self .assertEqual (response ['Content-Type' ], 'text/plain' )
66+
67+ def test_reports_pkgbases_with_username (self ):
68+ response = self .client .get (
69+ f'/devel/reports/uncompressed-man/{ self .user .username } /pkgbases/' )
70+ self .assertEqual (response .status_code , 200 )
71+ self .assertEqual (response ['Content-Type' ], 'text/plain' )
72+
73+ def test_reports_pkgbases_invalid_report (self ):
74+ response = self .client .get ('/devel/reports/nonexistent/pkgbases/' )
75+ self .assertEqual (response .status_code , 404 )
Original file line number Diff line number Diff line change 1212 path ('stats/' , views .stats , name = 'devel-stats' ),
1313 path ('newuser/' , views .new_user_form ),
1414 path ('profile/' , views .change_profile ),
15+ re_path (r'^reports/(?P<report_name>.*)/(?P<username>.*)/pkgbases/$' ,
16+ views .report_pkgbases ),
17+ re_path (r'^reports/(?P<report_name>.*)/pkgbases/$' , views .report_pkgbases ),
1518 re_path (r'^reports/(?P<report_name>.*)/(?P<username>.*)/$' , views .report ),
1619 re_path (r'^reports/(?P<report_name>.*)/$' , views .report ),
1720]
Original file line number Diff line number Diff line change @@ -265,6 +265,22 @@ def change_profile(request):
265265 'profile_form' : profile_form })
266266
267267
268+ @login_required
269+ def report_pkgbases (request , report_name : str , username : str | None = None ) -> HttpResponse :
270+ report = {report .slug : report for report in available_reports ()}.get (report_name , None )
271+ if report is None :
272+ raise Http404
273+
274+ packages = Package .objects .normal ()
275+ if report .slug in ('uncompressed-man' , 'uncompressed-info' ):
276+ packages = report .packages (packages , username )
277+ else :
278+ packages = report .packages (packages )
279+
280+ pkgbases = sorted ({pkg .pkgbase for pkg in packages })
281+ return HttpResponse ('\n ' .join (pkgbases ), content_type = 'text/plain' )
282+
283+
268284@login_required
269285def report (request , report_name , username = None ):
270286 available = {report .slug : report for report in available_reports ()}
You can’t perform that action at this time.
0 commit comments