Skip to content

Commit 964442d

Browse files
committed
Add tests for syncing submission properties
1 parent 532211f commit 964442d

File tree

1 file changed

+57
-0
lines changed

1 file changed

+57
-0
lines changed

tests/test_submission.py

+57
Original file line numberDiff line numberDiff line change
@@ -553,3 +553,60 @@ def test_delete_submission_while_locked(db: Session, client: TestClient, logged_
553553
# Verify that it is still there
554554
response = client.request(method="GET", url=f"/api/metadata_submission/{submission.id}")
555555
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

Comments
 (0)