@@ -553,3 +553,60 @@ def test_delete_submission_while_locked(db: Session, client: TestClient, logged_
553
553
# Verify that it is still there
554
554
response = client .request (method = "GET" , url = f"/api/metadata_submission/{ submission .id } " )
555
555
assert response .status_code == 200
556
+
557
+
558
+ def test_sync_submission_templates (db : Session , client : TestClient , logged_in_user ):
559
+ template = "foo"
560
+ submission = fakes .MetadataSubmissionFactory (
561
+ author = logged_in_user ,
562
+ author_orcid = logged_in_user .orcid ,
563
+ locked_by = logged_in_user ,
564
+ lock_updated = datetime .utcnow (),
565
+ )
566
+ fakes .SubmissionRoleFactory (
567
+ submission = submission ,
568
+ submission_id = submission .id ,
569
+ user_orcid = logged_in_user .orcid ,
570
+ role = SubmissionEditorRole .owner ,
571
+ )
572
+ payload = json .loads (
573
+ SubmissionMetadataSchemaPatch (** submission .__dict__ ).json (exclude_unset = True )
574
+ )
575
+ payload ["metadata_submission" ]["templates" ] = [template ]
576
+ db .commit ()
577
+
578
+ _ = client .request (
579
+ method = "PATCH" , url = f"/api/metadata_submission/{ submission .id } " , json = payload
580
+ )
581
+ response = client .request (method = "GET" , url = f"/api/metadata_submission/{ submission .id } " )
582
+ assert response .status_code == 200
583
+ assert len (response .json ()["templates" ]) == 1
584
+ assert response .json ()["templates" ][0 ] == template
585
+
586
+
587
+ def test_sync_submission_study_name (db : Session , client : TestClient , logged_in_user ):
588
+ expected_val = "my study"
589
+ submission = fakes .MetadataSubmissionFactory (
590
+ author = logged_in_user ,
591
+ author_orcid = logged_in_user .orcid ,
592
+ locked_by = logged_in_user ,
593
+ lock_updated = datetime .utcnow (),
594
+ )
595
+ fakes .SubmissionRoleFactory (
596
+ submission = submission ,
597
+ submission_id = submission .id ,
598
+ user_orcid = logged_in_user .orcid ,
599
+ role = SubmissionEditorRole .owner ,
600
+ )
601
+ payload = json .loads (
602
+ SubmissionMetadataSchemaPatch (** submission .__dict__ ).json (exclude_unset = True )
603
+ )
604
+ payload ["metadata_submission" ]["studyForm" ]["studyName" ] = expected_val
605
+ db .commit ()
606
+
607
+ _ = client .request (
608
+ method = "PATCH" , url = f"/api/metadata_submission/{ submission .id } " , json = payload
609
+ )
610
+ response = client .request (method = "GET" , url = f"/api/metadata_submission/{ submission .id } " )
611
+ assert response .status_code == 200
612
+ assert response .json ()["study_name" ] == expected_val
0 commit comments