22# -*- coding: utf-8 -*-
33
44
5+ from pathlib import Path
56import datetime , os , shutil
67import io
78import tarfile , tempfile , mailbox
@@ -47,6 +48,7 @@ def setUp(self):
4748 self .review_dir = self .tempdir ('review' )
4849 self .old_document_path_pattern = settings .DOCUMENT_PATH_PATTERN
4950 settings .DOCUMENT_PATH_PATTERN = self .review_dir + "/{doc.type_id}/"
51+ (Path (settings .FTP_DIR ) / "review" ).mkdir ()
5052
5153 self .review_subdir = os .path .join (self .review_dir , "review" )
5254 if not os .path .exists (self .review_subdir ):
@@ -57,6 +59,13 @@ def tearDown(self):
5759 settings .DOCUMENT_PATH_PATTERN = self .old_document_path_pattern
5860 super ().tearDown ()
5961
62+ def verify_review_files_were_written (self , assignment , expected_content = "This is a review\n with two lines" ):
63+ review_file = Path (self .review_subdir ) / f"{ assignment .review .name } .txt"
64+ content = review_file .read_text ()
65+ self .assertEqual (content , expected_content )
66+ review_ftp_file = Path (settings .FTP_DIR ) / "review" / review_file .name
67+ self .assertTrue (review_file .samefile (review_ftp_file ))
68+
6069 def test_request_review (self ):
6170 doc = WgDraftFactory (group__acronym = 'mars' ,rev = '01' )
6271 NewRevisionDocEventFactory (doc = doc ,rev = '01' )
@@ -830,8 +839,7 @@ def test_complete_review_upload_content(self):
830839 self .assertTrue (assignment .review_request .team .acronym .lower () in assignment .review .name )
831840 self .assertTrue (assignment .review_request .doc .rev in assignment .review .name )
832841
833- with io .open (os .path .join (self .review_subdir , assignment .review .name + ".txt" )) as f :
834- self .assertEqual (f .read (), "This is a review\n with two lines" )
842+ self .verify_review_files_were_written (assignment )
835843
836844 self .assertEqual (len (outbox ), 1 )
837845 self .assertIn (assignment .review_request .team .list_email , outbox [0 ]["To" ])
@@ -885,8 +893,7 @@ def test_complete_review_enter_content(self):
885893 completed_time_diff = timezone .now () - assignment .completed_on
886894 self .assertLess (completed_time_diff , datetime .timedelta (seconds = 10 ))
887895
888- with io .open (os .path .join (self .review_subdir , assignment .review .name + ".txt" )) as f :
889- self .assertEqual (f .read (), "This is a review\n with two lines" )
896+ self .verify_review_files_were_written (assignment )
890897
891898 self .assertEqual (len (outbox ), 1 )
892899 self .assertIn (assignment .review_request .team .list_email , outbox [0 ]["To" ])
@@ -926,8 +933,7 @@ def test_complete_review_enter_content_by_secretary(self):
926933 self .assertLess (event0_time_diff , datetime .timedelta (seconds = 10 ))
927934 self .assertEqual (events [1 ].time , datetime .datetime (2012 , 12 , 24 , 12 , 13 , 14 , tzinfo = DEADLINE_TZINFO ))
928935
929- with io .open (os .path .join (self .review_subdir , assignment .review .name + ".txt" )) as f :
930- self .assertEqual (f .read (), "This is a review\n with two lines" )
936+ self .verify_review_files_were_written (assignment )
931937
932938 self .assertEqual (len (outbox ), 1 )
933939 self .assertIn (assignment .review_request .team .list_email , outbox [0 ]["To" ])
@@ -1013,8 +1019,7 @@ def test_complete_review_link_to_mailing_list(self, mock):
10131019 assignment = reload_db_objects (assignment )
10141020 self .assertEqual (assignment .state_id , "completed" )
10151021
1016- with io .open (os .path .join (self .review_subdir , assignment .review .name + ".txt" )) as f :
1017- self .assertEqual (f .read (), "This is a review\n with two lines" )
1022+ self .verify_review_files_were_written (assignment )
10181023
10191024 self .assertEqual (len (outbox ), 0 )
10201025 self .assertTrue ("http://example.com" in assignment .review .external_url )
@@ -1063,8 +1068,7 @@ def test_complete_unsolicited_review_link_to_mailing_list_by_secretary(self, moc
10631068 self .assertEqual (assignment .reviewer , rev_role .person .role_email ('reviewer' ))
10641069 self .assertEqual (assignment .state_id , "completed" )
10651070
1066- with io .open (os .path .join (self .review_subdir , assignment .review .name + ".txt" )) as f :
1067- self .assertEqual (f .read (), "This is a review\n with two lines" )
1071+ self .verify_review_files_were_written (assignment )
10681072
10691073 self .assertEqual (len (outbox ), 0 )
10701074 self .assertTrue ("http://example.com" in assignment .review .external_url )
@@ -1172,8 +1176,9 @@ def test_revise_review_enter_content(self):
11721176 self .assertLess (event_time_diff , datetime .timedelta (seconds = 10 ))
11731177 self .assertTrue ('revised' in event1 .desc .lower ())
11741178
1175- with io .open (os .path .join (self .review_subdir , assignment .review .name + ".txt" )) as f :
1176- self .assertEqual (f .read (), "This is a review\n with two lines" )
1179+ # See https://github.com/ietf-tools/datatracker/issues/6941
1180+ # These are _not_ getting written as a new version as intended.
1181+ self .verify_review_files_were_written (assignment )
11771182
11781183 self .assertEqual (len (outbox ), 0 )
11791184
@@ -1200,6 +1205,8 @@ def test_revise_review_enter_content(self):
12001205 # Ensure that a new event was created for the new revision (#2590)
12011206 self .assertNotEqual (event1 .id , event2 .id )
12021207
1208+ self .verify_review_files_were_written (assignment , "This is a revised review" )
1209+
12031210 self .assertEqual (len (outbox ), 0 )
12041211
12051212 def test_edit_comment (self ):
0 commit comments