Ejemplo n.º 1
0
 def test_success_authed(self, auth_fred_bloggs):
     with mock.patch(
             "lumina.database.operations.get_member"
     ) as mock_get_member, mock.patch(
             "lumina.github.submissions.create_generic_submission_issue"
     ) as mock_create_generic_submission_issue, mock.patch(
             "lumina.database.operations.put_submission"
     ) as mock_put_submission:
         submission_request = GenericSubmissionRequest(
             target_type="test",
             target_id="test-page",
             target_name="Test Page",
             target_url="https://example.com/test-page",
             subject="Hi there",
             message="Hello World",
         )
         mock_get_member.return_value = MEMBER_MODEL_FRED_BLOGGS
         mock_create_generic_submission_issue.return_value = GITHUB_ISSUE
         mock_put_submission.return_value = submission_request.to_model(
             submission_id=123,
             submitter_id=auth_fred_bloggs.id,
             member=mock_get_member(),
             github_issue=GITHUB_ISSUE,
         )
         response = client.post(
             "/submissions/message",
             json=submission_request.dict(),
         )
     assert response.status_code == HTTPStatus.OK
     assert response.json() == {
         "id": 123,
         "subject": "Hi there",
         "message": "Hello World",
         "submitter": {
             "id": "fred_bloggs",
             "verified": True,
             "name": "Fred Bloggs"
         },
         "targetId": "test-page",
         "targetName": "Test Page",
         "targetType": "test",
         "targetUrl": "https://example.com/test-page",
         "githubIssue": {
             "closedAt": None,
             "comments": 0,
             "createdAt": "2020-01-01T00:00:00+00:00",
             "number": 123,
             "state": "open",
             "title": "Test issue",
             "updatedAt": "2020-01-01T00:00:00+00:00",
             "url": "https://github.com/newtheatre/lumina-test/issues/123",
         },
     }
Ejemplo n.º 2
0
 def test_success_not_authed(self):
     with mock.patch(
             "lumina.github.submissions.create_generic_submission_issue"
     ) as mock_create_generic_submission_issue, mock.patch(
             "lumina.database.operations.put_submission"
     ) as mock_put_submission:
         submission_request = GenericSubmissionRequest(
             target_type="test",
             target_id="test-page",
             target_name="Test Page",
             target_url="https://example.com/test-page",
             subject="Hi there",
             message="Hello World",
             submitter=dict(
                 id="c0286cf1-15cc-4e43-93de-aaca592e447b",
                 name="Fred Bloggs",
                 year_of_graduation=2020,
                 email="*****@*****.**",
             ),
         )
         mock_create_generic_submission_issue.return_value = GITHUB_ISSUE
         mock_put_submission.return_value = submission_request.to_model(
             submission_id=123,
             submitter_id=submission_request.submitter.id,
             member=None,
             github_issue=GITHUB_ISSUE,
         )
         response = client.post(
             "/submissions/message",
             # This mess needed as pydantic doesn't serialise UUID by default
             # See https://github.com/samuelcolvin/pydantic/issues/1157
             json={
                 **submission_request.dict(),
                 "submitter": {
                     **submission_request.submitter.dict(),
                     "id":
                     str(submission_request.submitter.id),
                 },
             },
         )
     assert response.status_code == HTTPStatus.OK
     assert response.json() == {
         "id": 123,
         "subject": "Hi there",
         "message": "Hello World",
         "submitter": {
             "id": "c0286cf1-15cc-4e43-93de-aaca592e447b",
             "verified": False,
             "name": "Fred Bloggs",
         },
         "targetId": "test-page",
         "targetName": "Test Page",
         "targetType": "test",
         "targetUrl": "https://example.com/test-page",
         "githubIssue": {
             "closedAt": None,
             "comments": 0,
             "createdAt": "2020-01-01T00:00:00+00:00",
             "number": 123,
             "state": "open",
             "title": "Test issue",
             "updatedAt": "2020-01-01T00:00:00+00:00",
             "url": "https://github.com/newtheatre/lumina-test/issues/123",
         },
     }