def test_patch_journal_issues_calls_add_issue_to_journal(self):
     self.request.matchdict["journal_id"] = "1678-4596-cr"
     self.request.validated = {"issue": "1678-4596-cr-25-3"}
     MockAddIssueToJournal = Mock()
     self.request.services["add_issue_to_journal"] = MockAddIssueToJournal
     restfulapi.patch_journal_issues(self.request)
     MockAddIssueToJournal.assert_called_once_with(
         id="1678-4596-cr", issue="1678-4596-cr-25-3")
 def test_patch_journal_issues_calls_insert_issue_to_journal_if_index_informed(
         self):
     self.request.matchdict["journal_id"] = "1678-4596-cr"
     self.request.validated = {"issue": "1678-4596-cr-25-3", "index": 0}
     MockAddIssueToJournal = Mock()
     MockInsertIssueToJournal = Mock()
     self.request.services["add_issue_to_journal"] = MockAddIssueToJournal
     self.request.services[
         "insert_issue_to_journal"] = MockInsertIssueToJournal
     restfulapi.patch_journal_issues(self.request)
     MockInsertIssueToJournal.assert_called_once_with(
         id="1678-4596-cr", index=0, issue="1678-4596-cr-25-3")
     MockAddIssueToJournal.assert_not_called()
 def test_patch_journal_issues_returns_204_if_ok(self):
     self.request.matchdict["journal_id"] = "1678-4596-cr"
     commands_data = (
         ("add_issue_to_journal", {
             "issue": "1678-4596-cr-25-3"
         }),
         ("insert_issue_to_journal", {
             "issue": "1678-4596-cr-25-3",
             "index": 2
         }),
     )
     for command, data in commands_data:
         with self.subTest(command=command, data=data):
             self.request.validated = data
             MockPatchJournal = Mock()
             self.request.services[command] = MockPatchJournal
             response = restfulapi.patch_journal_issues(self.request)
             self.assertIsInstance(response, HTTPNoContent)
 def test_patch_journal_issues_returns_404_if_no_journal_found(self):
     self.request.matchdict["journal_id"] = "1678-4596-cr"
     commands_data = (
         ("add_issue_to_journal", {
             "issue": "1678-4596-cr-25-3"
         }),
         ("insert_issue_to_journal", {
             "issue": "1678-4596-cr-25-3",
             "index": 2
         }),
     )
     for command, data in commands_data:
         with self.subTest(command=command, data=data):
             self.request.validated = data
             MockPatchJournal = Mock(
                 side_effect=exceptions.DoesNotExist("Does Not Exist"))
             self.request.services[command] = MockPatchJournal
             response = restfulapi.patch_journal_issues(self.request)
             self.assertIsInstance(response, HTTPNotFound)