summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Pursehouse <david.pursehouse@sonymobile.com>2012-07-12 16:16:37 +0900
committerDavid Pursehouse <david.pursehouse@sonymobile.com>2012-07-24 14:53:43 +0900
commitf48eed76cc12f9e802afe5a150d4b8f7f9a13ec6 (patch)
tree7282f3e46be6667884738d3ec7c60d097bd70d1b
parent4ba708b194b241b7bbe3ff34d1f6c1d5e9721750 (diff)
downloadpygerrit-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.
-rw-r--r--tests/gerrit_stream/unittest_gerrit_stream_events/README2
-rw-r--r--tests/gerrit_stream/unittest_gerrit_stream_events/change-abandoned-event.txt12
-rw-r--r--tests/gerrit_stream/unittest_gerrit_stream_events/change-merged-event.txt17
-rw-r--r--tests/gerrit_stream/unittest_gerrit_stream_events/change-restored-event.txt12
-rw-r--r--tests/gerrit_stream/unittest_gerrit_stream_events/command3
-rw-r--r--tests/gerrit_stream/unittest_gerrit_stream_events/comment-added-event.txt24
-rw-r--r--tests/gerrit_stream/unittest_gerrit_stream_events/draft-published-event.txt17
-rw-r--r--tests/gerrit_stream/unittest_gerrit_stream_events/patchset-created-event.txt17
-rw-r--r--tests/gerrit_stream/unittest_gerrit_stream_events/ref-updated-event.txt7
-rw-r--r--tests/gerrit_stream/unittest_gerrit_stream_events/status1
-rwxr-xr-xtests/gerrit_stream/unittest_gerrit_stream_events/unittests.py199
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()