@@ -66,6 +66,14 @@ def test_workspace_view_with_file(client_with_permission, ui_options):
6666 assert "foobar" in response .rendered_content
6767
6868
69+ def test_workspace_view_with_html_file (client_with_permission , ui_options ):
70+ factories .write_workspace_file (
71+ "workspace" , "file.html" , "<html><body>foobar</body></html>"
72+ )
73+ response = client_with_permission .get ("/workspaces/view/workspace/file.html" )
74+ assert "foobar" in response .rendered_content
75+
76+
6977def test_workspace_view_with_404 (client_with_permission ):
7078 factories .create_workspace ("workspace" )
7179 response = client_with_permission .get ("/workspaces/view/workspace/no_such_file.txt" )
@@ -80,6 +88,14 @@ def test_workspace_view_redirects_to_directory(client_with_permission):
8088 assert response .headers ["Location" ] == "/workspaces/view/workspace/some_dir/"
8189
8290
91+ def test_workspace_view_directory_with_sub_directory (client_with_permission ):
92+ workspace = factories .create_workspace ("workspace" )
93+ factories .write_workspace_file (workspace , "sub_dir/file.txt" )
94+ response = client_with_permission .get ("/workspaces/view/workspace" , follow = True )
95+ assert "sub_dir" in response .rendered_content
96+ assert "file.txt" in response .rendered_content
97+
98+
8399def test_workspace_view_redirects_to_file (client_with_permission ):
84100 factories .write_workspace_file ("workspace" , "file.txt" )
85101 response = client_with_permission .get ("/workspaces/view/workspace/file.txt/" )
@@ -309,9 +325,7 @@ def test_request_view_with_file(client_with_permission, ui_options):
309325 release_request = factories .create_release_request ("workspace" )
310326 factories .write_workspace_file ("workspace" , "file.txt" , "foobar" )
311327 factories .create_filegroup (
312- release_request ,
313- group_name = "default_group" ,
314- filepaths = ["file.txt" ]
328+ release_request , group_name = "default_group" , filepaths = ["file.txt" ]
315329 )
316330
317331 response = client_with_permission .get (
@@ -322,14 +336,32 @@ def test_request_view_with_file(client_with_permission, ui_options):
322336
323337
324338def test_request_view_with_submitted_request (client_with_permission , ui_options ):
325- release_request = factories .create_release_request ("workspace" , status = Status .SUBMITTED )
339+ release_request = factories .create_release_request (
340+ "workspace" , status = Status .SUBMITTED
341+ )
326342 response = client_with_permission .get (
327343 f"/requests/view/{ release_request .id } " , follow = True
328344 )
329345 assert "Reject Request" in response .rendered_content
330346 assert "Release Files" in response .rendered_content
331347
332348
349+ def test_request_view_with_authored_request_file (client_with_permission , ui_options ):
350+ release_request = factories .create_release_request (
351+ "workspace" ,
352+ user = User .from_session (client_with_permission .session ),
353+ status = Status .SUBMITTED ,
354+ )
355+ factories .write_workspace_file ("workspace" , "file.txt" , "foobar" )
356+ factories .create_filegroup (
357+ release_request , group_name = "default_group" , filepaths = ["file.txt" ]
358+ )
359+ response = client_with_permission .get (
360+ f"/requests/view/{ release_request .id } /file.txt" , follow = True
361+ )
362+ assert "Remove this file" in response .rendered_content
363+
364+
333365def test_request_view_with_404 (client_with_permission ):
334366 release_request = factories .create_release_request ("workspace" )
335367 response = client_with_permission .get (
@@ -521,12 +553,16 @@ def test_requests_release_jobserver_403(client_with_permission, release_files_st
521553 "content_type,content,should_contain_iframe" ,
522554 [
523555 ("text/plain" , b"An error from job-server" , False ),
524- ("text/html" , b"<p>An error from job-server</p>" , True )
525- ]
556+ ("text/html" , b"<p>An error from job-server</p>" , True ),
557+ ],
526558)
527559def test_requests_release_jobserver_403_with_debug (
528- client_with_permission , release_files_stubber , settings ,
529- content_type , content , should_contain_iframe
560+ client_with_permission ,
561+ release_files_stubber ,
562+ settings ,
563+ content_type ,
564+ content ,
565+ should_contain_iframe ,
530566):
531567 settings .DEBUG = True
532568 release_request = factories .create_release_request (
0 commit comments