diff options
| author | David Pursehouse <david.pursehouse@sonymobile.com> | 2012-07-12 16:16:37 +0900 |
|---|---|---|
| committer | David Pursehouse <david.pursehouse@sonymobile.com> | 2012-07-24 14:53:43 +0900 |
| commit | f48eed76cc12f9e802afe5a150d4b8f7f9a13ec6 (patch) | |
| tree | 7282f3e46be6667884738d3ec7c60d097bd70d1b | |
| parent | 4ba708b194b241b7bbe3ff34d1f6c1d5e9721750 (diff) | |
| download | pygerrit-f48eed76cc12f9e802afe5a150d4b8f7f9a13ec6.tar.gz | |
Add unit tests for event handling
Added unit tests to verify that the correct event classes
are created and contain the correct values.
11 files changed, 311 insertions, 0 deletions
diff --git a/tests/gerrit_stream/unittest_gerrit_stream_events/README b/tests/gerrit_stream/unittest_gerrit_stream_events/README new file mode 100644 index 0000000..fb55dc9 --- /dev/null +++ b/tests/gerrit_stream/unittest_gerrit_stream_events/README @@ -0,0 +1,2 @@ +Checks that the event handling works properly in the +GerritStream class. diff --git a/tests/gerrit_stream/unittest_gerrit_stream_events/change-abandoned-event.txt b/tests/gerrit_stream/unittest_gerrit_stream_events/change-abandoned-event.txt new file mode 100644 index 0000000..5e8e2c3 --- /dev/null +++ b/tests/gerrit_stream/unittest_gerrit_stream_events/change-abandoned-event.txt @@ -0,0 +1,12 @@ +{"type":"change-abandoned", + "change":{"project":"project-name", + "branch":"branch-name", + "id":"Ideadbeefdeadbeefdeadbeefdeadbeefdeadbeef", + "number":"123456", + "subject":"Commit message subject", + "owner":{"name":"Owner Name", + "email":"owner@example.com"}, + "url":"http://review.example.com/123456"}, + "abandoner":{"name":"Abandoner Name", + "email":"abandoner@example.com"}, + "reason":"Abandon reason"} diff --git a/tests/gerrit_stream/unittest_gerrit_stream_events/change-merged-event.txt b/tests/gerrit_stream/unittest_gerrit_stream_events/change-merged-event.txt new file mode 100644 index 0000000..ed6d1fd --- /dev/null +++ b/tests/gerrit_stream/unittest_gerrit_stream_events/change-merged-event.txt @@ -0,0 +1,17 @@ +{"type":"change-merged", + "change":{"project":"project-name", + "branch":"branch-name", + "id":"Ideadbeefdeadbeefdeadbeefdeadbeefdeadbeef", + "number":"123456", + "subject":"Commit message subject", + "owner":{"name":"Owner Name", + "email":"owner@example.com"}, + "url":"http://review.example.com/123456"}, + "patchSet":{"number":"4", + "revision":"deadbeefdeadbeefdeadbeefdeadbeefdeadbeef", + "ref":"refs/changes/56/123456/4", + "uploader":{"name":"Uploader Name", + "email":"uploader@example.com"}, + "createdOn":1341370514}, + "submitter":{"name":"Submitter Name", + "email":"submitter@example.com"}} diff --git a/tests/gerrit_stream/unittest_gerrit_stream_events/change-restored-event.txt b/tests/gerrit_stream/unittest_gerrit_stream_events/change-restored-event.txt new file mode 100644 index 0000000..e403b1e --- /dev/null +++ b/tests/gerrit_stream/unittest_gerrit_stream_events/change-restored-event.txt @@ -0,0 +1,12 @@ +{"type":"change-restored", + "change":{"project":"project-name", + "branch":"branch-name", + "id":"Ideadbeefdeadbeefdeadbeefdeadbeefdeadbeef", + "number":"123456", + "subject":"Commit message subject", + "owner":{"name":"Owner Name", + "email":"owner@example.com"}, + "url":"http://review.example.com/123456"}, + "restorer":{"name":"Restorer Name", + "email":"restorer@example.com"}, + "reason":"Restore reason"} diff --git a/tests/gerrit_stream/unittest_gerrit_stream_events/command b/tests/gerrit_stream/unittest_gerrit_stream_events/command new file mode 100644 index 0000000..d188609 --- /dev/null +++ b/tests/gerrit_stream/unittest_gerrit_stream_events/command @@ -0,0 +1,3 @@ +export PYTHONPATH=$PYTHONPATH:`pwd` + +$TESTDIR/unittests.py diff --git a/tests/gerrit_stream/unittest_gerrit_stream_events/comment-added-event.txt b/tests/gerrit_stream/unittest_gerrit_stream_events/comment-added-event.txt new file mode 100644 index 0000000..00b995d --- /dev/null +++ b/tests/gerrit_stream/unittest_gerrit_stream_events/comment-added-event.txt @@ -0,0 +1,24 @@ +{"type":"comment-added", +"change":{"project":"project-name", + "branch":"branch-name", + "id":"Ideadbeefdeadbeefdeadbeefdeadbeefdeadbeef", + "number":"123456", + "subject":"Commit message subject", + "owner":{"name":"Owner Name", + "email":"owner@example.com"}, + "url":"http://review.example.com/123456"}, + "patchSet":{"number":"4", + "revision":"deadbeefdeadbeefdeadbeefdeadbeefdeadbeef", + "ref":"refs/changes/56/123456/4", + "uploader":{"name":"Uploader Name", + "email":"uploader@example.com"}, + "createdOn":1341370514}, + "author":{"name":"Author Name", + "email":"author@example.com"}, + "approvals":[{"type":"CRVW", + "description":"Code Review", + "value":"1"}, + {"type":"VRIF", + "description":"Verified", + "value":"1"}], + "comment":"Review comment"} diff --git a/tests/gerrit_stream/unittest_gerrit_stream_events/draft-published-event.txt b/tests/gerrit_stream/unittest_gerrit_stream_events/draft-published-event.txt new file mode 100644 index 0000000..24a4242 --- /dev/null +++ b/tests/gerrit_stream/unittest_gerrit_stream_events/draft-published-event.txt @@ -0,0 +1,17 @@ +{"type":"draft-published", + "change":{"project":"project-name", + "branch":"branch-name", + "id":"Ideadbeefdeadbeefdeadbeefdeadbeefdeadbeef", + "number":"123456", + "subject":"Commit message subject", + "owner":{"name":"Owner Name", + "email":"owner@example.com"}, + "url":"http://review.example.com/123456"}, + "patchSet":{"number":"4", + "revision":"deadbeefdeadbeefdeadbeefdeadbeefdeadbeef", + "ref":"refs/changes/56/123456/4", + "uploader":{"name":"Uploader Name", + "email":"uploader@example.com"}, + "createdOn":1342075181}, + "uploader":{"name":"Uploader Name", + "email":"uploader@example.com"}} diff --git a/tests/gerrit_stream/unittest_gerrit_stream_events/patchset-created-event.txt b/tests/gerrit_stream/unittest_gerrit_stream_events/patchset-created-event.txt new file mode 100644 index 0000000..fd94e3e --- /dev/null +++ b/tests/gerrit_stream/unittest_gerrit_stream_events/patchset-created-event.txt @@ -0,0 +1,17 @@ +{"type":"patchset-created", + "change":{"project":"project-name", + "branch":"branch-name", + "id":"Ideadbeefdeadbeefdeadbeefdeadbeefdeadbeef", + "number":"123456", + "subject":"Commit message subject", + "owner":{"name":"Owner Name", + "email":"owner@example.com"}, + "url":"http://review.example.com/123456"}, + "patchSet":{"number":"4", + "revision":"deadbeefdeadbeefdeadbeefdeadbeefdeadbeef", + "ref":"refs/changes/56/123456/4", + "uploader":{"name":"Uploader Name", + "email":"uploader@example.com"}, + "createdOn":1342075181}, + "uploader":{"name":"Uploader Name", + "email":"uploader@example.com"}}
\ No newline at end of file diff --git a/tests/gerrit_stream/unittest_gerrit_stream_events/ref-updated-event.txt b/tests/gerrit_stream/unittest_gerrit_stream_events/ref-updated-event.txt new file mode 100644 index 0000000..61944cc --- /dev/null +++ b/tests/gerrit_stream/unittest_gerrit_stream_events/ref-updated-event.txt @@ -0,0 +1,7 @@ +{"type":"ref-updated", + "submitter":{"name":"Submitter Name", + "email":"submitter@example.com"}, + "refUpdate":{"oldRev":"0000000000000000000000000000000000000000", + "newRev":"deadbeefdeadbeefdeadbeefdeadbeefdeadbeef", + "refName":"refs/tags/refname", + "project":"project-name"}} diff --git a/tests/gerrit_stream/unittest_gerrit_stream_events/status b/tests/gerrit_stream/unittest_gerrit_stream_events/status new file mode 100644 index 0000000..573541a --- /dev/null +++ b/tests/gerrit_stream/unittest_gerrit_stream_events/status @@ -0,0 +1 @@ +0 diff --git a/tests/gerrit_stream/unittest_gerrit_stream_events/unittests.py b/tests/gerrit_stream/unittest_gerrit_stream_events/unittests.py new file mode 100755 index 0000000..ba7f0da --- /dev/null +++ b/tests/gerrit_stream/unittest_gerrit_stream_events/unittests.py @@ -0,0 +1,199 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +"""Unit tests for the Gerrit event stream events objects.""" + +import json +import os +import unittest + +from gerrit_stream import GerritStream, GerritPatchsetCreatedEvent, \ + GerritRefUpdatedEvent, GerritChangeMergedEvent, GerritCommentAddedEvent, \ + GerritChangeAbandonedEvent, GerritChangeRestoredEvent, \ + GerritDraftPublishedEvent + + +class TestGerritStreamEvents(unittest.TestCase): + """ Test that the event handling works properly in the GerritStream + class. + """ + + def setUp(self): + """Set up the gerrit stream object.""" + self.stream = GerritStream() + + def _get_event(self, name): + """Instantiate an event from data in the file specified by `name`. + Return some form of `GerritEvent`.""" + data = open(os.path.join(os.environ["TESTDIR"], name)) + return self.stream._get_event(json.loads(data.read())) + + def test_patchset_created_event(self): + """Tests that the `GerritPatchsetCreatedEvent` event is properly + generated. Also implicitly tests that the `GerritChange`, + `GerritAccount`, and `GerritPatchset` classes behave properly. + + """ + event = self._get_event("patchset-created-event.txt") + self.assertTrue(isinstance(event, GerritPatchsetCreatedEvent)) + self.assertEquals(event.change.project, "project-name") + self.assertEquals(event.change.branch, "branch-name") + self.assertEquals(event.change.change_id, + "Ideadbeefdeadbeefdeadbeefdeadbeefdeadbeef") + self.assertEquals(event.change.number, "123456") + self.assertEquals(event.change.subject, "Commit message subject") + self.assertEquals(event.change.url, "http://review.example.com/123456") + self.assertEquals(event.change.owner.name, "Owner Name") + self.assertEquals(event.change.owner.email, "owner@example.com") + self.assertEquals(event.patchset.number, "4") + self.assertEquals(event.patchset.revision, + "deadbeefdeadbeefdeadbeefdeadbeefdeadbeef") + self.assertEquals(event.patchset.ref, "refs/changes/56/123456/4") + self.assertEquals(event.patchset.uploader.name, "Uploader Name") + self.assertEquals(event.patchset.uploader.email, "uploader@example.com") + self.assertEquals(event.uploader.name, "Uploader Name") + self.assertEquals(event.uploader.email, "uploader@example.com") + + def test_draft_published_event(self): + """Tests that the `GerritDraftPublishedEvent` event is properly + generated. + + """ + event = self._get_event("draft-published-event.txt") + self.assertTrue(isinstance(event, GerritDraftPublishedEvent)) + self.assertEquals(event.change.project, "project-name") + self.assertEquals(event.change.branch, "branch-name") + self.assertEquals(event.change.change_id, + "Ideadbeefdeadbeefdeadbeefdeadbeefdeadbeef") + self.assertEquals(event.change.number, "123456") + self.assertEquals(event.change.subject, "Commit message subject") + self.assertEquals(event.change.url, "http://review.example.com/123456") + self.assertEquals(event.change.owner.name, "Owner Name") + self.assertEquals(event.change.owner.email, "owner@example.com") + self.assertEquals(event.patchset.number, "4") + self.assertEquals(event.patchset.revision, + "deadbeefdeadbeefdeadbeefdeadbeefdeadbeef") + self.assertEquals(event.patchset.ref, "refs/changes/56/123456/4") + self.assertEquals(event.patchset.uploader.name, "Uploader Name") + self.assertEquals(event.patchset.uploader.email, "uploader@example.com") + self.assertEquals(event.uploader.name, "Uploader Name") + self.assertEquals(event.uploader.email, "uploader@example.com") + + def test_ref_updated_event(self): + """Tests that the `GerritRefUpdatedEvent` event is properly + generated. Also implicitly tests that the `GerritRefUpdate`, + class behaves properly. + + """ + event = self._get_event("ref-updated-event.txt") + self.assertTrue(isinstance(event, GerritRefUpdatedEvent)) + self.assertEquals(event.ref_update.project, "project-name") + self.assertEquals(event.ref_update.oldrev, + "0000000000000000000000000000000000000000") + self.assertEquals(event.ref_update.newrev, + "deadbeefdeadbeefdeadbeefdeadbeefdeadbeef") + self.assertEquals(event.ref_update.refname, "refs/tags/refname") + self.assertEquals(event.submitter.name, "Submitter Name") + self.assertEquals(event.submitter.email, "submitter@example.com") + + def test_change_merged_event(self): + """Tests that the `GerritChangeMergedEvent` event is properly + generated. + + """ + event = self._get_event("change-merged-event.txt") + self.assertTrue(isinstance(event, GerritChangeMergedEvent)) + self.assertEquals(event.change.project, "project-name") + self.assertEquals(event.change.branch, "branch-name") + self.assertEquals(event.change.change_id, + "Ideadbeefdeadbeefdeadbeefdeadbeefdeadbeef") + self.assertEquals(event.change.number, "123456") + self.assertEquals(event.change.subject, "Commit message subject") + self.assertEquals(event.change.url, "http://review.example.com/123456") + self.assertEquals(event.change.owner.name, "Owner Name") + self.assertEquals(event.change.owner.email, "owner@example.com") + self.assertEquals(event.patchset.number, "4") + self.assertEquals(event.patchset.revision, + "deadbeefdeadbeefdeadbeefdeadbeefdeadbeef") + self.assertEquals(event.patchset.ref, "refs/changes/56/123456/4") + self.assertEquals(event.patchset.uploader.name, "Uploader Name") + self.assertEquals(event.patchset.uploader.email, "uploader@example.com") + self.assertEquals(event.submitter.name, "Submitter Name") + self.assertEquals(event.submitter.email, "submitter@example.com") + + def test_comment_added_event(self): + """Tests that the `GerritCommentAddedEvent` event is properly + generated. Also implicitly tests that the `GerritApproval` class + behaves properly. + + """ + event = self._get_event("comment-added-event.txt") + self.assertTrue(isinstance(event, GerritCommentAddedEvent)) + self.assertEquals(event.change.project, "project-name") + self.assertEquals(event.change.branch, "branch-name") + self.assertEquals(event.change.change_id, + "Ideadbeefdeadbeefdeadbeefdeadbeefdeadbeef") + self.assertEquals(event.change.number, "123456") + self.assertEquals(event.change.subject, "Commit message subject") + self.assertEquals(event.change.url, "http://review.example.com/123456") + self.assertEquals(event.change.owner.name, "Owner Name") + self.assertEquals(event.change.owner.email, "owner@example.com") + self.assertEquals(event.patchset.number, "4") + self.assertEquals(event.patchset.revision, + "deadbeefdeadbeefdeadbeefdeadbeefdeadbeef") + self.assertEquals(event.patchset.ref, "refs/changes/56/123456/4") + self.assertEquals(event.patchset.uploader.name, "Uploader Name") + self.assertEquals(event.patchset.uploader.email, "uploader@example.com") + self.assertEquals(len(event.approvals), 2) + self.assertEquals(event.approvals[0].category, "CRVW") + self.assertEquals(event.approvals[0].description, "Code Review") + self.assertEquals(event.approvals[0].value, "1") + self.assertEquals(event.approvals[1].category, "VRIF") + self.assertEquals(event.approvals[1].description, "Verified") + self.assertEquals(event.approvals[1].value, "1") + self.assertEquals(event.author.name, "Author Name") + self.assertEquals(event.author.email, "author@example.com") + + def test_change_abandoned_event(self): + """Tests that the `GerritChangeAbandonedEvent` event is properly + generated. + + """ + event = self._get_event("change-abandoned-event.txt") + self.assertTrue(isinstance(event, GerritChangeAbandonedEvent)) + self.assertEquals(event.change.project, "project-name") + self.assertEquals(event.change.branch, "branch-name") + self.assertEquals(event.change.change_id, + "Ideadbeefdeadbeefdeadbeefdeadbeefdeadbeef") + self.assertEquals(event.change.number, "123456") + self.assertEquals(event.change.subject, "Commit message subject") + self.assertEquals(event.change.url, "http://review.example.com/123456") + self.assertEquals(event.change.owner.name, "Owner Name") + self.assertEquals(event.change.owner.email, "owner@example.com") + self.assertEquals(event.abandoner.name, "Abandoner Name") + self.assertEquals(event.abandoner.email, "abandoner@example.com") + self.assertEquals(event.reason, "Abandon reason") + + def test_change_restored_event(self): + """Tests that the `GerritChangeRestoredEvent` event is properly + generated. + + """ + event = self._get_event("change-restored-event.txt") + self.assertTrue(isinstance(event, GerritChangeRestoredEvent)) + self.assertEquals(event.change.project, "project-name") + self.assertEquals(event.change.branch, "branch-name") + self.assertEquals(event.change.change_id, + "Ideadbeefdeadbeefdeadbeefdeadbeefdeadbeef") + self.assertEquals(event.change.number, "123456") + self.assertEquals(event.change.subject, "Commit message subject") + self.assertEquals(event.change.url, "http://review.example.com/123456") + self.assertEquals(event.change.owner.name, "Owner Name") + self.assertEquals(event.change.owner.email, "owner@example.com") + self.assertEquals(event.restorer.name, "Restorer Name") + self.assertEquals(event.restorer.email, "restorer@example.com") + self.assertEquals(event.reason, "Restore reason") + + +if __name__ == '__main__': + unittest.main() |
