示例#1
0
 def test_monitor(self):
     """\
     `monitor` observes changes to a given merge proposal and issues
     `ObjectModifiedEvent` events if there are any.
     """
     merge_proposal = self.factory.makeBranchMergeProposal()
     with EventRecorder() as event_recorder:
         # No event is issued when nothing is changed.
         with BranchMergeProposalDelta.monitor(merge_proposal):
             pass  # Don't make changes.
         self.assertEqual(0, len(event_recorder.events))
         # When one or more properties (of interest to
         # BranchMergeProposalDelta) are changed, a single event is issued.
         with BranchMergeProposalDelta.monitor(merge_proposal):
             merge_proposal.commit_message = "foo"
             merge_proposal.whiteboard = "bar"
         self.assertEqual(1, len(event_recorder.events))
         [event] = event_recorder.events
         self.assertIsInstance(event, ObjectModifiedEvent)
         self.assertEqual(merge_proposal, event.object)
         self.assertContentEqual(["commit_message", "whiteboard"],
                                 event.edited_fields)
示例#2
0
 def run(self):
     """See `IRunnableJob`."""
     self.checkReady()
     if self.branch_merge_proposal.source_branch is not None:
         server_context = server(get_ro_server(), no_replace=True)
     else:
         # A no-op context manager.  (This could be simplified with
         # contextlib.ExitStack from Python 3.3.)
         server_context = contextmanager(lambda: (None for _ in [None]))()
         # Update related bug links based on commits in the source branch.
         self.branch_merge_proposal.updateRelatedBugsFromSource()
     with server_context:
         with BranchMergeProposalDelta.monitor(self.branch_merge_proposal):
             PreviewDiff.fromBranchMergeProposal(self.branch_merge_proposal)
示例#3
0
 def test_monitor(self):
     """\
     `monitor` observes changes to a given merge proposal and issues
     `ObjectModifiedEvent` events if there are any.
     """
     merge_proposal = self.factory.makeBranchMergeProposal()
     with EventRecorder() as event_recorder:
         # No event is issued when nothing is changed.
         with BranchMergeProposalDelta.monitor(merge_proposal):
             pass  # Don't make changes.
         self.assertEqual(0, len(event_recorder.events))
         # When one or more properties (of interest to
         # BranchMergeProposalDelta) are changed, a single event is issued.
         with BranchMergeProposalDelta.monitor(merge_proposal):
             merge_proposal.commit_message = "foo"
             merge_proposal.whiteboard = "bar"
         self.assertEqual(1, len(event_recorder.events))
         [event] = event_recorder.events
         self.assertIsInstance(event, ObjectModifiedEvent)
         self.assertEqual(merge_proposal, event.object)
         self.assertContentEqual(
             ["commit_message", "whiteboard"],
             event.edited_fields)
 def run(self):
     """See `IRunnableJob`."""
     self.checkReady()
     with server(get_ro_server(), no_replace=True):
         with BranchMergeProposalDelta.monitor(self.branch_merge_proposal):
             PreviewDiff.fromBranchMergeProposal(self.branch_merge_proposal)
示例#5
0
 def run(self):
     """See `IRunnableJob`."""
     self.checkReady()
     with server(get_ro_server(), no_replace=True):
         with BranchMergeProposalDelta.monitor(self.branch_merge_proposal):
             PreviewDiff.fromBranchMergeProposal(self.branch_merge_proposal)