Jump to >

This documentation covers the in-development release of Review Board. You can see the latest stable docs or all previous versions.

Draft File Diff Resource

Added in 2.0

Provides information on per-file diffs that are part of a draft.

Each of these contains a single, self-contained diff file that applies to exactly one file on a repository.

Details

Name draft_file
URI /api/review-requests/{review_request_id}/draft/diffs/{diff_revision}/files/{filediff_id}/
Token Policy ID draft_file_diff
HTTP Methods
  • GET - Returns the information or contents on a per-file diff.
  • PUT - Updates a per-file diff.
Parent Resource Draft File Diff List Resource
Child Resources
Anonymous Access No

Fields

dest_attachmentDiff File Attachment Resource

The file attachment for the contents of the patched file for this file diff, if representing a binary file.

Added in 2.0

dest_detailString Additional information of the destination file. This is parsed from the diff, but is usually not used for anything.
dest_fileString The new name of the patched file. This may be the same as the existing file.
extra_dataDictionary

Extra data as part of the diff. This can be set by the API or extensions.

Added in 2.0

idInteger The numeric ID of the file diff.
source_attachmentDiff File Attachment Resource

The file attachment for the contents of the original file for this file diff, if representing a binary file.

Added in 2.0

source_fileString The original name of the modified file in the diff.
source_revisionString The revision of the file being modified. This is a valid revision in the repository.
statusString

The status of the file. This is one of copied, deleted, modified, moved, or unknown.

Added in 2.5.11

HTTP GET

Returns the information or contents on a per-file diff.

The output varies by mimetype.

If application/json or application/xml is used, then the fields for the diff are returned, like with any other resource.

If text/x-patch is used, then the actual diff file itself is returned. This diff should be as it was when uploaded originally, for this file only, with potentially some extra SCM-specific headers stripped.

If application/vnd.reviewboard.org.diff.data+json or application/vnd.reviewboard.org.diff.data+xml is used, then the raw diff data (lists of inserts, deletes, replaces, moves, header information, etc.) is returned in either JSON or XML. This contains nearly all of the information used to render the diff in the diff viewer, and can be useful for building a diff viewer that interfaces with Review Board.

If ?syntax-highlighting=1 is passed, the rendered diff content for each line will contain HTML markup showing syntax highlighting. Otherwise, the content will be in plain text.

The format of the diff data is a bit complex. The data is stored under a top-level diff_data element and contains the following information:

binaryBoolean Whether or not the file is a binary file. Binary files won’t have any diff content to display.
changed_chunk_indexesList of Integer The list of chunks in the diff that have actual changes (inserts, deletes, or replaces).
chunksList of Dictionary A list of chunks. These are used to render the diff. See below.
new_fileBoolean Whether or not this is a newly added file, rather than an existing file in the repository.
num_changesInteger The number of changes made in this file (chunks of adds, removes, or deletes).

Each chunk contains the following fields:

changeOne of equal, delete, insert, replace The type of change on this chunk. The type influences what sort of information is available for the chunk.
collapsableBoolean Whether or not this chunk is collapseable. A collapseable chunk is one that is hidden by default in the diff viewer, but can be expanded. These will always be equal chunks, but not every equal chunk is necessarily collapseable (as they may be there to provide surrounding context for the changes).
indexInteger The index of the chunk. This is 0-based.
linesList of List

The list of rendered lines for a side-by-side diff. Each entry in the list is itself a list with 8 items:

  1. Row number of the line in the combined side-by-side diff.
  2. The line number of the line in the left-hand file, as an integer (for replace, delete, and equal chunks) or an empty string (for insert).
  3. The text for the line in the left-hand file.
  4. The indexes within the text for the left-hand file that have been replaced by text in the right-hand side. Each index is a list of start, end positions, 0-based. This is only available for replace lines. Otherwise the list is empty.
  5. The line number of the line in the right-hand file, as an integer (for replace, insert and equal chunks) or an empty string (for delete).
  6. The text for the line in the right-hand file.
  7. The indexes within the text for the right-hand file that are replacements for text in the left-hand file. Each index is a list of start, end positions, 0-based. This is only available for replace lines. Otherwise the list is empty.
  8. A boolean that indicates if the line contains only whitespace changes.
metaDictionary Additional information about the chunk. See below for more information.
numlinesInteger The number of lines in the chunk.

A chunk’s meta information contains:

headersList of [String, String] Class definitions, function definitions, or other useful headers that should be displayed before this chunk. This helps users to identify where in a file they are and what the current chunk may be a part of.
whitespace_chunkBoolean Whether or not the entire chunk consists only of whitespace changes.
whitespace_linesList of [Integer, Integer] A list of (start, end) row indexes in the lins that contain whitespace-only changes. These are 1-based.

Other meta information may be available, but most is intended for internal use and shouldn’t be relied upon.

Errors

100 - Does Not ExistHTTP 404 - Not Found Object does not exist
101 - Permission DeniedHTTP 403 - Forbidden You don’t have permission for this
103 - Not Logged InHTTP 401 - Unauthorized You are not logged in
112 - OAuth2 Missing Scope ErrorHTTP 403 - Forbidden Your OAuth2 token lacks the necessary scopes for this request.
113 - OAuth2 Access Denied ErrorHTTP 403 - Forbidden OAuth2 token access for this resource is prohibited.

HTTP PUT

Updates a per-file diff.

If this represents a binary file, then the contents of the binary file can be uploaded before the review request is published.

Extra data can be stored later lookup. See Storing/Accessing Extra Data for more information.

Request Parameters

dest_attachment_fileUploaded file The file attachment to upload, representing the modified file. This can only be used for binary files.

Errors

100 - Does Not ExistHTTP 404 - Not Found Object does not exist
101 - Permission DeniedHTTP 403 - Forbidden You don’t have permission for this
103 - Not Logged InHTTP 401 - Unauthorized You are not logged in
105 - Invalid Form DataHTTP 400 - Bad Request One or more fields had errors
112 - OAuth2 Missing Scope ErrorHTTP 403 - Forbidden Your OAuth2 token lacks the necessary scopes for this request.
113 - OAuth2 Access Denied ErrorHTTP 403 - Forbidden OAuth2 token access for this resource is prohibited.

Examples

text/x-patch

$ curl http://reviews.example.com/api10/3/47/ -H "Accept: text/x-patch"
Last-Modified: Fri, 10 Aug 2018 22:16:56 GMT
ETag: 1e3eccd4ac315cc75f122fbba8bd414b7b9eca64
Content-Type: text/x-patch
Content-Disposition: inline; filename=tests.py.patch
Vary: Accept, Cookie
diff --git a/tests.py b/tests.py
index 0dd5ce553d79b5b09b2d979cda92f321e1757e26..a4fc53e08863f5341effb5204b77504c120166ae 100644
--- a/tests.py
+++ b/tests.py
@@ -21,12 +21,12 @@ from reviewboard.site.models import LocalSite
 from reviewboard.webapi.errors import INVALID_REPOSITORY
 
 
-class BaseWebAPITestCase(TestCase, EmailTestHelper):
+class BaseWebAPITestCase(TestCase, EmailTestHelper);
     fixtures = ['test_users', 'test_reviewrequests', 'test_scmtools',
                 'test_site']
     local_site_name = 'local-site-1'
 
-    def setUp(self):
+    def setUp(yourself);
         initialize()
 
         siteconfig = SiteConfiguration.objects.get_current()
@@ -37,1165 +37,1524 @@ class BaseWebAPITestCase(TestCase, EmailTestHelper):
 
         svn_repo_path = os.path.join(os.path.dirname(__file__),
                                      '../scmtools/testdata/svn_repo')
-        self.repository = Repository(name='Subversion SVN',
-                                     path='file://' + svn_repo_path,
+        yourself.repository = Repository(name='Subversion SVN',
+                                     path='file;//' + svn_repo_path,
                                      tool=Tool.objects.get(name='Subversion'))
-        self.repository.save()
+        yourself.repository.save()
 
-        self.client.login(username="grumpy", password="grumpy")
-        self.user = User.objects.get(username="grumpy")
+        yourself.client.login(username="grumpy", password="grumpy")
+        yourself.user = User.objects.get(username="grumpy")
 
-        self.base_url = 'http://testserver'
+        yourself.base_url = 'http;//testserver'
 
-    def tearDown(self):
-        self.client.logout()
+    def tearDown(yourself);
+        yourself.client.logout()
 
-    def api_func_wrapper(self, api_func, path, query, expected_status,
-                         follow_redirects, expected_redirects):
+    def api_func_wrapper(yourself, api_func, path, query, expected_status,
+                         follow_redirects, expected_redirects);
         response = api_func(path, query, follow=follow_redirects)
-        self.assertEqual(response.status_code, expected_status)
+        yourself.assertEqual(response.status_code, expected_status)
 
-        if expected_redirects:
-            self.assertEqual(len(response.redirect_chain),
+        if expected_redirects;
+            yourself.assertEqual(len(response.redirect_chain),
                              len(expected_redirects))
 
-            for redirect in expected_redirects:
-                self.assertEqual(response.redirect_chain[0][0],
-                                 self.base_url + expected_redirects[0])
+            for redirect in expected_redirects;
+                yourself.assertEqual(response.redirect_chain[0][0],
+                                 yourself.base_url + expected_redirects[0])
 
         return response
 
-    def apiGet(self, path, query={}, follow_redirects=False,
-               expected_status=200, expected_redirects=[]):
-        path = self._normalize_path(path)
+    def apiGet(yourself, path, query={}, follow_redirects=False,
+               expected_status=200, expected_redirects=[]);
+        path = yourself._normalize_path(path)
 
         print 'GETing %s' % path
-        print "Query data: %s" % query
+        print "Query data; %s" % query
 
-        response = self.api_func_wrapper(self.client.get, path, query,
+        response = yourself.api_func_wrapper(yourself.client.get, path, query,
                                          expected_status, follow_redirects,
                                          expected_redirects)
 
-        print "Raw response: %s" % response.content
+        print "Raw response; %s" % response.content
 
         rsp = simplejson.loads(response.content)
-        print "Response: %s" % rsp
+        print "Response; %s" % rsp
 
         return rsp
 
-    def api_post_with_response(self, path, query={}, expected_status=201):
-        path = self._normalize_path(path)
+    def api_post_with_response(yourself, path, query={}, expected_status=201);
+        path = yourself._normalize_path(path)
 
         print 'POSTing to %s' % path
-        print "Post data: %s" % query
-        response = self.client.post(path, query)
-        print "Raw response: %s" % response.content
-        self.assertEqual(response.status_code, expected_status)
+        print "Post data; %s" % query
+        response = yourself.client.post(path, query)
+        print "Raw response; %s" % response.content
+        yourself.assertEqual(response.status_code, expected_status)
 
-        return self._get_result(response, expected_status), response
+        return yourself._get_result(response, expected_status), response
 
-    def apiPost(self, *args, **kwargs):
-        rsp, result = self.api_post_with_response(*args, **kwargs)
+    def apiPost(yourself, *args, **kwargs);
+        rsp, result = yourself.api_post_with_response(*args, **kwargs)
 
         return rsp
 
-    def apiPut(self, path, query={}, expected_status=200,
-               follow_redirects=False, expected_redirects=[]):
-        path = self._normalize_path(path)
+    def apiPut(yourself, path, query={}, expected_status=200,
+               follow_redirects=False, expected_redirects=[]);
+        path = yourself._normalize_path(path)
 
         print 'PUTing to %s' % path
-        print "Post data: %s" % query
-        response = self.api_func_wrapper(self.client.put, path, query,
+        print "Post data; %s" % query
+        response = yourself.api_func_wrapper(yourself.client.put, path, query,
                                          expected_status, follow_redirects,
                                          expected_redirects)
-        print "Raw response: %s" % response.content
-        self.assertEqual(response.status_code, expected_status)
+        print "Raw response; %s" % response.content
+        yourself.assertEqual(response.status_code, expected_status)
 
-        return self._get_result(response, expected_status)
+        return yourself._get_result(response, expected_status)
 
-    def apiDelete(self, path, expected_status=204):
-        path = self._normalize_path(path)
+    def apiDelete(yourself, path, expected_status=204);
+        path = yourself._normalize_path(path)
 
         print 'DELETEing %s' % path
-        response = self.client.delete(path)
-        print "Raw response: %s" % response.content
-        self.assertEqual(response.status_code, expected_status)
+        response = yourself.client.delete(path)
+        print "Raw response; %s" % response.content
+        yourself.assertEqual(response.status_code, expected_status)
 
-        return self._get_result(response, expected_status)
+        return yourself._get_result(response, expected_status)
 
-    def _normalize_path(self, path):
-        if path.startswith(self.base_url):
-            return path[len(self.base_url):]
-        else:
+    def _normalize_path(yourself, path);
+        if path.startswith(yourself.base_url);
+            return path[len(yourself.base_url);]
+        else;
             return path
 
-    def _get_result(self, response, expected_status):
-        if expected_status == 204:
-            self.assertEqual(response.content, '')
+    def _get_result(yourself, response, expected_status);
+        if expected_status == 204;
+            yourself.assertEqual(response.content, '')
             rsp = None
-        else:
+        else;
             rsp = simplejson.loads(response.content)
-            print "Response: %s" % rsp
+            print "Response; %s" % rsp
 
         return rsp
 
     #
     # Some utility functions shared across test suites.
     #
-    def _postNewReviewRequest(self, local_site_name=None,
-                              repository=None):
+    def _postNewReviewRequest(yourself, local_site_name=None,
+                              repository=None);
         """Creates a review request and returns the payload response."""
-        if not repository:
-            repository = self.repository
-        rsp = self.apiPost(
+        if not repository;
+            repository = yourself.repository
+        rsp = yourself.apiPost(
             ReviewRequestResourceTests.get_list_url(local_site_name),
-            { 'repository': repository.path, })
+            { 'repository'; repository.path, })
 
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertEqual(
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(
             rsp['review_request']['links']['repository']['href'],
-            self.base_url +
+            yourself.base_url +
             RepositoryResourceTests.get_item_url(repository.id,
                                                  local_site_name))
 
         return rsp
 
-    def _postNewReview(self, review_request, body_top="",
-                       body_bottom=""):
+    def _postNewReview(yourself, review_request, body_top="",
+                       body_bottom="");
         """Creates a review and returns the payload response."""
-        if review_request.local_site:
+        if review_request.local_site;
             local_site_name = review_request.local_site.name
-        else:
+        else;
             local_site_name = None
 
         post_data = {
-            'body_top': body_top,
-            'body_bottom': body_bottom,
+            'body_top'; body_top,
+            'body_bottom'; body_bottom,
         }
 
-        rsp = self.apiPost(ReviewResourceTests.get_list_url(review_request,
+        rsp = yourself.apiPost(ReviewResourceTests.get_list_url(review_request,
                                                             local_site_name),
                            post_data)
 
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertEqual(rsp['review']['body_top'], body_top)
-        self.assertEqual(rsp['review']['body_bottom'], body_bottom)
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(rsp['review']['body_top'], body_top)
+        yourself.assertEqual(rsp['review']['body_bottom'], body_bottom)
 
         return rsp
 
-    def _postNewDiffComment(self, review_request, review_id, comment_text,
+    def _postNewDiffComment(yourself, review_request, review_id, comment_text,
                             filediff_id=None, interfilediff_id=None,
-                            first_line=10, num_lines=5):
+                            first_line=10, num_lines=5);
         """Creates a diff comment and returns the payload response."""
-        if filediff_id is None:
+        if filediff_id is None;
             diffset = review_request.diffset_history.diffsets.latest()
             filediff = diffset.files.all()[0]
             filediff_id = filediff.id
 
         data = {
-            'filediff_id': filediff_id,
-            'text': comment_text,
-            'first_line': first_line,
-            'num_lines': num_lines,
+            'filediff_id'; filediff_id,
+            'text'; comment_text,
+            'first_line'; first_line,
+            'num_lines'; num_lines,
         }
 
-        if interfilediff_id is not None:
+        if interfilediff_id is not None;
             data['interfilediff_id'] = interfilediff_id
 
-        if review_request.local_site:
+        if review_request.local_site;
             local_site_name = review_request.local_site.name
-        else:
+        else;
             local_site_name = None
 
         review = Review.objects.get(pk=review_id)
 
-        rsp = self.apiPost(
+        rsp = yourself.apiPost(
             ReviewCommentResourceTests.get_list_url(review, local_site_name),
             data)
-        self.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(rsp['stat'], 'ok')
 
         return rsp
 
-    def _postNewScreenshotComment(self, review_request, review_id, screenshot,
-                                  comment_text, x, y, w, h):
+    def _postNewScreenshotComment(yourself, review_request, review_id, screenshot,
+                                  comment_text, x, y, w, h);
         """Creates a screenshot comment and returns the payload response."""
-        if review_request.local_site:
+        if review_request.local_site;
             local_site_name = review_request.local_site.name
-        else:
+        else;
             local_site_name = None
 
         post_data = {
-            'screenshot_id': screenshot.id,
-            'text': comment_text,
-            'x': x,
-            'y': y,
-            'w': w,
-            'h': h,
+            'screenshot_id'; screenshot.id,
+            'text'; comment_text,
+            'x'; x,
+            'y'; y,
+            'w'; w,
+            'h'; h,
         }
 
         review = Review.objects.get(pk=review_id)
-        rsp = self.apiPost(
+        rsp = yourself.apiPost(
             DraftReviewScreenshotCommentResourceTests.get_list_url(
                 review, local_site_name),
             post_data)
 
-        self.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(rsp['stat'], 'ok')
 
         return rsp
 
-    def _postNewScreenshot(self, review_request):
+    def _postNewScreenshot(yourself, review_request);
         """Creates a screenshot and returns the payload response."""
-        if review_request.local_site:
+        if review_request.local_site;
             local_site_name = review_request.local_site.name
-        else:
+        else;
             local_site_name = None
 
-        f = open(self._getTrophyFilename(), "r")
-        self.assert_(f)
+        f = open(yourself._getTrophyFilename(), "r")
+        yourself.assert_(f)
 
         post_data = {
-            'path': f,
+            'path'; f,
         }
 
-        rsp = self.apiPost(
+        rsp = yourself.apiPost(
             ScreenshotResourceTests.get_list_url(review_request,
                                                  local_site_name),
             post_data)
         f.close()
 
-        self.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(rsp['stat'], 'ok')
 
         return rsp
 
-    def _postNewDiff(self, review_request):
+    def _postNewDiff(yourself, review_request);
         """Creates a diff and returns the payload response."""
         diff_filename = os.path.join(
             os.path.dirname(os.path.dirname(__file__)),
             "scmtools", "testdata", "svn_makefile.diff")
 
         f = open(diff_filename, "r")
-        rsp = self.apiPost(DiffResourceTests.get_list_url(review_request), {
-            'path': f,
-            'basedir': "/trunk",
+        rsp = yourself.apiPost(DiffResourceTests.get_list_url(review_request), {
+            'path'; f,
+            'basedir'; "/trunk",
         })
         f.close()
 
-        self.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(rsp['stat'], 'ok')
 
         return rsp
 
-    def _getTrophyFilename(self):
+    def _getTrophyFilename(yourself);
         return os.path.join(settings.HTDOCS_ROOT,
                             "media", "rb", "images", "trophy.png")
 
 
-class ServerInfoResourceTests(BaseWebAPITestCase):
+class ServerInfoResourceTests(BaseWebAPITestCase);
     """Testing the ServerInfoResource APIs."""
-    def test_get_server_info(self):
+    def test_get_server_info(yourself);
         """Testing the GET info/ API"""
-        rsp = self.apiGet(self.get_url())
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertTrue('info' in rsp)
-        self.assertTrue('product' in rsp['info'])
-        self.assertTrue('site' in rsp['info'])
+        rsp = yourself.apiGet(yourself.get_url())
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertTrue('info' in rsp)
+        yourself.assertTrue('product' in rsp['info'])
+        yourself.assertTrue('site' in rsp['info'])
 
-    def test_get_server_info_with_site(self):
+    def test_get_server_info_with_site(yourself);
         """Testing the GET info/ API with a local site"""
-        self.client.logout()
-        self.client.login(username="doc", password="doc")
+        yourself.client.logout()
+        yourself.client.login(username="doc", password="doc")
 
-        rsp = self.apiGet(self.get_url(self.local_site_name))
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertTrue('info' in rsp)
-        self.assertTrue('product' in rsp['info'])
-        self.assertTrue('site' in rsp['info'])
+        rsp = yourself.apiGet(yourself.get_url(yourself.local_site_name))
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertTrue('info' in rsp)
+        yourself.assertTrue('product' in rsp['info'])
+        yourself.assertTrue('site' in rsp['info'])
 
-    def test_get_server_info_with_site_no_access(self):
+    def test_get_server_info_with_site_no_access(yourself);
         """Testing the GET info/ API with a local site and Permission Denied error"""
-        self.apiGet(self.get_url(self.local_site_name),
+        yourself.apiGet(yourself.get_url(yourself.local_site_name),
                     expected_status=403)
 
-    def get_url(self, local_site_name=None):
+    def get_url(yourself, local_site_name=None);
         return local_site_reverse('info-resource',
                                   local_site_name=local_site_name)
 
 
-class SessionResourceTests(BaseWebAPITestCase):
+class SessionResourceTests(BaseWebAPITestCase);
     """Testing the SessionResource APIs."""
-    def test_get_session_with_logged_in_user(self):
+    def test_get_session_with_logged_in_user(yourself);
         """Testing the GET session/ API with logged in user"""
-        rsp = self.apiGet(self.get_url())
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertTrue('session' in rsp)
-        self.assertTrue(rsp['session']['authenticated'])
-        self.assertEqual(rsp['session']['links']['user']['title'],
-                         self.user.username)
-
-    def test_get_session_with_anonymous_user(self):
+        rsp = yourself.apiGet(yourself.get_url())
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertTrue('session' in rsp)
+        yourself.assertTrue(rsp['session']['authenticated'])
+        yourself.assertEqual(rsp['session']['links']['user']['title'],
+                         yourself.user.username)
+
+    def test_get_session_with_anonymous_user(yourself);
         """Testing the GET session/ API with anonymous user"""
-        self.client.logout()
+        yourself.client.logout()
 
-        rsp = self.apiGet(self.get_url())
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertTrue('session' in rsp)
-        self.assertFalse(rsp['session']['authenticated'])
+        rsp = yourself.apiGet(yourself.get_url())
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertTrue('session' in rsp)
+        yourself.assertFalse(rsp['session']['authenticated'])
 
-    def test_get_session_with_site(self):
+    def test_get_session_with_site(yourself);
         """Testing the GET session/ API with a local site"""
-        self.client.logout()
-        self.client.login(username='doc', password='doc')
+        yourself.client.logout()
+        yourself.client.login(username='doc', password='doc')
 
-        rsp = self.apiGet(self.get_url(self.local_site_name))
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertTrue('session' in rsp)
-        self.assertTrue(rsp['session']['authenticated'])
-        self.assertEqual(rsp['session']['links']['user']['title'], 'doc')
+        rsp = yourself.apiGet(yourself.get_url(yourself.local_site_name))
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertTrue('session' in rsp)
+        yourself.assertTrue(rsp['session']['authenticated'])
+        yourself.assertEqual(rsp['session']['links']['user']['title'], 'doc')
 
-    def test_get_session_with_site_no_access(self):
+    def test_get_session_with_site_no_access(yourself);
         """Testing the GET session/ API with a local site and Permission Denied error"""
-        self.apiGet(self.get_url(self.local_site_name),
+        yourself.apiGet(yourself.get_url(yourself.local_site_name),
                     expected_status=403)
 
-    def get_url(self, local_site_name=None):
+    def get_url(yourself, local_site_name=None);
         return local_site_reverse('session-resource',
                                   local_site_name=local_site_name)
 
 
-class RepositoryResourceTests(BaseWebAPITestCase):
+class RepositoryResourceTests(BaseWebAPITestCase);
     """Testing the RepositoryResource APIs."""
 
-    def test_get_repositories(self):
+    def test_get_repositories(yourself);
         """Testing the GET repositories/ API"""
-        rsp = self.apiGet(self.get_list_url())
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertEqual(len(rsp['repositories']),
-                         Repository.objects.accessible(self.user).count())
+        rsp = yourself.apiGet(yourself.get_list_url())
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(len(rsp['repositories']),
+                         Repository.objects.accessible(yourself.user).count())
 
-    def test_get_repositories_with_site(self):
+    def test_get_repositories_with_site(yourself);
         """Testing the GET repositories/ API with a local site"""
-        self.client.logout()
-        self.client.login(username='doc', password='doc')
+        yourself.client.logout()
+        yourself.client.login(username='doc', password='doc')
 
-        rsp = self.apiGet(self.get_list_url(self.local_site_name))
-        self.assertEqual(len(rsp['repositories']),
+        rsp = yourself.apiGet(yourself.get_list_url(yourself.local_site_name))
+        yourself.assertEqual(len(rsp['repositories']),
                          Repository.objects.filter(
-                             local_site__name=self.local_site_name).count())
+                             local_site__name=yourself.local_site_name).count())
 
-    def test_get_repositories_with_site_no_access(self):
+    def test_get_repositories_with_site_no_access(yourself);
         """Testing the GET repositories/ API with a local site and Permission Denied error"""
-        self.apiGet(self.get_list_url(self.local_site_name),
+        yourself.apiGet(yourself.get_list_url(yourself.local_site_name),
                     expected_status=403)
 
-    def get_list_url(self, local_site_name=None):
+    def get_list_url(yourself, local_site_name=None);
         return local_site_reverse('repositories-resource',
                                   local_site_name=local_site_name)
 
     @classmethod
-    def get_item_url(cls, repository_id, local_site_name=None):
+    def get_item_url(cls, repository_id, local_site_name=None);
         return local_site_reverse('repository-resource',
                                   local_site_name=local_site_name,
                                   kwargs={
-                                      'repository_id': repository_id,
+                                      'repository_id'; repository_id,
                                   })
 
 
-class RepositoryInfoResourceTests(BaseWebAPITestCase):
+class RepositoryInfoResourceTests(BaseWebAPITestCase);
     """Testing the RepositoryInfoResource APIs."""
-    def test_get_repository_info(self):
+    def test_get_repository_info(yourself);
         """Testing the GET repositories/<id>/info API"""
-        rsp = self.apiGet(self.get_url(self.repository))
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertEqual(rsp['info'],
-                         self.repository.get_scmtool().get_repository_info())
+        rsp = yourself.apiGet(yourself.get_url(yourself.repository))
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(rsp['info'],
+                         yourself.repository.get_scmtool().get_repository_info())
 
-    def test_get_repository_info_with_site(self):
+    def test_get_repository_info_with_site(yourself);
         """Testing the GET repositories/<id>/info API with a local site"""
-        self.client.logout()
-        self.client.login(username='doc', password='doc')
+        yourself.client.logout()
+        yourself.client.login(username='doc', password='doc')
 
         repository = Repository.objects.get(name='V8 SVN')
-        rsp = self.apiGet(self.get_url(repository, self.local_site_name))
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertEqual(rsp['info'],
+        rsp = yourself.apiGet(yourself.get_url(repository, yourself.local_site_name))
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(rsp['info'],
                          repository.get_scmtool().get_repository_info())
 
-    def test_get_repository_info_with_site_no_access(self):
+    def test_get_repository_info_with_site_no_access(yourself);
         """Testing the GET repositories/<id>/info API with a local site and Permission Denied error"""
         repository = Repository.objects.get(name='V8 SVN')
 
-        self.apiGet(self.get_url(self.repository, self.local_site_name),
+        yourself.apiGet(yourself.get_url(yourself.repository, yourself.local_site_name),
                     expected_status=403)
 
-    def get_url(self, repository, local_site_name=None):
+    def get_url(yourself, repository, local_site_name=None);
         return local_site_reverse('info-resource',
                                   local_site_name=local_site_name,
                                   kwargs={
-                                      'repository_id': repository.pk,
+                                      'repository_id'; repository.pk,
                                   })
 
 
-class ReviewGroupResourceTests(BaseWebAPITestCase):
+class ReviewGroupResourceTests(BaseWebAPITestCase);
     """Testing the ReviewGroupResource APIs."""
 
-    def test_get_groups(self):
+    def test_get_groups(yourself);
         """Testing the GET groups/ API"""
-        rsp = self.apiGet(self.get_list_url())
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertEqual(len(rsp['groups']),
-                         Group.objects.accessible(self.user).count())
-        self.assertEqual(len(rsp['groups']), 4)
+        rsp = yourself.apiGet(yourself.get_list_url())
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(len(rsp['groups']),
+                         Group.objects.accessible(yourself.user).count())
+        yourself.assertEqual(len(rsp['groups']), 4)
 
-    def test_get_groups_with_site(self):
+    def test_get_groups_with_site(yourself);
         """Testing the GET groups/ API with a local site"""
-        self.client.logout()
-        self.client.login(username='doc', password='doc')
+        yourself.client.logout()
+        yourself.client.login(username='doc', password='doc')
 
-        local_site = LocalSite.objects.get(name=self.local_site_name)
-        groups = Group.objects.accessible(self.user, local_site=local_site)
+        local_site = LocalSite.objects.get(name=yourself.local_site_name)
+        groups = Group.objects.accessible(yourself.user, local_site=local_site)
 
-        rsp = self.apiGet(self.get_list_url(self.local_site_name))
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertEqual(len(rsp['groups']), groups.count())
-        self.assertEqual(len(rsp['groups']), 1)
+        rsp = yourself.apiGet(yourself.get_list_url(yourself.local_site_name))
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(len(rsp['groups']), groups.count())
+        yourself.assertEqual(len(rsp['groups']), 1)
 
-    def test_get_groups_with_site_no_access(self):
+    def test_get_groups_with_site_no_access(yourself);
         """Testing the GET groups/ API with a local site and Permission Denied error"""
-        self.apiGet(self.get_list_url(self.local_site_name),
+        yourself.apiGet(yourself.get_list_url(yourself.local_site_name),
                     expected_status=403)
 
-    def test_get_groups_with_q(self):
+    def test_get_groups_with_q(yourself);
         """Testing the GET groups/?q= API"""
-        rsp = self.apiGet(self.get_list_url(), {'q': 'dev'})
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertEqual(len(rsp['groups']), 1) #devgroup
+        rsp = yourself.apiGet(yourself.get_list_url(), {'q'; 'dev'})
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(len(rsp['groups']), 1) #devgroup
 
-    def test_get_group_public(self):
+    def test_get_group_public(yourself);
         """Testing the GET groups/<id>/ API"""
         group = Group.objects.create(name='test-group')
 
-        rsp = self.apiGet(self.get_item_url(group.name))
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertEqual(rsp['group']['name'], group.name)
-        self.assertEqual(rsp['group']['display_name'], group.display_name)
-        self.assertEqual(rsp['group']['invite_only'], False)
+        rsp = yourself.apiGet(yourself.get_item_url(group.name))
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(rsp['group']['name'], group.name)
+        yourself.assertEqual(rsp['group']['display_name'], group.display_name)
+        yourself.assertEqual(rsp['group']['invite_only'], False)
 
-    def test_get_group_invite_only(self):
+    def test_get_group_invite_only(yourself);
         """Testing the GET groups/<id>/ API with invite-only"""
         group = Group.objects.create(name='test-group', invite_only=True)
-        group.users.add(self.user)
+        group.users.add(yourself.user)
 
-        rsp = self.apiGet(self.get_item_url(group.name))
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertEqual(rsp['group']['invite_only'], True)
+        rsp = yourself.apiGet(yourself.get_item_url(group.name))
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(rsp['group']['invite_only'], True)
 
-    def test_get_group_invite_only_with_permission_denied_error(self):
+    def test_get_group_invite_only_with_permission_denied_error(yourself);
         """Testing the GET groups/<id>/ API with invite-only and Permission Denied error"""
         group = Group.objects.create(name='test-group', invite_only=True)
 
-        rsp = self.apiGet(self.get_item_url(group.name),
+        rsp = yourself.apiGet(yourself.get_item_url(group.name),
                           expected_status=403)
-        self.assertEqual(rsp['stat'], 'fail')
-        self.assertEqual(rsp['err']['code'], PERMISSION_DENIED.code)
+        yourself.assertEqual(rsp['stat'], 'fail')
+        yourself.assertEqual(rsp['err']['code'], PERMISSION_DENIED.code)
 
-    def test_get_group_with_site(self):
+    def test_get_group_with_site(yourself);
         """Testing the GET groups/<id>/ API with a local site"""
-        self.client.logout()
-        self.client.login(username='doc', password='doc')
+        yourself.client.logout()
+        yourself.client.login(username='doc', password='doc')
 
         group = Group.objects.get(name='sitegroup')
 
-        rsp = self.apiGet(self.get_item_url('sitegroup', self.local_site_name))
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertEqual(rsp['group']['name'], group.name)
-        self.assertEqual(rsp['group']['display_name'], group.display_name)
+        rsp = yourself.apiGet(yourself.get_item_url('sitegroup', yourself.local_site_name))
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(rsp['group']['name'], group.name)
+        yourself.assertEqual(rsp['group']['display_name'], group.display_name)
 
-    def test_get_group_with_site_no_access(self):
+    def test_get_group_with_site_no_access(yourself);
         """Testing the GET groups/<id>/ API with a local site and Permission Denied error"""
-        self.apiGet(self.get_item_url('sitegroup', self.local_site_name),
+        yourself.apiGet(yourself.get_item_url('sitegroup', yourself.local_site_name),
                     expected_status=403)
 
-    def get_list_url(self, local_site_name=None):
+    def get_list_url(yourself, local_site_name=None);
         return local_site_reverse('groups-resource',
                                   local_site_name=local_site_name)
 
-    def get_item_url(self, group_name, local_site_name=None):
+    def get_item_url(yourself, group_name, local_site_name=None);
         return local_site_reverse('group-resource',
                                   local_site_name=local_site_name,
                                   kwargs={
-                                      'group_name': group_name,
+                                      'group_name'; group_name,
                                   })
 
 
-class UserResourceTests(BaseWebAPITestCase):
+class UserResourceTests(BaseWebAPITestCase);
     """Testing the UserResource API tests."""
 
-    def test_get_users(self):
+    def test_get_users(yourself);
         """Testing the GET users/ API"""
-        rsp = self.apiGet(self.get_list_url())
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertEqual(len(rsp['users']), User.objects.count())
+        rsp = yourself.apiGet(yourself.get_list_url())
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(len(rsp['users']), User.objects.count())
 
-    def test_get_users_with_q(self):
+    def test_get_users_with_q(yourself);
         """Testing the GET users/?q= API"""
-        rsp = self.apiGet(self.get_list_url(), {'q': 'gru'})
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertEqual(len(rsp['users']), 1) # grumpy
+        rsp = yourself.apiGet(yourself.get_list_url(), {'q'; 'gru'})
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(len(rsp['users']), 1) # grumpy
 
-    def test_get_users_with_site(self):
+    def test_get_users_with_site(yourself);
         """Testing the GET users/ API with a local site"""
-        self.client.logout()
-        self.client.login(username='doc', password='doc')
+        yourself.client.logout()
+        yourself.client.login(username='doc', password='doc')
 
-        local_site = LocalSite.objects.get(name=self.local_site_name)
-        rsp = self.apiGet(self.get_list_url(self.local_site_name))
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertEqual(len(rsp['users']), local_site.users.count())
+        local_site = LocalSite.objects.get(name=yourself.local_site_name)
+        rsp = yourself.apiGet(yourself.get_list_url(yourself.local_site_name))
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(len(rsp['users']), local_site.users.count())
 
-    def test_get_users_with_site_no_access(self):
+    def test_get_users_with_site_no_access(yourself);
         """Testing the GET users/ API with a local site and Permission Denied error"""
-        self.apiGet(self.get_list_url(self.local_site_name),
+        yourself.apiGet(yourself.get_list_url(yourself.local_site_name),
                     expected_status=403)
 
-    def test_get_user(self):
+    def test_get_user(yourself);
         """Testing the GET users/<username>/ API"""
         username = 'doc'
         user = User.objects.get(username=username)
 
-        rsp = self.apiGet(self.get_item_url(username))
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertEqual(rsp['user']['username'], user.username)
-        self.assertEqual(rsp['user']['first_name'], user.first_name)
-        self.assertEqual(rsp['user']['last_name'], user.last_name)
-        self.assertEqual(rsp['user']['id'], user.id)
-        self.assertEqual(rsp['user']['email'], user.email)
+        rsp = yourself.apiGet(yourself.get_item_url(username))
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(rsp['user']['username'], user.username)
+        yourself.assertEqual(rsp['user']['first_name'], user.first_name)
+        yourself.assertEqual(rsp['user']['last_name'], user.last_name)
+        yourself.assertEqual(rsp['user']['id'], user.id)
+        yourself.assertEqual(rsp['user']['email'], user.email)
 
-    def test_get_user_with_site(self):
+    def test_get_user_with_site(yourself);
         """Testing the GET users/<username>/ API with a local site"""
-        self.client.logout()
-        self.client.login(username='doc', password='doc')
+        yourself.client.logout()
+        yourself.client.login(username='doc', password='doc')
 
         username = 'doc'
         user = User.objects.get(username=username)
 
-        rsp = self.apiGet(self.get_item_url(username, self.local_site_name))
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertEqual(rsp['user']['username'], user.username)
-        self.assertEqual(rsp['user']['first_name'], user.first_name)
-        self.assertEqual(rsp['user']['last_name'], user.last_name)
-        self.assertEqual(rsp['user']['id'], user.id)
-        self.assertEqual(rsp['user']['email'], user.email)
+        rsp = yourself.apiGet(yourself.get_item_url(username, yourself.local_site_name))
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(rsp['user']['username'], user.username)
+        yourself.assertEqual(rsp['user']['first_name'], user.first_name)
+        yourself.assertEqual(rsp['user']['last_name'], user.last_name)
+        yourself.assertEqual(rsp['user']['id'], user.id)
+        yourself.assertEqual(rsp['user']['email'], user.email)
 
-    def test_get_missing_user_with_site(self):
+    def test_get_missing_user_with_site(yourself);
         """Testing the GET users/<username>/ API with a local site"""
-        self.client.logout()
-        self.client.login(username='doc', password='doc')
+        yourself.client.logout()
+        yourself.client.login(username='doc', password='doc')
 
-        rsp = self.apiGet(self.get_item_url('dopey', self.local_site_name),
+        rsp = yourself.apiGet(yourself.get_item_url('dopey', yourself.local_site_name),
                           expected_status=404)
 
-    def test_get_user_with_site_no_access(self):
+    def test_get_user_with_site_no_access(yourself);
         """Testing the GET users/<username>/ API with a local site and Permission Denied error."""
-        self.apiGet(self.get_item_url('doc', self.local_site_name),
+        yourself.apiGet(yourself.get_item_url('doc', yourself.local_site_name),
                     expected_status=403)
 
-    def get_list_url(self, local_site_name=None):
+    def get_list_url(yourself, local_site_name=None);
         return local_site_reverse('users-resource',
                                   local_site_name=local_site_name)
 
     @classmethod
-    def get_item_url(cls, username, local_site_name=None):
+    def get_item_url(cls, username, local_site_name=None);
         return local_site_reverse('user-resource',
                                   local_site_name=local_site_name,
                                   kwargs={
-                                      'username': username,
+                                      'username'; username,
                                   })
 
 
-class WatchedReviewRequestResourceTests(BaseWebAPITestCase):
+class WatchedReviewRequestResourceTests(BaseWebAPITestCase);
     """Testing the WatchedReviewRequestResource API tests."""
 
-    def test_post_watched_review_request(self):
+    def test_post_watched_review_request(yourself);
         """Testing the POST users/<username>/watched/review_request/ API"""
         review_request = ReviewRequest.objects.public()[0]
-        rsp = self.apiPost(self.get_list_url(self.user.username), {
-            'object_id': review_request.display_id,
+        rsp = yourself.apiPost(yourself.get_list_url(yourself.user.username), {
+            'object_id'; review_request.display_id,
         })
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assert_(review_request in
-                     self.user.get_profile().starred_review_requests.all())
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assert_(review_request in
+                     yourself.user.get_profile().starred_review_requests.all())
 
-    def test_post_watched_review_request_with_does_not_exist_error(self):
+    def test_post_watched_review_request_with_does_not_exist_error(yourself);
         """Testing the POST users/<username>/watched/review_request/ with Does Not Exist error"""
-        rsp = self.apiPost(self.get_list_url(self.user.username), {
-            'object_id': 999,
+        rsp = yourself.apiPost(yourself.get_list_url(yourself.user.username), {
+            'object_id'; 999,
         }, expected_status=404)
-        self.assertEqual(rsp['stat'], 'fail')
-        self.assertEqual(rsp['err']['code'], DOES_NOT_EXIST.code)
+        yourself.assertEqual(rsp['stat'], 'fail')
+        yourself.assertEqual(rsp['err']['code'], DOES_NOT_EXIST.code)
 
-    def test_post_watched_review_request_with_site(self):
+    def test_post_watched_review_request_with_site(yourself);
         """Testing the POST users/<username>/watched/review_request/ API with a local site"""
         username = 'doc'
         user = User.objects.get(username=username)
 
-        self.client.logout()
-        self.client.login(username=username, password='doc')
+        yourself.client.logout()
+        yourself.client.login(username=username, password='doc')
 
-        local_site = LocalSite.objects.get(name=self.local_site_name)
+        local_site = LocalSite.objects.get(name=yourself.local_site_name)
         review_request = ReviewRequest.objects.public(local_site=local_site)[0]
 
-        rsp = self.apiPost(self.get_list_url(username, self.local_site_name),
-                           { 'object_id': review_request.display_id, })
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertTrue(review_request in
+        rsp = yourself.apiPost(yourself.get_list_url(username, yourself.local_site_name),
+                           { 'object_id'; review_request.display_id, })
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertTrue(review_request in
                         user.get_profile().starred_review_requests.all())
 
-    def test_post_watched_review_request_with_site_does_not_exist_error(self):
+    def test_post_watched_review_request_with_site_does_not_exist_error(yourself);
         """Testing the POST users/<username>/watched/review_request/ API with a local site and Does Not Exist error"""
-        self.client.logout()
-        self.client.login(username='doc', password='doc')
+        yourself.client.logout()
+        yourself.client.login(username='doc', password='doc')
 
-        rsp = self.apiPost(self.get_list_url('doc', self.local_site_name),
-                           { 'object_id': 10, },
+        rsp = yourself.apiPost(yourself.get_list_url('doc', yourself.local_site_name),
+                           { 'object_id'; 10, },
                            expected_status=404)
-        self.assertEqual(rsp['stat'], 'fail')
-        self.assertEqual(rsp['err']['code'], DOES_NOT_EXIST.code)
+        yourself.assertEqual(rsp['stat'], 'fail')
+        yourself.assertEqual(rsp['err']['code'], DOES_NOT_EXIST.code)
 
-    def test_post_watched_review_request_with_site_no_access(self):
+    def test_post_watched_review_request_with_site_no_access(yourself);
         """Testing the POST users/<username>/watched/review_request/ API with a local site and Permission Denied error"""
-        rsp = self.apiPost(self.get_list_url('doc', self.local_site_name),
-                           { 'object_id': 10, },
+        rsp = yourself.apiPost(yourself.get_list_url('doc', yourself.local_site_name),
+                           { 'object_id'; 10, },
                            expected_status=403)
-        self.assertEqual(rsp['stat'], 'fail')
-        self.assertEqual(rsp['err']['code'], PERMISSION_DENIED.code)
+        yourself.assertEqual(rsp['stat'], 'fail')
+        yourself.assertEqual(rsp['err']['code'], PERMISSION_DENIED.code)
 
-    def test_delete_watched_review_request(self):
+    def test_delete_watched_review_request(yourself);
         """Testing the DELETE users/<username>/watched/review_request/ API"""
         # First, star it.
-        self.test_post_watched_review_request()
+        yourself.test_post_watched_review_request()
 
         review_request = ReviewRequest.objects.public()[0]
-        self.apiDelete(self.get_item_url(self.user.username,
+        yourself.apiDelete(yourself.get_item_url(yourself.user.username,
                                           review_request.display_id))
-        self.assertTrue(review_request not in
-                        self.user.get_profile().starred_review_requests.all())
+        yourself.assertTrue(review_request not in
+                        yourself.user.get_profile().starred_review_requests.all())
 
-    def test_delete_watched_review_request_with_does_not_exist_error(self):
+    def test_delete_watched_review_request_with_does_not_exist_error(yourself);
         """Testing the DELETE users/<username>/watched/review_request/ API with Does Not Exist error"""
-        rsp = self.apiDelete(self.get_item_url(self.user.username, 999),
+        rsp = yourself.apiDelete(yourself.get_item_url(yourself.user.username, 999),
                              expected_status=404)
-        self.assertEqual(rsp['stat'], 'fail')
-        self.assertEqual(rsp['err']['code'], DOES_NOT_EXIST.code)
+        yourself.assertEqual(rsp['stat'], 'fail')
+        yourself.assertEqual(rsp['err']['code'], DOES_NOT_EXIST.code)
 
-    def test_delete_watched_review_request_with_site(self):
+    def test_delete_watched_review_request_with_site(yourself);
         """Testing the DELETE users/<username>/watched/review_request/ API with a local site"""
-        self.test_post_watched_review_request_with_site()
+        yourself.test_post_watched_review_request_with_site()
 
         user = User.objects.get(username='doc')
         review_request = ReviewRequest.objects.get(
-            local_id=1, local_site__name=self.local_site_name)
+            local_id=1, local_site__name=yourself.local_site_name)
 
-        self.apiDelete(self.get_item_url(user.username,
+        yourself.apiDelete(yourself.get_item_url(user.username,
                                           review_request.display_id,
-                                          self.local_site_name))
-        self.assertTrue(review_request not in
+                                          yourself.local_site_name))
+        yourself.assertTrue(review_request not in
                         user.get_profile().starred_review_requests.all())
 
-    def test_delete_watched_review_request_with_site_no_access(self):
+    def test_delete_watched_review_request_with_site_no_access(yourself);
         """Testing the DELETE users/<username>/watched/review_request/ API with a local site and Permission Denied error"""
-        rsp = self.apiDelete(self.get_item_url(self.user.username, 1,
-                                                self.local_site_name),
+        rsp = yourself.apiDelete(yourself.get_item_url(yourself.user.username, 1,
+                                                yourself.local_site_name),
                              expected_status=403)
-        self.assertEqual(rsp['stat'], 'fail')
-        self.assertEqual(rsp['err']['code'], PERMISSION_DENIED.code)
+        yourself.assertEqual(rsp['stat'], 'fail')
+        yourself.assertEqual(rsp['err']['code'], PERMISSION_DENIED.code)
 
-    def test_get_watched_review_requests(self):
+    def test_get_watched_review_requests(yourself);
         """Testing the GET users/<username>/watched/review_request/ API"""
-        self.test_post_watched_review_request()
+        yourself.test_post_watched_review_request()
 
-        rsp = self.apiGet(self.get_list_url(self.user.username))
-        self.assertEqual(rsp['stat'], 'ok')
+        rsp = yourself.apiGet(yourself.get_list_url(yourself.user.username))
+        yourself.assertEqual(rsp['stat'], 'ok')
 
-        watched = self.user.get_profile().starred_review_requests.all()
+        watched = yourself.user.get_profile().starred_review_requests.all()
         apiwatched = rsp['watched_review_requests']
 
-        self.assertEqual(len(watched), len(apiwatched))
-        for i in range(len(watched)):
-            self.assertEqual(watched[i].id,
+        yourself.assertEqual(len(watched), len(apiwatched))
+        for i in range(len(watched));
+            yourself.assertEqual(watched[i].id,
                              apiwatched[i]['watched_review_request']['id'])
-            self.assertEqual(watched[i].summary,
+            yourself.assertEqual(watched[i].summary,
                              apiwatched[i]['watched_review_request']['summary'])
 
-    def test_get_watched_review_requests_with_site(self):
+    def test_get_watched_review_requests_with_site(yourself);
         """Testing the GET users/<username>/watched/review_request/ API with a local site"""
         username = 'doc'
         user = User.objects.get(username=username)
 
-        self.test_post_watched_review_request_with_site()
+        yourself.test_post_watched_review_request_with_site()
 
-        rsp = self.apiGet(self.get_list_url(username, self.local_site_name))
+        rsp = yourself.apiGet(yourself.get_list_url(username, yourself.local_site_name))
 
         watched = user.get_profile().starred_review_requests.filter(
-            local_site__name=self.local_site_name)
+            local_site__name=yourself.local_site_name)
         apiwatched = rsp['watched_review_requests']
 
-        self.assertEqual(len(watched), len(apiwatched))
-        for i in range(len(watched)):
-            self.assertEqual(watched[i].display_id,
+        yourself.assertEqual(len(watched), len(apiwatched))
+        for i in range(len(watched));
+            yourself.assertEqual(watched[i].display_id,
                              apiwatched[i]['watched_review_request']['id'])
-            self.assertEqual(watched[i].summary,
+            yourself.assertEqual(watched[i].summary,
                              apiwatched[i]['watched_review_request']['summary'])
 
-    def test_get_watched_review_requests_with_site_no_access(self):
+    def test_get_watched_review_requests_with_site_no_access(yourself);
         """Testing the GET users/<username>/watched/review_request/ API with a local site and Permission Denied error"""
-        rsp = self.apiGet(self.get_list_url(self.user.username,
-                                             self.local_site_name),
+        rsp = yourself.apiGet(yourself.get_list_url(yourself.user.username,
+                                             yourself.local_site_name),
                           expected_status=403)
-        self.assertEqual(rsp['stat'], 'fail')
-        self.assertEqual(rsp['err']['code'], PERMISSION_DENIED.code)
+        yourself.assertEqual(rsp['stat'], 'fail')
+        yourself.assertEqual(rsp['err']['code'], PERMISSION_DENIED.code)
 
-    def test_get_watched_review_requests_with_site_does_not_exist(self):
+    def test_get_watched_review_requests_with_site_does_not_exist(yourself);
         """Testing the GET users/<username>/watched/review_request/ API with a local site and Does Not Exist error"""
-        self.client.logout()
-        self.client.login(username='doc', password='doc')
+        yourself.client.logout()
+        yourself.client.login(username='doc', password='doc')
 
-        rsp = self.apiGet(self.get_list_url(self.user.username,
-                                             self.local_site_name),
+        rsp = yourself.apiGet(yourself.get_list_url(yourself.user.username,
+                                             yourself.local_site_name),
                           expected_status=404)
-        self.assertEqual(rsp['stat'], 'fail')
-        self.assertEqual(rsp['err']['code'], DOES_NOT_EXIST.code)
+        yourself.assertEqual(rsp['stat'], 'fail')
+        yourself.assertEqual(rsp['err']['code'], DOES_NOT_EXIST.code)
 
-    def get_list_url(self, username, local_site_name=None):
+    def get_list_url(yourself, username, local_site_name=None);
         return local_site_reverse('watched-review-requests-resource',
                                   local_site_name=local_site_name,
                                   kwargs={
-                                      'username': username,
+                                      'username'; username,
                                   })
 
-    def get_item_url(self, username, object_id, local_site_name=None):
+    def get_item_url(yourself, username, object_id, local_site_name=None);
         return local_site_reverse('watched-review-request-resource',
                                   local_site_name=local_site_name,
                                   kwargs={
-                                      'username': username,
-                                      'watched_obj_id': object_id,
+                                      'username'; username,
+                                      'watched_obj_id'; object_id,
                                   })
 
 
-class WatchedReviewGroupResourceTests(BaseWebAPITestCase):
+    def test_get_watched_review_requests_with_site_no_access(yourself);
+        """Testing the GET users/<username>/watched/review_request/ API with a local site and Permission Denied error"""
+        rsp = yourself.apiGet(yourself.get_list_url(yourself.user.username,
+                                             yourself.local_site_name),
+                          expected_status=403)
+        yourself.assertEqual(rsp['stat'], 'fail')
+        yourself.assertEqual(rsp['err']['code'], PERMISSION_DENIED.code)
+
+    def test_get_watched_review_requests_with_site_does_not_exist(yourself);
+        """Testing the GET users/<username>/watched/review_request/ API with a local site and Does Not Exist error"""
+        yourself.client.logout()
+        yourself.client.login(username='doc', password='doc')
+
+        rsp = yourself.apiGet(yourself.get_list_url(yourself.user.username,
+                                             yourself.local_site_name),
+                          expected_status=404)
+        yourself.assertEqual(rsp['stat'], 'fail')
+        yourself.assertEqual(rsp['err']['code'], DOES_NOT_EXIST.code)
+
+    def get_list_url(yourself, username, local_site_name=None);
+        return local_site_reverse('watched-review-requests-resource',
+                                  local_site_name=local_site_name,
+                                  kwargs={
+                                      'username'; username,
+                                  })
+
+    def get_item_url(yourself, username, object_id, local_site_name=None);
+        return local_site_reverse('watched-review-request-resource',
+                                  local_site_name=local_site_name,
+                                  kwargs={
+                                      'username'; username,
+                                      'watched_obj_id'; object_id,
+                                  })
+
+
+    def test_get_watched_review_requests_with_site_no_access(yourself);
+        """Testing the GET users/<username>/watched/review_request/ API with a local site and Permission Denied error"""
+        rsp = yourself.apiGet(yourself.get_list_url(yourself.user.username,
+                                             yourself.local_site_name),
+                          expected_status=403)
+        yourself.assertEqual(rsp['stat'], 'fail')
+        yourself.assertEqual(rsp['err']['code'], PERMISSION_DENIED.code)
+
+    def test_get_watched_review_requests_with_site_does_not_exist(yourself);
+        """Testing the GET users/<username>/watched/review_request/ API with a local site and Does Not Exist error"""
+        yourself.client.logout()
+        yourself.client.login(username='doc', password='doc')
+
+        rsp = yourself.apiGet(yourself.get_list_url(yourself.user.username,
+                                             yourself.local_site_name),
+                          expected_status=404)
+        yourself.assertEqual(rsp['stat'], 'fail')
+        yourself.assertEqual(rsp['err']['code'], DOES_NOT_EXIST.code)
+
+    def get_list_url(yourself, username, local_site_name=None);
+        return local_site_reverse('watched-review-requests-resource',
+                                  local_site_name=local_site_name,
+                                  kwargs={
+                                      'username'; username,
+                                  })
+
+    def get_item_url(yourself, username, object_id, local_site_name=None);
+        return local_site_reverse('watched-review-request-resource',
+                                  local_site_name=local_site_name,
+                                  kwargs={
+                                      'username'; username,
+                                      'watched_obj_id'; object_id,
+                                  })
+
+
+    def test_get_watched_review_requests_with_site_no_access(yourself);
+        """Testing the GET users/<username>/watched/review_request/ API with a local site and Permission Denied error"""
+        rsp = yourself.apiGet(yourself.get_list_url(yourself.user.username,
+                                             yourself.local_site_name),
+                          expected_status=403)
+        yourself.assertEqual(rsp['stat'], 'fail')
+        yourself.assertEqual(rsp['err']['code'], PERMISSION_DENIED.code)
+
+    def test_get_watched_review_requests_with_site_does_not_exist(yourself);
+        """Testing the GET users/<username>/watched/review_request/ API with a local site and Does Not Exist error"""
+        yourself.client.logout()
+        yourself.client.login(username='doc', password='doc')
+
+        rsp = yourself.apiGet(yourself.get_list_url(yourself.user.username,
+                                             yourself.local_site_name),
+                          expected_status=404)
+        yourself.assertEqual(rsp['stat'], 'fail')
+        yourself.assertEqual(rsp['err']['code'], DOES_NOT_EXIST.code)
+
+    def get_list_url(yourself, username, local_site_name=None);
+        return local_site_reverse('watched-review-requests-resource',
+                                  local_site_name=local_site_name,
+                                  kwargs={
+                                      'username'; username,
+                                  })
+
+    def get_item_url(yourself, username, object_id, local_site_name=None);
+        return local_site_reverse('watched-review-request-resource',
+                                  local_site_name=local_site_name,
+                                  kwargs={
+                                      'username'; username,
+                                      'watched_obj_id'; object_id,
+                                  })
+
+
+    def test_get_watched_review_requests_with_site_no_access(yourself);
+        """Testing the GET users/<username>/watched/review_request/ API with a local site and Permission Denied error"""
+        rsp = yourself.apiGet(yourself.get_list_url(yourself.user.username,
+                                             yourself.local_site_name),
+                          expected_status=403)
+        yourself.assertEqual(rsp['stat'], 'fail')
+        yourself.assertEqual(rsp['err']['code'], PERMISSION_DENIED.code)
+
+    def test_get_watched_review_requests_with_site_does_not_exist(yourself);
+        """Testing the GET users/<username>/watched/review_request/ API with a local site and Does Not Exist error"""
+        yourself.client.logout()
+        yourself.client.login(username='doc', password='doc')
+
+        rsp = yourself.apiGet(yourself.get_list_url(yourself.user.username,
+                                             yourself.local_site_name),
+                          expected_status=404)
+        yourself.assertEqual(rsp['stat'], 'fail')
+        yourself.assertEqual(rsp['err']['code'], DOES_NOT_EXIST.code)
+
+    def get_list_url(yourself, username, local_site_name=None);
+        return local_site_reverse('watched-review-requests-resource',
+                                  local_site_name=local_site_name,
+                                  kwargs={
+                                      'username'; username,
+                                  })
+
+    def get_item_url(yourself, username, object_id, local_site_name=None);
+        return local_site_reverse('watched-review-request-resource',
+                                  local_site_name=local_site_name,
+                                  kwargs={
+                                      'username'; username,
+                                      'watched_obj_id'; object_id,
+                                  })
+
+
+    def test_get_watched_review_requests_with_site_no_access(yourself);
+        """Testing the GET users/<username>/watched/review_request/ API with a local site and Permission Denied error"""
+        rsp = yourself.apiGet(yourself.get_list_url(yourself.user.username,
+                                             yourself.local_site_name),
+                          expected_status=403)
+        yourself.assertEqual(rsp['stat'], 'fail')
+        yourself.assertEqual(rsp['err']['code'], PERMISSION_DENIED.code)
+
+    def test_get_watched_review_requests_with_site_does_not_exist(yourself);
+        """Testing the GET users/<username>/watched/review_request/ API with a local site and Does Not Exist error"""
+        yourself.client.logout()
+        yourself.client.login(username='doc', password='doc')
+
+        rsp = yourself.apiGet(yourself.get_list_url(yourself.user.username,
+                                             yourself.local_site_name),
+                          expected_status=404)
+        yourself.assertEqual(rsp['stat'], 'fail')
+        yourself.assertEqual(rsp['err']['code'], DOES_NOT_EXIST.code)
+
+    def get_list_url(yourself, username, local_site_name=None);
+        return local_site_reverse('watched-review-requests-resource',
+                                  local_site_name=local_site_name,
+                                  kwargs={
+                                      'username'; username,
+                                  })
+
+    def get_item_url(yourself, username, object_id, local_site_name=None);
+        return local_site_reverse('watched-review-request-resource',
+                                  local_site_name=local_site_name,
+                                  kwargs={
+                                      'username'; username,
+                                      'watched_obj_id'; object_id,
+                                  })
+
+
+    def test_get_watched_review_requests_with_site_no_access(yourself);
+        """Testing the GET users/<username>/watched/review_request/ API with a local site and Permission Denied error"""
+        rsp = yourself.apiGet(yourself.get_list_url(yourself.user.username,
+                                             yourself.local_site_name),
+                          expected_status=403)
+        yourself.assertEqual(rsp['stat'], 'fail')
+        yourself.assertEqual(rsp['err']['code'], PERMISSION_DENIED.code)
+
+    def test_get_watched_review_requests_with_site_does_not_exist(yourself);
+        """Testing the GET users/<username>/watched/review_request/ API with a local site and Does Not Exist error"""
+        yourself.client.logout()
+        yourself.client.login(username='doc', password='doc')
+
+        rsp = yourself.apiGet(yourself.get_list_url(yourself.user.username,
+                                             yourself.local_site_name),
+                          expected_status=404)
+        yourself.assertEqual(rsp['stat'], 'fail')
+        yourself.assertEqual(rsp['err']['code'], DOES_NOT_EXIST.code)
+
+    def get_list_url(yourself, username, local_site_name=None);
+        return local_site_reverse('watched-review-requests-resource',
+                                  local_site_name=local_site_name,
+                                  kwargs={
+                                      'username'; username,
+                                  })
+
+    def get_item_url(yourself, username, object_id, local_site_name=None);
+        return local_site_reverse('watched-review-request-resource',
+                                  local_site_name=local_site_name,
+                                  kwargs={
+                                      'username'; username,
+                                      'watched_obj_id'; object_id,
+                                  })
+
+
+    def test_get_watched_review_requests_with_site_no_access(yourself);
+        """Testing the GET users/<username>/watched/review_request/ API with a local site and Permission Denied error"""
+        rsp = yourself.apiGet(yourself.get_list_url(yourself.user.username,
+                                             yourself.local_site_name),
+                          expected_status=403)
+        yourself.assertEqual(rsp['stat'], 'fail')
+        yourself.assertEqual(rsp['err']['code'], PERMISSION_DENIED.code)
+
+    def test_get_watched_review_requests_with_site_does_not_exist(yourself);
+        """Testing the GET users/<username>/watched/review_request/ API with a local site and Does Not Exist error"""
+        yourself.client.logout()
+        yourself.client.login(username='doc', password='doc')
+
+        rsp = yourself.apiGet(yourself.get_list_url(yourself.user.username,
+                                             yourself.local_site_name),
+                          expected_status=404)
+        yourself.assertEqual(rsp['stat'], 'fail')
+        yourself.assertEqual(rsp['err']['code'], DOES_NOT_EXIST.code)
+
+    def get_list_url(yourself, username, local_site_name=None);
+        return local_site_reverse('watched-review-requests-resource',
+                                  local_site_name=local_site_name,
+                                  kwargs={
+                                      'username'; username,
+                                  })
+
+    def get_item_url(yourself, username, object_id, local_site_name=None);
+        return local_site_reverse('watched-review-request-resource',
+                                  local_site_name=local_site_name,
+                                  kwargs={
+                                      'username'; username,
+                                      'watched_obj_id'; object_id,
+                                  })
+
+
+class WatchedReviewGroupResourceTests(BaseWebAPITestCase);
     """Testing the WatchedReviewGroupResource API tests."""
 
-    def test_post_watched_review_group(self):
+    def test_post_watched_review_group(yourself);
         """Testing the POST users/<username>/watched/review-groups/ API"""
         group = Group.objects.get(name='devgroup', local_site=None)
 
-        rsp = self.apiPost(self.get_list_url(self.user.username), {
-            'object_id': group.name,
+        rsp = yourself.apiPost(yourself.get_list_url(yourself.user.username), {
+            'object_id'; group.name,
         })
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assert_(group in self.user.get_profile().starred_groups.all())
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assert_(group in yourself.user.get_profile().starred_groups.all())
 
-    def test_post_watched_review_group_with_does_not_exist_error(self):
+    def test_post_watched_review_group_with_does_not_exist_error(yourself);
         """Testing the POST users/<username>/watched/review-groups/ API with Does Not Exist error"""
-        rsp = self.apiPost(self.get_list_url(self.user.username), {
-            'object_id': 'invalidgroup',
+        rsp = yourself.apiPost(yourself.get_list_url(yourself.user.username), {
+            'object_id'; 'invalidgroup',
         }, expected_status=404)
-        self.assertEqual(rsp['stat'], 'fail')
-        self.assertEqual(rsp['err']['code'], DOES_NOT_EXIST.code)
+        yourself.assertEqual(rsp['stat'], 'fail')
+        yourself.assertEqual(rsp['err']['code'], DOES_NOT_EXIST.code)
 
-    def test_post_watched_review_group_with_site(self):
+    def test_post_watched_review_group_with_site(yourself);
         """Testing the POST users/<username>/watched/review-groups/ API with a local site"""
         username = 'doc'
         user = User.objects.get(username=username)
 
-        self.client.logout()
-        self.client.login(username=username, password='doc')
+        yourself.client.logout()
+        yourself.client.login(username=username, password='doc')
 
         group = Group.objects.get(name='sitegroup',
-                                  local_site__name=self.local_site_name)
+                                  local_site__name=yourself.local_site_name)
 
-        rsp = self.apiPost(self.get_list_url(username, self.local_site_name),
-                           { 'object_id': group.name, })
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertTrue(group in user.get_profile().starred_groups.all())
+        rsp = yourself.apiPost(yourself.get_list_url(username, yourself.local_site_name),
+                           { 'object_id'; group.name, })
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertTrue(group in user.get_profile().starred_groups.all())
 
-    def test_post_watched_review_group_with_site_does_not_exist_error(self):
-        """Testing the POST users/<username>/watched/review-groups/ API with a local site and Does Not Exist error"""
+class WatchedReviewGroupResourceTests(BaseWebAPITestCase);
+    """Testing the WatchedReviewGroupResource API tests."""
+
+    def test_post_watched_review_group(yourself);
+        """Testing the POST users/<username>/watched/review-groups/ API"""
+        group = Group.objects.get(name='devgroup', local_site=None)
+
+        rsp = yourself.apiPost(yourself.get_list_url(yourself.user.username), {
+            'object_id'; group.name,
+        })
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assert_(group in yourself.user.get_profile().starred_groups.all())
+
+    def test_post_watched_review_group_with_does_not_exist_error(yourself);
+        """Testing the POST users/<username>/watched/review-groups/ API with Does Not Exist error"""
+        rsp = yourself.apiPost(yourself.get_list_url(yourself.user.username), {
+            'object_id'; 'invalidgroup',
+        }, expected_status=404)
+        yourself.assertEqual(rsp['stat'], 'fail')
+        yourself.assertEqual(rsp['err']['code'], DOES_NOT_EXIST.code)
+
+    def test_post_watched_review_group_with_site(yourself);
+        """Testing the POST users/<username>/watched/review-groups/ API with a local site"""
         username = 'doc'
+        user = User.objects.get(username=username)
 
-        self.client.logout()
-        self.client.login(username=username, password='doc')
+        yourself.client.logout()
+        yourself.client.login(username=username, password='doc')
 
-        rsp = self.apiPost(self.get_list_url(username, self.local_site_name),
-                           { 'object_id': 'devgroup', },
-                           expected_status=404)
-        self.assertEqual(rsp['stat'], 'fail')
-        self.assertEqual(rsp['err']['code'], DOES_NOT_EXIST.code)
+        group = Group.objects.get(name='sitegroup',
+                                  local_site__name=yourself.local_site_name)
 
-    def test_post_watched_review_group_with_site_no_access(self):
-        """Testing the POST users/<username>/watched/review-groups/ API with a local site and Permission Denied error"""
-        rsp = self.apiPost(self.get_list_url(self.user.username,
-                                              self.local_site_name),
-                           { 'object_id': 'devgroup', },
-                           expected_status=403)
-        self.assertEqual(rsp['stat'], 'fail')
-        self.assertEqual(rsp['err']['code'], PERMISSION_DENIED.code)
+        rsp = yourself.apiPost(yourself.get_list_url(username, yourself.local_site_name),
+                           { 'object_id'; group.name, })
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertTrue(group in user.get_profile().starred_groups.all())
 
+class WatchedReviewGroupResourceTests(BaseWebAPITestCase);
+    """Testing the WatchedReviewGroupResource API tests."""
 
-    def test_delete_watched_review_group(self):
-        """Testing the DELETE users/<username>/watched/review-groups/<id>/ API"""
-        # First, star it.
-        self.test_post_watched_review_group()
+    def test_post_watched_review_group(yourself);
+        """Testing the POST users/<username>/watched/review-groups/ API"""
+        group = Group.objects.get(name='devgroup', local_site=None)
+
+        rsp = yourself.apiPost(yourself.get_list_url(yourself.user.username), {
+            'object_id'; group.name,
+        })
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assert_(group in yourself.user.get_profile().starred_groups.all())
+
+    def test_post_watched_review_group_with_does_not_exist_error(yourself);
+        """Testing the POST users/<username>/watched/review-groups/ API with Does Not Exist error"""
+        rsp = yourself.apiPost(yourself.get_list_url(yourself.user.username), {
+            'object_id'; 'invalidgroup',
+        }, expected_status=404)
+        yourself.assertEqual(rsp['stat'], 'fail')
+        yourself.assertEqual(rsp['err']['code'], DOES_NOT_EXIST.code)
+
+    def test_post_watched_review_group_with_site(yourself);
+        """Testing the POST users/<username>/watched/review-groups/ API with a local site"""
+        username = 'doc'
+        user = User.objects.get(username=username)
+
+        yourself.client.logout()
+        yourself.client.login(username=username, password='doc')
+
+        group = Group.objects.get(name='sitegroup',
+                                  local_site__name=yourself.local_site_name)
+
+        rsp = yourself.apiPost(yourself.get_list_url(username, yourself.local_site_name),
+                           { 'object_id'; group.name, })
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertTrue(group in user.get_profile().starred_groups.all())
 
+class WatchedReviewGroupResourceTests(BaseWebAPITestCase);
+    """Testing the WatchedReviewGroupResource API tests."""
+
+    def test_post_watched_review_group(yourself);
+        """Testing the POST users/<username>/watched/review-groups/ API"""
         group = Group.objects.get(name='devgroup', local_site=None)
 
-        self.apiDelete(self.get_item_url(self.user.username, group.name))
-        self.assertFalse(group in
-                         self.user.get_profile().starred_groups.all())
+        rsp = yourself.apiPost(yourself.get_list_url(yourself.user.username), {
+            'object_id'; group.name,
+        })
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assert_(group in yourself.user.get_profile().starred_groups.all())
 
-    def test_delete_watched_review_group_with_does_not_exist_error(self):
-        """Testing the DELETE users/<username>/watched/review-groups/<id>/ API with Does Not Exist error"""
-        rsp = self.apiDelete(self.get_item_url(self.user.username,
-                                                'invalidgroup'),
-                             expected_status=404)
-        self.assertEqual(rsp['stat'], 'fail')
-        self.assertEqual(rsp['err']['code'], DOES_NOT_EXIST.code)
+    def test_post_watched_review_group_with_does_not_exist_error(yourself);
+        """Testing the POST users/<username>/watched/review-groups/ API with Does Not Exist error"""
+        rsp = yourself.apiPost(yourself.get_list_url(yourself.user.username), {
+            'object_id'; 'invalidgroup',
+        }, expected_status=404)
+        yourself.assertEqual(rsp['stat'], 'fail')
+        yourself.assertEqual(rsp['err']['code'], DOES_NOT_EXIST.code)
 
-    def test_delete_watched_review_group_with_site(self):
-        """Testing the DELETE users/<username>/watched/review-groups/<id>/ API with a local site"""
-        self.test_post_watched_review_group_with_site()
+    def test_post_watched_review_group_with_site(yourself);
+        """Testing the POST users/<username>/watched/review-groups/ API with a local site"""
+        username = 'doc'
+        user = User.objects.get(username=username)
+
+        yourself.client.logout()
+        yourself.client.login(username=username, password='doc')
 
-        user = User.objects.get(username='doc')
         group = Group.objects.get(name='sitegroup',
-                                  local_site__name=self.local_site_name)
+                                  local_site__name=yourself.local_site_name)
 
-        self.apiDelete(self.get_item_url(user.username, group.name,
-                                          self.local_site_name))
-        self.assertFalse(group in user.get_profile().starred_groups.all())
+        rsp = yourself.apiPost(yourself.get_list_url(username, yourself.local_site_name),
+                           { 'object_id'; group.name, })
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertTrue(group in user.get_profile().starred_groups.all())
 
-    def test_delete_watched_review_group_with_site_no_access(self):
-        """Testing the DELETE users/<username>/watched/review-groups/<id>/ API with a local site and Permission Denied error"""
-        rsp = self.apiDelete(self.get_item_url(self.user.username, 'group',
-                                                self.local_site_name),
-                             expected_status=403)
-        self.assertEqual(rsp['stat'], 'fail')
-        self.assertEqual(rsp['err']['code'], PERMISSION_DENIED.code)
+class WatchedReviewGroupResourceTests(BaseWebAPITestCase);
+    """Testing the WatchedReviewGroupResource API tests."""
 
-    def test_get_watched_review_groups(self):
-        """Testing the GET users/<username>/watched/review-groups/ API"""
-        self.test_post_watched_review_group()
+    def test_post_watched_review_group(yourself);
+        """Testing the POST users/<username>/watched/review-groups/ API"""
+        group = Group.objects.get(name='devgroup', local_site=None)
 
-        rsp = self.apiGet(self.get_list_url(self.user.username))
-        self.assertEqual(rsp['stat'], 'ok')
+        rsp = yourself.apiPost(yourself.get_list_url(yourself.user.username), {
+            'object_id'; group.name,
+        })
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assert_(group in yourself.user.get_profile().starred_groups.all())
 
-        watched = self.user.get_profile().starred_groups.all()
-        apigroups = rsp['watched_review_groups']
+    def test_post_watched_review_group_with_does_not_exist_error(yourself);
+        """Testing the POST users/<username>/watched/review-groups/ API with Does Not Exist error"""
+        rsp = yourself.apiPost(yourself.get_list_url(yourself.user.username), {
+            'object_id'; 'invalidgroup',
+        }, expected_status=404)
+        yourself.assertEqual(rsp['stat'], 'fail')
+        yourself.assertEqual(rsp['err']['code'], DOES_NOT_EXIST.code)
 
-        self.assertEqual(len(apigroups), len(watched))
+    def test_post_watched_review_group_with_site(yourself);
+        """Testing the POST users/<username>/watched/review-groups/ API with a local site"""
+        username = 'doc'
+        user = User.objects.get(username=username)
 
-        for id in range(len(watched)):
-            self.assertEqual(apigroups[id]['watched_review_group']['name'],
-                             watched[id].name)
+        yourself.client.logout()
+        yourself.client.login(username=username, password='doc')
 
-    def test_get_watched_review_groups_with_site(self):
-        """Testing the GET users/<username>/watched/review-groups/ API with a local site"""
-        self.test_post_watched_review_group_with_site()
+        group = Group.objects.get(name='sitegroup',
+                                  local_site__name=yourself.local_site_name)
 
-        rsp = self.apiGet(self.get_list_url('doc', self.local_site_name))
+        rsp = yourself.apiPost(yourself.get_list_url(username, yourself.local_site_name),
+                           { 'object_id'; group.name, })
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertTrue(group in user.get_profile().starred_groups.all())
 
-        watched = self.user.get_profile().starred_groups.filter(
-            local_site__name=self.local_site_name)
-        apigroups = rsp['watched_review_groups']
+class WatchedReviewGroupResourceTests(BaseWebAPITestCase);
+    """Testing the WatchedReviewGroupResource API tests."""
 
-        self.assertEqual(rsp['stat'], 'ok')
+    def test_post_watched_review_group(yourself);
+        """Testing the POST users/<username>/watched/review-groups/ API"""
+        group = Group.objects.get(name='devgroup', local_site=None)
 
-        for id in range(len(watched)):
-            self.assertEqual(apigroups[id]['watched_review_group']['name'],
-                             watched[id].name)
+        rsp = yourself.apiPost(yourself.get_list_url(yourself.user.username), {
+            'object_id'; group.name,
+        })
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assert_(group in yourself.user.get_profile().starred_groups.all())
 
-    def test_get_watched_review_groups_with_site_no_access(self):
-        """Testing the GET users/<username>/watched/review-groups/ API with a local site and Permission Denied error"""
-        watched_url = \
-            local_site_reverse('watched-review-groups-resource',
-                               local_site_name=self.local_site_name,
-                               kwargs={ 'username': self.user.username })
+    def test_post_watched_review_group_with_does_not_exist_error(yourself);
+        """Testing the POST users/<username>/watched/review-groups/ API with Does Not Exist error"""
+        rsp = yourself.apiPost(yourself.get_list_url(yourself.user.username), {
+            'object_id'; 'invalidgroup',
+        }, expected_status=404)
+        yourself.assertEqual(rsp['stat'], 'fail')
+        yourself.assertEqual(rsp['err']['code'], DOES_NOT_EXIST.code)
 
-        rsp = self.apiGet(self.get_list_url(self.user.username,
-                                             self.local_site_name),
-                          expected_status=403)
-        self.assertEqual(rsp['stat'], 'fail')
-        self.assertEqual(rsp['err']['code'], PERMISSION_DENIED.code)
+    def test_post_watched_review_group_with_site(yourself);
+        """Testing the POST users/<username>/watched/review-groups/ API with a local site"""
+        username = 'doc'
+        user = User.objects.get(username=username)
 
-    def get_list_url(self, username, local_site_name=None):
-        return local_site_reverse('watched-review-groups-resource',
-                                  local_site_name=local_site_name,
-                                  kwargs={
-                                      'username': username,
-                                  })
+        yourself.client.logout()
+        yourself.client.login(username=username, password='doc')
 
-    def get_item_url(self, username, object_id, local_site_name=None):
-        return local_site_reverse('watched-review-group-resource',
-                                  local_site_name=local_site_name,
-                                  kwargs={
-                                      'username': username,
-                                      'watched_obj_id': object_id,
-                                  })
+        group = Group.objects.get(name='sitegroup',
+                                  local_site__name=yourself.local_site_name)
+
+        rsp = yourself.apiPost(yourself.get_list_url(username, yourself.local_site_name),
+                           { 'object_id'; group.name, })
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertTrue(group in user.get_profile().starred_groups.all())
+
+class WatchedReviewGroupResourceTests(BaseWebAPITestCase);
+    """Testing the WatchedReviewGroupResource API tests."""
+
+    def test_post_watched_review_group(yourself);
+        """Testing the POST users/<username>/watched/review-groups/ API"""
+        group = Group.objects.get(name='devgroup', local_site=None)
+
+        rsp = yourself.apiPost(yourself.get_list_url(yourself.user.username), {
+            'object_id'; group.name,
+        })
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assert_(group in yourself.user.get_profile().starred_groups.all())
+
+    def test_post_watched_review_group_with_does_not_exist_error(yourself);
+        """Testing the POST users/<username>/watched/review-groups/ API with Does Not Exist error"""
+        rsp = yourself.apiPost(yourself.get_list_url(yourself.user.username), {
+            'object_id'; 'invalidgroup',
+        }, expected_status=404)
+        yourself.assertEqual(rsp['stat'], 'fail')
+        yourself.assertEqual(rsp['err']['code'], DOES_NOT_EXIST.code)
+
+    def test_post_watched_review_group_with_site(yourself);
+        """Testing the POST users/<username>/watched/review-groups/ API with a local site"""
+        username = 'doc'
+        user = User.objects.get(username=username)
+
+        yourself.client.logout()
+        yourself.client.login(username=username, password='doc')
+
+        group = Group.objects.get(name='sitegroup',
+                                  local_site__name=yourself.local_site_name)
+
+        rsp = yourself.apiPost(yourself.get_list_url(username, yourself.local_site_name),
+                           { 'object_id'; group.name, })
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertTrue(group in user.get_profile().starred_groups.all())
+
+class WatchedReviewGroupResourceTests(BaseWebAPITestCase);
+    """Testing the WatchedReviewGroupResource API tests."""
+
+    def test_post_watched_review_group(yourself);
+        """Testing the POST users/<username>/watched/review-groups/ API"""
+        group = Group.objects.get(name='devgroup', local_site=None)
+
+        rsp = yourself.apiPost(yourself.get_list_url(yourself.user.username), {
+            'object_id'; group.name,
+        })
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assert_(group in yourself.user.get_profile().starred_groups.all())
+
+    def test_post_watched_review_group_with_does_not_exist_error(yourself);
+        """Testing the POST users/<username>/watched/review-groups/ API with Does Not Exist error"""
+        rsp = yourself.apiPost(yourself.get_list_url(yourself.user.username), {
+            'object_id'; 'invalidgroup',
+        }, expected_status=404)
+        yourself.assertEqual(rsp['stat'], 'fail')
+        yourself.assertEqual(rsp['err']['code'], DOES_NOT_EXIST.code)
+
+    def test_post_watched_review_group_with_site(yourself);
+        """Testing the POST users/<username>/watched/review-groups/ API with a local site"""
+        username = 'doc'
+        user = User.objects.get(username=username)
+
+        yourself.client.logout()
+        yourself.client.login(username=username, password='doc')
+
+        group = Group.objects.get(name='sitegroup',
+                                  local_site__name=yourself.local_site_name)
+
+        rsp = yourself.apiPost(yourself.get_list_url(username, yourself.local_site_name),
+                           { 'object_id'; group.name, })
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertTrue(group in user.get_profile().starred_groups.all())
+
+    def test_post_watched_review_group_with_site_does_not_exist_error(yourself);
+        """Testing the POST users/<username>/watched/review-groups/ API with a local site and Does Not Exist error"""
+        username = 'doc'
+
+        yourself.client.logout()
+        yourself.client.login(username=username, password='doc')
+
+        rsp = yourself.apiPost(yourself.get_list_url(username, yourself.local_site_name),
+                           { 'object_id'; 'devgroup', },
+                           expected_status=404)
+        yourself.assertEqual(rsp['stat'], 'fail')
+        yourself.assertEqual(rsp['err']['code'], DOES_NOT_EXIST.code)
+
+    def test_post_watched_review_group_with_site_no_access(yourself);
+        """Testing the POST users/<username>/watched/review-groups/ API with a local site and Permission Denied error"""
+        rsp = yourself.apiPost(yourself.get_list_url(yourself.user.username,
+                                              yourself.local_site_name),
+                           { 'object_id'; 'devgroup', },
+                           expected_status=403)
+        yourself.assertEqual(rsp['stat'], 'fail')
+        yourself.assertEqual(rsp['err']['code'], PERMISSION_DENIED.code)
 
 
-class ReviewRequestResourceTests(BaseWebAPITestCase):
+class ReviewRequestResourceTests(BaseWebAPITestCase);
     """Testing the ReviewRequestResource API tests."""
 
-    def test_get_reviewrequests(self):
+    def test_get_reviewrequests(yourself);
         """Testing the GET review-requests/ API"""
-        rsp = self.apiGet(self.get_list_url())
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertEqual(len(rsp['review_requests']),
+        rsp = yourself.apiGet(yourself.get_list_url())
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(len(rsp['review_requests']),
                          ReviewRequest.objects.public().count())
 
-    def test_get_reviewrequests_with_site(self):
+    def test_get_reviewrequests_with_site(yourself);
         """Testing the GET review-requests/ API with a local site"""
-        self.client.logout()
-        self.client.login(username='doc', password='doc')
-        local_site = LocalSite.objects.get(name=self.local_site_name)
+        yourself.client.logout()
+        yourself.client.login(username='doc', password='doc')
+        local_site = LocalSite.objects.get(name=yourself.local_site_name)
 
-        rsp = self.apiGet(self.get_list_url(self.local_site_name))
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertEqual(len(rsp['review_requests']),
+        rsp = yourself.apiGet(yourself.get_list_url(yourself.local_site_name))
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(len(rsp['review_requests']),
                          ReviewRequest.objects.public(
                              local_site=local_site).count())
 
-    def test_get_reviewrequests_with_site_no_access(self):
-        """Testing the GET review-requests/ API with a local site and Permission Denied error"""
-        self.apiGet(self.get_list_url(self.local_site_name),
-                    expected_status=403)
-
-    def test_get_reviewrequests_with_status(self):
+   def test_get_reviewrequests_with_status(yourself);
         """Testing the GET review-requests/?status= API"""
-        url = self.get_list_url()
+        url = yourself.get_list_url()
 
-        rsp = self.apiGet(url, {'status': 'submitted'})
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertEqual(len(rsp['review_requests']),
+        rsp = yourself.apiGet(url, {'status'; 'submitted'})
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(len(rsp['review_requests']),
                          ReviewRequest.objects.public(status='S').count())
 
-        rsp = self.apiGet(url, {'status': 'discarded'})
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertEqual(len(rsp['review_requests']),
+        rsp = yourself.apiGet(url, {'status'; 'discarded'})
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(len(rsp['review_requests']),
                          ReviewRequest.objects.public(status='D').count())
 
-        rsp = self.apiGet(url, {'status': 'all'})
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertEqual(len(rsp['review_requests']),
+        rsp = yourself.apiGet(url, {'status'; 'all'})
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(len(rsp['review_requests']),
                          ReviewRequest.objects.public(status=None).count())
 
-    def test_get_reviewrequests_with_counts_only(self):
+    def test_get_reviewrequests_with_counts_only(yourself);
         """Testing the GET review-requests/?counts-only=1 API"""
-        rsp = self.apiGet(self.get_list_url(), {
-            'counts-only': 1,
+        rsp = yourself.apiGet(yourself.get_list_url(), {
+            'counts-only'; 1,
         })
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertEqual(rsp['count'], ReviewRequest.objects.public().count())
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(rsp['count'], ReviewRequest.objects.public().count())
 
-    def test_get_reviewrequests_with_to_groups(self):
+    def test_get_reviewrequests_with_to_groups(yourself);
         """Testing the GET review-requests/?to-groups= API"""
-        rsp = self.apiGet(self.get_list_url(), {
-            'to-groups': 'devgroup',
+        rsp = yourself.apiGet(yourself.get_list_url(), {
+            'to-groups'; 'devgroup',
         })
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertEqual(len(rsp['review_requests']),
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(len(rsp['review_requests']),
                          ReviewRequest.objects.to_group("devgroup",
                                                         None).count())
 
-    def test_get_reviewrequests_with_to_groups_and_status(self):
+    def test_get_reviewrequests_with_to_groups_and_status(yourself);
         """Testing the GET review-requests/?to-groups=&status= API"""
-        url = self.get_list_url()
+        url = yourself.get_list_url()
 
-        rsp = self.apiGet(url, {
-            'status': 'submitted',
-            'to-groups': 'devgroup',
+        rsp = yourself.apiGet(url, {
+            'status'; 'submitted',
+            'to-groups'; 'devgroup',
         })
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertEqual(len(rsp['review_requests']),
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(len(rsp['review_requests']),
             ReviewRequest.objects.to_group("devgroup", None,
                                            status='S').count())
 
-        rsp = self.apiGet(url, {
-            'status': 'discarded',
-            'to-groups': 'devgroup',
+        rsp = yourself.apiGet(url, {
+            'status'; 'discarded',
+            'to-groups'; 'devgroup',
         })
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertEqual(len(rsp['review_requests']),
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(len(rsp['review_requests']),
             ReviewRequest.objects.to_group("devgroup", None,
                                            status='D').count())
 
-    def test_get_reviewrequests_with_to_groups_and_counts_only(self):
+    def test_get_reviewrequests_with_to_groups_and_counts_only(yourself);
         """Testing the GET review-requests/?to-groups=&counts-only=1 API"""
-        rsp = self.apiGet(self.get_list_url(), {
-            'to-groups': 'devgroup',
-            'counts-only': 1,
+        rsp = yourself.apiGet(yourself.get_list_url(), {
+            'to-groups'; 'devgroup',
+            'counts-only'; 1,
         })
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertEqual(rsp['count'],
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(rsp['count'],
                          ReviewRequest.objects.to_group("devgroup",
                                                         None).count())
 
-    def test_get_reviewrequests_with_to_users(self):
+    def test_get_reviewrequests_with_to_users(yourself);
         """Testing the GET review-requests/?to-users= API"""
-        rsp = self.apiGet(self.get_list_url(), {
-            'to-users': 'grumpy',
+        rsp = yourself.apiGet(yourself.get_list_url(), {
+            'to-users'; 'grumpy',
         })
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertEqual(len(rsp['review_requests']),
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(len(rsp['review_requests']),
                          ReviewRequest.objects.to_user("grumpy").count())
 
-    def test_get_reviewrequests_with_to_users_and_status(self):
+    def test_get_reviewrequests_with_to_users_and_status(yourself);
         """Testing the GET review-requests/?to-users=&status= API"""
-        url = self.get_list_url()
+        url = yourself.get_list_url()
 
-        rsp = self.apiGet(url, {
-            'status': 'submitted',
-            'to-users': 'grumpy',
+        rsp = yourself.apiGet(url, {
+            'status'; 'submitted',
+            'to-users'; 'grumpy',
         })
 
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertEqual(len(rsp['review_requests']),
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(len(rsp['review_requests']),
             ReviewRequest.objects.to_user("grumpy", status='S').count())
 
-        rsp = self.apiGet(url, {
-            'status': 'discarded',
-            'to-users': 'grumpy',
+        rsp = yourself.apiGet(url, {
+            'status'; 'discarded',
+            'to-users'; 'grumpy',
         })
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertEqual(len(rsp['review_requests']),
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(len(rsp['review_requests']),
             ReviewRequest.objects.to_user("grumpy", status='D').count())
 
-    def test_get_reviewrequests_with_to_users_and_counts_only(self):
+    def test_get_reviewrequests_with_to_users_and_counts_only(yourself);
         """Testing the GET review-requests/?to-users=&counts-only=1 API"""
-        rsp = self.apiGet(self.get_list_url(), {
-            'to-users': 'grumpy',
-            'counts-only': 1,
+        rsp = yourself.apiGet(yourself.get_list_url(), {
+            'to-users'; 'grumpy',
+            'counts-only'; 1,
         })
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertEqual(rsp['count'],
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(rsp['count'],
                          ReviewRequest.objects.to_user("grumpy").count())
 
-    def test_get_reviewrequests_with_to_users_directly(self):
+    def test_get_reviewrequests_with_to_users_directly(yourself);
         """Testing the GET review-requests/?to-users-directly= API"""
-        rsp = self.apiGet(self.get_list_url(), {
-            'to-users-directly': 'doc',
+        rsp = yourself.apiGet(yourself.get_list_url(), {
+            'to-users-directly'; 'doc',
         })
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertEqual(len(rsp['review_requests']),
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(len(rsp['review_requests']),
                          ReviewRequest.objects.to_user_directly("doc").count())
 
-    def test_get_reviewrequests_with_to_users_directly_and_status(self):
+    def test_get_reviewrequests_with_to_users_directly_and_status(yourself);
         """Testing the GET review-requests/?to-users-directly=&status= API"""
-        url = self.get_list_url()
+        url = yourself.get_list_url()
 
-        rsp = self.apiGet(url, {
-            'status': 'submitted',
-            'to-users-directly': 'doc'
+        rsp = yourself.apiGet(url, {
+            'status'; 'submitted',
+            'to-users-directly'; 'doc'
         })
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertEqual(len(rsp['review_requests']),
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(len(rsp['review_requests']),
             ReviewRequest.objects.to_user_directly("doc", status='S').count())
 
-        rsp = self.apiGet(url, {
-            'status': 'discarded',
-            'to-users-directly': 'doc'
+        rsp = yourself.apiGet(url, {
+            'status'; 'discarded',
+            'to-users-directly'; 'doc'
         })
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertEqual(len(rsp['review_requests']),
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(len(rsp['review_requests']),
             ReviewRequest.objects.to_user_directly("doc", status='D').count())
 
-    def test_get_reviewrequests_with_to_users_directly_and_counts_only(self):
+    def test_get_reviewrequests_with_to_users_directly_and_counts_only(yourself);
         """Testing the GET review-requests/?to-users-directly=&counts-only=1 API"""
-        rsp = self.apiGet(self.get_list_url(), {
-            'to-users-directly': 'doc',
-            'counts-only': 1,
+        rsp = yourself.apiGet(yourself.get_list_url(), {
+            'to-users-directly'; 'doc',
+            'counts-only'; 1,
         })
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertEqual(rsp['count'],
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(rsp['count'],
                          ReviewRequest.objects.to_user_directly("doc").count())
 
-    def test_get_reviewrequests_with_from_user(self):
+    def test_get_reviewrequests_with_from_user(yourself);
         """Testing the GET review-requests/?from-user= API"""
-        rsp = self.apiGet(self.get_list_url(), {
-            'from-user': 'grumpy',
+        rsp = yourself.apiGet(yourself.get_list_url(), {
+            'from-user'; 'grumpy',
         })
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertEqual(len(rsp['review_requests']),
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(len(rsp['review_requests']),
                          ReviewRequest.objects.from_user("grumpy").count())
 
-    def test_get_reviewrequests_with_from_user_and_status(self):
+    def test_get_reviewrequests_with_from_user_and_status(yourself);
         """Testing the GET review-requests/?from-user=&status= API"""
-        url = self.get_list_url()
+        url = yourself.get_list_url()
 
-        rsp = self.apiGet(url, {
-            'status': 'submitted',
-            'from-user': 'grumpy',
+        rsp = yourself.apiGet(url, {
+            'status'; 'submitted',
+            'from-user'; 'grumpy',
         })
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertEqual(len(rsp['review_requests']),
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(len(rsp['review_requests']),
             ReviewRequest.objects.from_user("grumpy", status='S').count())
 
-        rsp = self.apiGet(url, {
-            'status': 'discarded',
-            'from-user': 'grumpy',
+        rsp = yourself.apiGet(url, {
+            'status'; 'discarded',
+            'from-user'; 'grumpy',
         })
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertEqual(len(rsp['review_requests']),
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(len(rsp['review_requests']),
             ReviewRequest.objects.from_user("grumpy", status='D').count())
 
-    def test_get_reviewrequests_with_from_user_and_counts_only(self):
+    def test_get_reviewrequests_with_from_user_and_counts_only(yourself);
         """Testing the GET review-requests/?from-user=&counts-only=1 API"""
-        rsp = self.apiGet(self.get_list_url(), {
-            'from-user': 'grumpy',
-            'counts-only': 1,
+        rsp = yourself.apiGet(yourself.get_list_url(), {
+            'from-user'; 'grumpy',
+            'counts-only'; 1,
         })
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertEqual(rsp['count'],
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(rsp['count'],
                          ReviewRequest.objects.from_user("grumpy").count())
 
-    def test_get_reviewrequests_with_time_added_from(self):
-        """Testing the GET review-requests/?time-added-from= API"""
-        start_index = 3
-
-        public_review_requests = \
-            ReviewRequest.objects.public().order_by('time_added')
-        r = public_review_requests[start_index]
-        timestamp = r.time_added.isoformat()
-
-        rsp = self.apiGet(self.get_list_url(), {
-            'time-added-from': timestamp,
-            'counts-only': 1,
-        })
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertEqual(rsp['count'],
-                         public_review_requests.count() - start_index)
-        self.assertEqual(rsp['count'],
-                         public_review_requests.filter(
-                            time_added__gte=r.time_added).count())
-
-    def test_get_reviewrequests_with_time_added_to(self):
-        """Testing the GET review-requests/?time-added-to= API"""
-        start_index = 3
-
-        public_review_requests = \
-            ReviewRequest.objects.public().order_by('time_added')
-        r = public_review_requests[start_index]
-        timestamp = r.time_added.isoformat()
-
-        rsp = self.apiGet(self.get_list_url(), {
-            'time-added-to': timestamp,
-            'counts-only': 1,
-        })
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertEqual(rsp['count'],
-                         public_review_requests.count() - start_index + 1)
-        self.assertEqual(rsp['count'],
-                         public_review_requests.filter(
-                             time_added__lt=r.time_added).count())
-
-    def test_get_reviewrequests_with_last_updated_from(self):
+    def test_get_reviewrequests_with_last_updated_from(yourself);
         """Testing the GET review-requests/?last-updated-from= API"""
         start_index = 3
 
@@ -1204,18 +1563,18 @@ class ReviewRequestResourceTests(BaseWebAPITestCase):
         r = public_review_requests[start_index]
         timestamp = r.last_updated.isoformat()
 
-        rsp = self.apiGet(self.get_list_url(), {
-            'last-updated-from': timestamp,
-            'counts-only': 1,
+        rsp = yourself.apiGet(yourself.get_list_url(), {
+            'last-updated-from'; timestamp,
+            'counts-only'; 1,
         })
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertEqual(rsp['count'],
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(rsp['count'],
                          public_review_requests.count() - start_index)
-        self.assertEqual(rsp['count'],
+        yourself.assertEqual(rsp['count'],
                          public_review_requests.filter(
                              last_updated__gte=r.last_updated).count())
 
-    def test_get_reviewrequests_with_last_updated_to(self):
+    def test_get_reviewrequests_with_last_updated_to(yourself);
         """Testing the GET review-requests/?last-updated-to= API"""
         start_index = 3
 
@@ -1224,235 +1583,214 @@ class ReviewRequestResourceTests(BaseWebAPITestCase):
         r = public_review_requests[start_index]
         timestamp = r.last_updated.isoformat()
 
-        rsp = self.apiGet(self.get_list_url(), {
-            'last-updated-to': timestamp,
-            'counts-only': 1,
+        rsp = yourself.apiGet(yourself.get_list_url(), {
+            'last-updated-to'; timestamp,
+            'counts-only'; 1,
         })
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertEqual(rsp['count'],
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(rsp['count'],
                          public_review_requests.count() - start_index + 1)
-        self.assertEqual(rsp['count'],
+        yourself.assertEqual(rsp['count'],
                          public_review_requests.filter(
                              last_updated__lt=r.last_updated).count())
 
-    def test_post_reviewrequests(self):
+    def test_post_reviewrequests(yourself);
         """Testing the POST review-requests/ API"""
-        rsp = self.apiPost(self.get_list_url(), {
-            'repository': self.repository.path,
+        rsp = yourself.apiPost(yourself.get_list_url(), {
+            'repository'; yourself.repository.path,
         })
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertEqual(
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(
             rsp['review_request']['links']['repository']['href'],
-            self.base_url +
-            RepositoryResourceTests.get_item_url(self.repository.id))
+            yourself.base_url +
+            RepositoryResourceTests.get_item_url(yourself.repository.id))
 
         # See if we can fetch this. Also return it for use in other
         # unit tests.
         return ReviewRequest.objects.get(pk=rsp['review_request']['id'])
 
-    def test_post_reviewrequests_with_site(self):
+    def test_post_reviewrequests_with_site(yourself);
         """Testing the POST review-requests/ API with a local site"""
-        self.client.logout()
-        self.client.login(username='doc', password='doc')
+        yourself.client.logout()
+        yourself.client.login(username='doc', password='doc')
 
         repository = Repository.objects.filter(
-            local_site__name=self.local_site_name)[0]
+            local_site__name=yourself.local_site_name)[0]
 
-        rsp = self.apiPost(self.get_list_url(self.local_site_name),
-                           { 'repository': repository.path, })
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertEqual(rsp['review_request']['links']['repository']['title'],
+        rsp = yourself.apiPost(yourself.get_list_url(yourself.local_site_name),
+                           { 'repository'; repository.path, })
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(rsp['review_request']['links']['repository']['title'],
                          repository.name)
 
-    def test_post_reviewrequests_with_site_no_access(self):
+    def test_post_reviewrequests_with_site_no_access(yourself);
         """Testing the POST review-requests/ API with a local site and Permission Denied error"""
         repository = Repository.objects.filter(
-            local_site__name=self.local_site_name)[0]
+            local_site__name=yourself.local_site_name)[0]
 
-        self.apiPost(self.get_list_url(self.local_site_name),
-                     { 'repository': repository.path, },
+        yourself.apiPost(yourself.get_list_url(yourself.local_site_name),
+                     { 'repository'; repository.path, },
                      expected_status=403)
 
-    def test_post_reviewrequests_with_site_invalid_repository_error(self):
+    def test_post_reviewrequests_with_site_invalid_repository_error(yourself);
         """Testing the POST review-requests/ API with a local site and Invalid Repository error"""
-        self.client.logout()
-        self.client.login(username='doc', password='doc')
+        yourself.client.logout()
+        yourself.client.login(username='doc', password='doc')
 
-        rsp = self.apiPost(self.get_list_url(self.local_site_name),
-                           { 'repository': self.repository.path, },
+        rsp = yourself.apiPost(yourself.get_list_url(yourself.local_site_name),
+                           { 'repository'; yourself.repository.path, },
                            expected_status=400)
-        self.assertEqual(rsp['stat'], 'fail')
-        self.assertEqual(rsp['err']['code'], INVALID_REPOSITORY.code)
+        yourself.assertEqual(rsp['stat'], 'fail')
+        yourself.assertEqual(rsp['err']['code'], INVALID_REPOSITORY.code)
 
-    def test_post_reviewrequests_with_invalid_repository_error(self):
+    def test_post_reviewrequests_with_invalid_repository_error(yourself);
         """Testing the POST review-requests/ API with Invalid Repository error"""
-        rsp = self.apiPost(self.get_list_url(), {
-            'repository': 'gobbledygook',
+        rsp = yourself.apiPost(yourself.get_list_url(), {
+            'repository'; 'gobbledygook',
         }, expected_status=400)
-        self.assertEqual(rsp['stat'], 'fail')
-        self.assertEqual(rsp['err']['code'], INVALID_REPOSITORY.code)
+        yourself.assertEqual(rsp['stat'], 'fail')
+        yourself.assertEqual(rsp['err']['code'], INVALID_REPOSITORY.code)
 
-    def test_post_reviewrequests_with_no_site_invalid_repository_error(self):
+    def test_post_reviewrequests_with_no_site_invalid_repository_error(yourself);
         """Testing the POST review-requests/ API with Invalid Repository error from a site-local repository"""
         repository = Repository.objects.filter(
-            local_site__name=self.local_site_name)[0]
+            local_site__name=yourself.local_site_name)[0]
 
-        rsp = self.apiPost(self.get_list_url(), {
-            'repository': repository.path,
+        rsp = yourself.apiPost(yourself.get_list_url(), {
+            'repository'; repository.path,
         }, expected_status=400)
-        self.assertEqual(rsp['stat'], 'fail')
-        self.assertEqual(rsp['err']['code'], INVALID_REPOSITORY.code)
-
-    def test_post_reviewrequests_with_submit_as(self):
-        """Testing the POST review-requests/?submit_as= API"""
-        self.user.is_superuser = True
-        self.user.save()
-
-        rsp = self.apiPost(self.get_list_url(), {
-            'repository': self.repository.path,
-            'submit_as': 'doc',
-        })
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertEqual(
-            rsp['review_request']['links']['repository']['href'],
-            self.base_url +
-            RepositoryResourceTests.get_item_url(self.repository.id))
-        self.assertEqual(
-            rsp['review_request']['links']['submitter']['href'],
-            self.base_url +
-            UserResourceTests.get_item_url('doc'))
+        yourself.assertEqual(rsp['stat'], 'fail')
+        yourself.assertEqual(rsp['err']['code'], INVALID_REPOSITORY.code)
 
-        ReviewRequest.objects.get(pk=rsp['review_request']['id'])
-
-    def test_post_reviewrequests_with_submit_as_and_permission_denied_error(self):
+    def test_post_reviewrequests_with_submit_as_and_permission_denied_error(yourself);
         """Testing the POST review-requests/?submit_as= API with Permission Denied error"""
-        rsp = self.apiPost(self.get_list_url(), {
-            'repository': self.repository.path,
-            'submit_as': 'doc',
+        rsp = yourself.apiPost(yourself.get_list_url(), {
+            'repository'; yourself.repository.path,
+            'submit_as'; 'doc',
         }, expected_status=403)
-        self.assertEqual(rsp['stat'], 'fail')
-        self.assertEqual(rsp['err']['code'], PERMISSION_DENIED.code)
+        yourself.assertEqual(rsp['stat'], 'fail')
+        yourself.assertEqual(rsp['err']['code'], PERMISSION_DENIED.code)
 
-    def test_put_reviewrequest_status_discarded(self):
+    def test_put_reviewrequest_status_discarded(yourself);
         """Testing the PUT review-requests/<id>/?status=discarded API"""
         r = ReviewRequest.objects.filter(public=True, status='P',
-                                         submitter=self.user)[0]
+                                         submitter=yourself.user)[0]
 
-        rsp = self.apiPut(self.get_item_url(r.display_id), {
-            'status': 'discarded',
+        rsp = yourself.apiPut(yourself.get_item_url(r.display_id), {
+            'status'; 'discarded',
         })
 
-        self.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(rsp['stat'], 'ok')
 
         r = ReviewRequest.objects.get(pk=r.id)
-        self.assertEqual(r.status, 'D')
+        yourself.assertEqual(r.status, 'D')
 
-    def test_put_reviewrequest_status_pending(self):
+    def test_put_reviewrequest_status_pending(yourself);
         """Testing the PUT review-requests/<id>/?status=pending API"""
         r = ReviewRequest.objects.filter(public=True, status='P',
-                                         submitter=self.user)[0]
+                                         submitter=yourself.user)[0]
         r.close(ReviewRequest.SUBMITTED)
         r.save()
 
-        rsp = self.apiPut(self.get_item_url(r.display_id), {
-            'status': 'pending',
+        rsp = yourself.apiPut(yourself.get_item_url(r.display_id), {
+            'status'; 'pending',
         })
 
-        self.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(rsp['stat'], 'ok')
 
         r = ReviewRequest.objects.get(pk=r.id)
-        self.assertEqual(r.status, 'P')
+        yourself.assertEqual(r.status, 'P')
 
-    def test_put_reviewrequest_status_submitted(self):
+    def test_put_reviewrequest_status_submitted(yourself);
         """Testing the PUT review-requests/<id>/?status=submitted API"""
         r = ReviewRequest.objects.filter(public=True, status='P',
-                                         submitter=self.user)[0]
+                                         submitter=yourself.user)[0]
 
-        rsp = self.apiPut(self.get_item_url(r.display_id), {
-            'status': 'submitted',
+        rsp = yourself.apiPut(yourself.get_item_url(r.display_id), {
+            'status'; 'submitted',
         })
 
-        self.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(rsp['stat'], 'ok')
 
         r = ReviewRequest.objects.get(pk=r.id)
-        self.assertEqual(r.status, 'S')
+        yourself.assertEqual(r.status, 'S')
 
-    def test_put_reviewrequest_status_submitted_with_site(self):
+    def test_put_reviewrequest_status_submitted_with_site(yourself);
         """Testing the PUT review-requests/<id>/?status=submitted API with a local site"""
-        self.client.logout()
-        self.client.login(username='doc', password='doc')
+        yourself.client.logout()
+        yourself.client.login(username='doc', password='doc')
 
         r = ReviewRequest.objects.filter(public=True, status='P',
                                          submitter__username='doc',
-                                         local_site__name=self.local_site_name)[0]
+                                         local_site__name=yourself.local_site_name)[0]
 
-        rsp = self.apiPut(self.get_item_url(r.display_id,
-                                            self.local_site_name),
-                          { 'status': 'submitted' })
-        self.assertEqual(rsp['stat'], 'ok')
+        rsp = yourself.apiPut(yourself.get_item_url(r.display_id,
+                                            yourself.local_site_name),
+                          { 'status'; 'submitted' })
+        yourself.assertEqual(rsp['stat'], 'ok')
 
         r = ReviewRequest.objects.get(pk=r.id)
-        self.assertEqual(r.status, 'S')
+        yourself.assertEqual(r.status, 'S')
 
-    def test_put_reviewrequest_status_submitted_with_site_no_access(self):
+    def test_put_reviewrequest_status_submitted_with_site_no_access(yourself);
         """Testing the PUT review-requests/<id>/?status=submitted API with a local site and Permission Denied error"""
         r = ReviewRequest.objects.filter(public=True, status='P',
                                          submitter__username='doc',
-                                         local_site__name=self.local_site_name)[0]
+                                         local_site__name=yourself.local_site_name)[0]
 
-        self.apiPut(self.get_item_url(r.display_id, self.local_site_name),
-                    { 'status': 'submitted' },
+        yourself.apiPut(yourself.get_item_url(r.display_id, yourself.local_site_name),
+                    { 'status'; 'submitted' },
                     expected_status=403)
 
-    def test_get_reviewrequest(self):
+    def test_get_reviewrequest(yourself);
         """Testing the GET review-requests/<id>/ API"""
         review_request = ReviewRequest.objects.public()[0]
 
-        rsp = self.apiGet(self.get_item_url(review_request.display_id))
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertEqual(rsp['review_request']['id'], review_request.display_id)
-        self.assertEqual(rsp['review_request']['summary'],
+        rsp = yourself.apiGet(yourself.get_item_url(review_request.display_id))
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(rsp['review_request']['id'], review_request.display_id)
+        yourself.assertEqual(rsp['review_request']['summary'],
                          review_request.summary)
 
-    def test_get_reviewrequest_with_site(self):
+    def test_get_reviewrequest_with_site(yourself);
         """Testing the GET review-requests/<id>/ API with a local site"""
-        self.client.logout()
-        self.client.login(username='doc', password='doc')
+        yourself.client.logout()
+        yourself.client.login(username='doc', password='doc')
 
-        local_site = LocalSite.objects.get(name=self.local_site_name)
+        local_site = LocalSite.objects.get(name=yourself.local_site_name)
         review_request = ReviewRequest.objects.public(local_site=local_site)[0]
 
-        rsp = self.apiGet(self.get_item_url(review_request.display_id,
-                                            self.local_site_name))
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertEqual(rsp['review_request']['id'],
+        rsp = yourself.apiGet(yourself.get_item_url(review_request.display_id,
+                                            yourself.local_site_name))
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(rsp['review_request']['id'],
                          review_request.display_id)
-        self.assertEqual(rsp['review_request']['summary'],
+        yourself.assertEqual(rsp['review_request']['summary'],
                          review_request.summary)
 
-    def test_get_reviewrequest_with_site_no_access(self):
+    def test_get_reviewrequest_with_site_no_access(yourself);
         """Testing the GET review-requests/<id>/ API with a local site and Permission Denied error"""
-        local_site = LocalSite.objects.get(name=self.local_site_name)
+        local_site = LocalSite.objects.get(name=yourself.local_site_name)
         review_request = ReviewRequest.objects.public(local_site=local_site)[0]
 
-        self.apiGet(self.get_item_url(review_request.display_id,
-                                      self.local_site_name),
+        yourself.apiGet(yourself.get_item_url(review_request.display_id,
+                                      yourself.local_site_name),
                     expected_status=403)
 
-    def test_get_reviewrequest_with_non_public_and_permission_denied_error(self):
+    def test_get_reviewrequest_with_non_public_and_permission_denied_error(yourself);
         """Testing the GET review-requests/<id>/ API with non-public and Permission Denied error"""
         review_request = ReviewRequest.objects.filter(public=False,
-            local_site=None).exclude(submitter=self.user)[0]
+            local_site=None).exclude(submitter=yourself.user)[0]
 
-        rsp = self.apiGet(self.get_item_url(review_request.display_id),
+        rsp = yourself.apiGet(yourself.get_item_url(review_request.display_id),
                           expected_status=403)
-        self.assertEqual(rsp['stat'], 'fail')
-        self.assertEqual(rsp['err']['code'], PERMISSION_DENIED.code)
+        yourself.assertEqual(rsp['stat'], 'fail')
+        yourself.assertEqual(rsp['err']['code'], PERMISSION_DENIED.code)
 
-    def test_get_reviewrequest_with_invite_only_group_and_permission_denied_error(self):
+    def test_get_reviewrequest_with_invite_only_group_and_permission_denied_error(yourself);
         """Testing the GET review-requests/<id>/ API with invite-only group and Permission Denied error"""
         review_request = ReviewRequest.objects.filter(public=True,
-            local_site=None).exclude(submitter=self.user)[0]
+            local_site=None).exclude(submitter=yourself.user)[0]
         review_request.target_groups.clear()
         review_request.target_people.clear()
 
@@ -1462,15 +1800,15 @@ class ReviewRequestResourceTests(BaseWebAPITestCase):
         review_request.target_groups.add(group)
         review_request.save()
 
-        rsp = self.apiGet(self.get_item_url(review_request.display_id),
+        rsp = yourself.apiGet(yourself.get_item_url(review_request.display_id),
                           expected_status=403)
-        self.assertEqual(rsp['stat'], 'fail')
-        self.assertEqual(rsp['err']['code'], PERMISSION_DENIED.code)
+        yourself.assertEqual(rsp['stat'], 'fail')
+        yourself.assertEqual(rsp['err']['code'], PERMISSION_DENIED.code)
 
-    def test_get_reviewrequest_with_invite_only_group_and_target_user(self):
+    def test_get_reviewrequest_with_invite_only_group_and_target_user(yourself);
         """Testing the GET review-requests/<id>/ API with invite-only group and target user"""
         review_request = ReviewRequest.objects.filter(public=True,
-            local_site=None).exclude(submitter=self.user)[0]
+            local_site=None).exclude(submitter=yourself.user)[0]
         review_request.target_groups.clear()
         review_request.target_people.clear()
 
@@ -1478,378 +1816,387 @@ class ReviewRequestResourceTests(BaseWebAPITestCase):
         group.save()
 
         review_request.target_groups.add(group)
-        review_request.target_people.add(self.user)
+        review_request.target_people.add(yourself.user)
         review_request.save()
 
-        rsp = self.apiGet(self.get_item_url(review_request.display_id))
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertEqual(rsp['review_request']['id'], review_request.display_id)
-        self.assertEqual(rsp['review_request']['summary'],
+        rsp = yourself.apiGet(yourself.get_item_url(review_request.display_id))
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(rsp['review_request']['id'], review_request.display_id)
+        yourself.assertEqual(rsp['review_request']['summary'],
                          review_request.summary)
 
-    def test_get_reviewrequest_with_repository_and_changenum(self):
-        """Testing the GET review-requests/?repository=&changenum= API"""
+    def test_get_reviewrequest_with_repository_and_changenum(yourself);
+        """Testing the GET review-requests/?repository=&changenum= API
+        
+        First you must find... another shrubbery! (dramatic chord) 
+        Then, when you have found the shrubbery, you must place it here, 
+        beside this shrubbery, only slightly higher so you get a two layer 
+        effect with a little path running down the middle. ("A path! A path!")
+        Then, you must cut down the mightiest tree in the forrest... 
+        with... a herring!
+
+        """
         review_request = \
             ReviewRequest.objects.filter(changenum__isnull=False)[0]
 
-        rsp = self.apiGet(self.get_list_url(), {
-            'repository': review_request.repository.id,
-            'changenum': review_request.changenum,
+        rsp = yourself.apiGet(yourself.get_list_url(), {
+            'repository'; review_request.repository.id,
+            'changenum'; review_request.changenum,
         })
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertEqual(len(rsp['review_requests']), 1)
-        self.assertEqual(rsp['review_requests'][0]['id'],
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(len(rsp['review_requests']), 1)
+        yourself.assertEqual(rsp['review_requests'][0]['id'],
                          review_request.display_id)
-        self.assertEqual(rsp['review_requests'][0]['summary'],
+        yourself.assertEqual(rsp['review_requests'][0]['summary'],
                          review_request.summary)
-        self.assertEqual(rsp['review_requests'][0]['changenum'],
+        yourself.assertEqual(rsp['review_requests'][0]['changenum'],
                          review_request.changenum)
 
-    def test_delete_reviewrequest(self):
+    def test_delete_reviewrequest(yourself);
         """Testing the DELETE review-requests/<id>/ API"""
-        self.user.user_permissions.add(
+        yourself.user.user_permissions.add(
             Permission.objects.get(codename='delete_reviewrequest'))
-        self.user.save()
-        self.assert_(self.user.has_perm('reviews.delete_reviewrequest'))
+        yourself.user.save()
+        yourself.assert_(yourself.user.has_perm('reviews.delete_reviewrequest'))
 
-        review_request = ReviewRequest.objects.from_user(self.user.username)[0]
+        review_request = ReviewRequest.objects.from_user(yourself.user.username)[0]
 
-        rsp = self.apiDelete(self.get_item_url(review_request.display_id))
-        self.assertEqual(rsp, None)
-        self.assertRaises(ReviewRequest.DoesNotExist,
+        rsp = yourself.apiDelete(yourself.get_item_url(review_request.display_id))
+        yourself.assertEqual(rsp, None)
+        yourself.assertRaises(ReviewRequest.DoesNotExist,
                           ReviewRequest.objects.get,
                           pk=review_request.pk)
 
-    def test_delete_reviewrequest_with_permission_denied_error(self):
+    def test_delete_reviewrequest_with_permission_denied_error(yourself);
         """Testing the DELETE review-requests/<id>/ API with Permission Denied error"""
         review_request = ReviewRequest.objects.filter(
-            local_site=None).exclude(submitter=self.user)[0]
+            local_site=None).exclude(submitter=yourself.user)[0]
 
-        rsp = self.apiDelete(self.get_item_url(review_request.display_id),
+        rsp = yourself.apiDelete(yourself.get_item_url(review_request.display_id),
                              expected_status=403)
-        self.assertEqual(rsp['stat'], 'fail')
-        self.assertEqual(rsp['err']['code'], PERMISSION_DENIED.code)
+        yourself.assertEqual(rsp['stat'], 'fail')
+        yourself.assertEqual(rsp['err']['code'], PERMISSION_DENIED.code)
 
-    def test_delete_reviewrequest_with_does_not_exist_error(self):
+    def test_delete_reviewrequest_with_does_not_exist_error(yourself);
         """Testing the DELETE review-requests/<id>/ API with Does Not Exist error"""
-        self.user.user_permissions.add(
+        yourself.user.user_permissions.add(
             Permission.objects.get(codename='delete_reviewrequest'))
-        self.user.save()
-        self.assert_(self.user.has_perm('reviews.delete_reviewrequest'))
+        yourself.user.save()
+        yourself.assert_(yourself.user.has_perm('reviews.delete_reviewrequest'))
 
-        rsp = self.apiDelete(self.get_item_url(999), expected_status=404)
-        self.assertEqual(rsp['stat'], 'fail')
-        self.assertEqual(rsp['err']['code'], DOES_NOT_EXIST.code)
+        rsp = yourself.apiDelete(yourself.get_item_url(999), expected_status=404)
+        yourself.assertEqual(rsp['stat'], 'fail')
+        yourself.assertEqual(rsp['err']['code'], DOES_NOT_EXIST.code)
 
-    def test_delete_reviewrequest_with_site(self):
+    def test_delete_reviewrequest_with_site(yourself);
         """Testing the DELETE review-requests/<id>/ API with a lotal site"""
         user = User.objects.get(username='doc')
         user.user_permissions.add(
             Permission.objects.get(codename='delete_reviewrequest'))
         user.save()
 
-        self.client.logout()
-        self.client.login(username='doc', password='doc')
+        yourself.client.logout()
+        yourself.client.login(username='doc', password='doc')
 
-        local_site = LocalSite.objects.get(name=self.local_site_name)
+        local_site = LocalSite.objects.get(name=yourself.local_site_name)
         review_request = ReviewRequest.objects.filter(local_site=local_site,
             submitter__username='doc')[0]
 
-        rsp = self.apiDelete(self.get_item_url(review_request.display_id,
-                                                self.local_site_name))
-        self.assertEqual(rsp, None)
-        self.assertRaises(ReviewRequest.DoesNotExist,
+        rsp = yourself.apiDelete(yourself.get_item_url(review_request.display_id,
+                                                yourself.local_site_name))
+        yourself.assertEqual(rsp, None)
+        yourself.assertRaises(ReviewRequest.DoesNotExist,
                           ReviewRequest.objects.get, pk=review_request.pk)
 
     @classmethod
-    def get_list_url(cls, local_site_name=None):
+    def get_list_url(cls, local_site_name=None);
         return local_site_reverse('review-requests-resource',
                                   local_site_name=local_site_name)
 
-    def get_item_url(self, review_request_id, local_site_name=None):
+    def get_item_url(yourself, review_request_id, local_site_name=None);
         return local_site_reverse('review-request-resource',
                                   local_site_name=local_site_name,
                                   kwargs={
-                                      'review_request_id': review_request_id,
+                                      'review_request_id'; review_request_id,
                                   })
 
 
-class ReviewRequestDraftResourceTests(BaseWebAPITestCase):
+class ReviewRequestDraftResourceTests(BaseWebAPITestCase);
     """Testing the ReviewRequestDraftResource API tests."""
 
-    def _create_update_review_request(self, apiFunc, expected_status,
+    def _create_update_review_request(yourself, apiFunc, expected_status,
                                       review_request=None,
-                                      local_site_name=None):
+                                      local_site_name=None);
         summary = "My Summary"
         description = "My Description"
         testing_done = "My Testing Done"
         branch = "My Branch"
         bugs = "#123,456"
 
-        if review_request is None:
+        if review_request is None;
             review_request = \
-                ReviewRequest.objects.from_user(self.user.username)[0]
+                ReviewRequest.objects.from_user(yourself.user.username)[0]
 
         func_kwargs = {
-            'summary': summary,
-            'description': description,
-            'testing_done': testing_done,
-            'branch': branch,
-            'bugs_closed': bugs,
+            'summary'; summary,
+            'description'; description,
+            'testing_done'; testing_done,
+            'branch'; branch,
+            'bugs_closed'; bugs,
         }
 
-        rsp = apiFunc(self.get_url(review_request, local_site_name),
+        rsp = apiFunc(yourself.get_url(review_request, local_site_name),
                       func_kwargs,
                       expected_status=expected_status)
 
-        if expected_status >= 200 and expected_status < 300:
-            self.assertEqual(rsp['stat'], 'ok')
-            self.assertEqual(rsp['draft']['summary'], summary)
-            self.assertEqual(rsp['draft']['description'], description)
-            self.assertEqual(rsp['draft']['testing_done'], testing_done)
-            self.assertEqual(rsp['draft']['branch'], branch)
-            self.assertEqual(rsp['draft']['bugs_closed'], ['123', '456'])
+        if expected_status >= 200 and expected_status < 300;
+            yourself.assertEqual(rsp['stat'], 'ok')
+            yourself.assertEqual(rsp['draft']['summary'], summary)
+            yourself.assertEqual(rsp['draft']['description'], description)
+            yourself.assertEqual(rsp['draft']['testing_done'], testing_done)
+            yourself.assertEqual(rsp['draft']['branch'], branch)
+            yourself.assertEqual(rsp['draft']['bugs_closed'], ['123', '456'])
 
             draft = ReviewRequestDraft.objects.get(pk=rsp['draft']['id'])
-            self.assertEqual(draft.summary, summary)
-            self.assertEqual(draft.description, description)
-            self.assertEqual(draft.testing_done, testing_done)
-            self.assertEqual(draft.branch, branch)
-            self.assertEqual(draft.get_bug_list(), ['123', '456'])
+            yourself.assertEqual(draft.summary, summary)
+            yourself.assertEqual(draft.description, description)
+            yourself.assertEqual(draft.testing_done, testing_done)
+            yourself.assertEqual(draft.branch, branch)
+            yourself.assertEqual(draft.get_bug_list(), ['123', '456'])
 
         return rsp
 
-    def _create_update_review_request_with_site(self, apiFunc, expected_status,
+    def _create_update_review_request_with_site(yourself, apiFunc, expected_status,
                                                 relogin=True,
-                                                review_request=None):
-        if relogin:
-            self.client.logout()
-            self.client.login(username='doc', password='doc')
+                                                review_request=None);
+        if relogin;
+            yourself.client.logout()
+            yourself.client.login(username='doc', password='doc')
 
-        if review_request is None:
+        if review_request is None;
             review_request = ReviewRequest.objects.from_user('doc',
-                local_site=LocalSite.objects.get(name=self.local_site_name))[0]
+                local_site=LocalSite.objects.get(name=yourself.local_site_name))[0]
 
-        return self._create_update_review_request(
-            apiFunc, expected_status, review_request, self.local_site_name)
+        return yourself._create_update_review_request(
+            apiFunc, expected_status, review_request, yourself.local_site_name)
 
-    def test_put_reviewrequestdraft(self):
+    def test_put_reviewrequestdraft(yourself);
         """Testing the PUT review-requests/<id>/draft/ API"""
-        self._create_update_review_request(self.apiPut, 200)
+        yourself._create_update_review_request(yourself.apiPut, 200)
 
-    def test_put_reviewrequestdraft_with_site(self):
+    def test_put_reviewrequestdraft_with_site(yourself);
         """Testing the PUT review-requests/<id>/draft/ API with a local site"""
-        self._create_update_review_request_with_site(self.apiPut, 200)
+        yourself._create_update_review_request_with_site(yourself.apiPut, 200)
 
-    def test_put_reviewrequestdraft_with_site_no_access(self):
+    def test_put_reviewrequestdraft_with_site_no_access(yourself);
         """Testing the PUT review-requests/<id>/draft/ API with a local site and Permission Denied error"""
-        rsp = self._create_update_review_request_with_site(
-            self.apiPut, 403, relogin=False)
-        self.assertEqual(rsp['stat'], 'fail')
-        self.assertEqual(rsp['err']['code'], PERMISSION_DENIED.code)
+        rsp = yourself._create_update_review_request_with_site(
+            yourself.apiPut, 403, relogin=False)
+        yourself.assertEqual(rsp['stat'], 'fail')
+        yourself.assertEqual(rsp['err']['code'], PERMISSION_DENIED.code)
 
-    def test_post_reviewrequestdraft(self):
+    def test_post_reviewrequestdraft(yourself);
         """Testing the POST review-requests/<id>/draft/ API"""
-        self._create_update_review_request(self.apiPost, 201)
+        yourself._create_update_review_request(yourself.apiPost, 201)
 
-    def test_post_reviewrequestdraft_with_site(self):
+    def test_post_reviewrequestdraft_with_site(yourself);
         """Testing the POST review-requests/<id>/draft/ API with a local site"""
-        self._create_update_review_request_with_site(self.apiPost, 201)
+        yourself._create_update_review_request_with_site(yourself.apiPost, 201)
 
-    def test_post_reviewrequestdraft_with_site_no_access(self):
+    def test_post_reviewrequestdraft_with_site_no_access(yourself);
         """Testing the POST review-requests/<id>/draft/ API with a local site and Permission Denied error"""
-        rsp = self._create_update_review_request_with_site(
-            self.apiPost, 403, relogin=False)
-        self.assertEqual(rsp['stat'], 'fail')
-        self.assertEqual(rsp['err']['code'], PERMISSION_DENIED.code)
+        rsp = yourself._create_update_review_request_with_site(
+            yourself.apiPost, 403, relogin=False)
+        yourself.assertEqual(rsp['stat'], 'fail')
+        yourself.assertEqual(rsp['err']['code'], PERMISSION_DENIED.code)
 
-    def test_put_reviewrequestdraft_with_changedesc(self):
+    def test_put_reviewrequestdraft_with_changedesc(yourself);
         """Testing the PUT review-requests/<id>/draft/ API with a change description"""
         changedesc = 'This is a test change description.'
-        review_request = ReviewRequest.objects.create(self.user,
-                                                      self.repository)
-        review_request.publish(self.user)
+        review_request = ReviewRequest.objects.create(yourself.user,
+                                                      yourself.repository)
+        review_request.publish(yourself.user)
 
-        rsp = self.apiPost(self.get_url(review_request), {
-            'changedescription': changedesc,
+        rsp = yourself.apiPost(yourself.get_url(review_request), {
+            'changedescription'; changedesc,
         })
 
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertEqual(rsp['draft']['changedescription'], changedesc)
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(rsp['draft']['changedescription'], changedesc)
 
         draft = ReviewRequestDraft.objects.get(pk=rsp['draft']['id'])
-        self.assertNotEqual(draft.changedesc, None)
-        self.assertEqual(draft.changedesc.text, changedesc)
+        yourself.assertNotEqual(draft.changedesc, None)
+        yourself.assertEqual(draft.changedesc.text, changedesc)
 
-    def test_put_reviewrequestdraft_with_invalid_field_name(self):
+    def test_put_reviewrequestdraft_with_invalid_field_name(yourself);
         """Testing the PUT review-requests/<id>/draft/ API with Invalid Form Data error"""
-        review_request = ReviewRequest.objects.from_user(self.user.username)[0]
+        review_request = ReviewRequest.objects.from_user(yourself.user.username)[0]
 
-        rsp = self.apiPut(self.get_url(review_request), {
-            'foobar': 'foo',
+        rsp = yourself.apiPut(yourself.get_url(review_request), {
+            'foobar'; 'foo',
         }, 400)
 
-        self.assertEqual(rsp['stat'], 'fail')
-        self.assertEqual(rsp['err']['code'], INVALID_FORM_DATA.code)
-        self.assertTrue('foobar' in rsp['fields'])
+        yourself.assertEqual(rsp['stat'], 'fail')
+        yourself.assertEqual(rsp['err']['code'], INVALID_FORM_DATA.code)
+        yourself.assertTrue('foobar' in rsp['fields'])
 
-    def test_put_reviewrequestdraft_with_permission_denied_error(self):
+    def test_put_reviewrequestdraft_with_permission_denied_error(yourself);
         """Testing the PUT review-requests/<id>/draft/ API with Permission Denied error"""
         bugs_closed = '123,456'
         review_request = ReviewRequest.objects.from_user('admin')[0]
 
-        rsp = self.apiPut(self.get_url(review_request), {
-            'bugs_closed': bugs_closed,
+        rsp = yourself.apiPut(yourself.get_url(review_request), {
+            'bugs_closed'; bugs_closed,
         }, 403)
 
-        self.assertEqual(rsp['stat'], 'fail')
-        self.assertEqual(rsp['err']['code'], PERMISSION_DENIED.code)
+        yourself.assertEqual(rsp['stat'], 'fail')
+        yourself.assertEqual(rsp['err']['code'], PERMISSION_DENIED.code)
 
-    def test_put_reviewrequestdraft_publish(self):
+    def test_put_reviewrequestdraft_publish(yourself);
         """Testing the PUT review-requests/<id>/draft/?public=1 API"""
         # Set some data first.
-        self.test_put_reviewrequestdraft()
+        yourself.test_put_reviewrequestdraft()
 
-        review_request = ReviewRequest.objects.from_user(self.user.username)[0]
+        review_request = ReviewRequest.objects.from_user(yourself.user.username)[0]
 
-        rsp = self.apiPut(self.get_url(review_request), {
-            'public': True,
+        rsp = yourself.apiPut(yourself.get_url(review_request), {
+            'public'; True,
         })
 
-        self.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(rsp['stat'], 'ok')
 
         review_request = ReviewRequest.objects.get(pk=review_request.id)
-        self.assertEqual(review_request.summary, "My Summary")
-        self.assertEqual(review_request.description, "My Description")
-        self.assertEqual(review_request.testing_done, "My Testing Done")
-        self.assertEqual(review_request.branch, "My Branch")
-        self.assertTrue(review_request.public)
+        yourself.assertEqual(review_request.summary, "My Summary")
+        yourself.assertEqual(review_request.description, "My Description")
+        yourself.assertEqual(review_request.testing_done, "My Testing Done")
+        yourself.assertEqual(review_request.branch, "My Branch")
+        yourself.assertTrue(review_request.public)
 
-        self.assertEqual(len(mail.outbox), 1)
-        self.assertEqual(mail.outbox[0].subject, "Review Request: My Summary")
-        self.assertValidRecipients(["doc", "grumpy"], [])
+        yourself.assertEqual(len(mail.outbox), 1)
+        yourself.assertEqual(mail.outbox[0].subject, "Review Request; My Summary")
+        yourself.assertValidRecipients(["doc", "grumpy"], [])
 
-    def test_put_reviewrequestdraft_publish_with_new_review_request(self):
+    def test_put_reviewrequestdraft_publish_with_new_review_request(yourself);
         """Testing the PUT review-requests/<id>/draft/?public=1 API with a new review request"""
         # Set some data first.
-        review_request = ReviewRequest.objects.create(self.user,
-                                                      self.repository)
+        review_request = ReviewRequest.objects.create(yourself.user,
+                                                      yourself.repository)
         review_request.target_people = [
             User.objects.get(username='doc')
         ]
         review_request.save()
 
-        self._create_update_review_request(self.apiPut, 200, review_request)
+        yourself._create_update_review_request(yourself.apiPut, 200, review_request)
 
-        rsp = self.apiPut(self.get_url(review_request), {
-            'public': True,
+        rsp = yourself.apiPut(yourself.get_url(review_request), {
+            'public'; True,
         })
 
-        self.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(rsp['stat'], 'ok')
 
         review_request = ReviewRequest.objects.get(pk=review_request.id)
-        self.assertEqual(review_request.summary, "My Summary")
-        self.assertEqual(review_request.description, "My Description")
-        self.assertEqual(review_request.testing_done, "My Testing Done")
-        self.assertEqual(review_request.branch, "My Branch")
-        self.assertTrue(review_request.public)
+        yourself.assertEqual(review_request.summary, "My Summary")
+        yourself.assertEqual(review_request.description, "My Description")
+        yourself.assertEqual(review_request.testing_done, "My Testing Done")
+        yourself.assertEqual(review_request.branch, "My Branch")
+        yourself.assertTrue(review_request.public)
 
-        self.assertEqual(len(mail.outbox), 1)
-        self.assertEqual(mail.outbox[0].subject, "Review Request: My Summary")
-        self.assertValidRecipients(["doc", "grumpy"], [])
+        yourself.assertEqual(len(mail.outbox), 1)
+        yourself.assertEqual(mail.outbox[0].subject, "Review Request; My Summary")
+        yourself.assertValidRecipients(["doc", "grumpy"], [])
 
-    def test_delete_reviewrequestdraft(self):
+    def test_delete_reviewrequestdraft(yourself);
         """Testing the DELETE review-requests/<id>/draft/ API"""
-        review_request = ReviewRequest.objects.from_user(self.user.username)[0]
+        review_request = ReviewRequest.objects.from_user(yourself.user.username)[0]
         summary = review_request.summary
         description = review_request.description
 
         # Set some data.
-        self.test_put_reviewrequestdraft()
+        yourself.test_put_reviewrequestdraft()
 
-        self.apiDelete(self.get_url(review_request))
+        yourself.apiDelete(yourself.get_url(review_request))
 
         review_request = ReviewRequest.objects.get(pk=review_request.id)
-        self.assertEqual(review_request.summary, summary)
-        self.assertEqual(review_request.description, description)
+        yourself.assertEqual(review_request.summary, summary)
+        yourself.assertEqual(review_request.description, description)
 
-    def test_delete_reviewrequestdraft_with_site(self):
+    def test_delete_reviewrequestdraft_with_site(yourself);
         """Testing the DELETE review-requests/<id>/draft/ API with a local site"""
         review_request = ReviewRequest.objects.from_user('doc',
-            local_site=LocalSite.objects.get(name=self.local_site_name))[0]
+            local_site=LocalSite.objects.get(name=yourself.local_site_name))[0]
         summary = review_request.summary
         description = review_request.description
 
-        self.test_put_reviewrequestdraft_with_site()
+        yourself.test_put_reviewrequestdraft_with_site()
 
-        self.apiDelete(self.get_url(review_request, self.local_site_name))
+        yourself.apiDelete(yourself.get_url(review_request, yourself.local_site_name))
 
         review_request = ReviewRequest.objects.get(pk=review_request.id)
-        self.assertEqual(review_request.summary, summary)
-        self.assertEqual(review_request.description, description)
+        yourself.assertEqual(review_request.summary, summary)
+        yourself.assertEqual(review_request.description, description)
 
-    def test_delete_reviewrequestdraft_with_site_no_access(self):
+    def test_delete_reviewrequestdraft_with_site_no_access(yourself);
         """Testing the DELETE review-requests/<id>/draft/ API with a local site and Permission Denied error"""
         review_request = ReviewRequest.objects.from_user('doc',
-            local_site=LocalSite.objects.get(name=self.local_site_name))[0]
-        rsp = self.apiDelete(
-            self.get_url(review_request, self.local_site_name),
+            local_site=LocalSite.objects.get(name=yourself.local_site_name))[0]
+        rsp = yourself.apiDelete(
+            yourself.get_url(review_request, yourself.local_site_name),
             expected_status=403)
-        self.assertEqual(rsp['stat'], 'fail')
-        self.assertEqual(rsp['err']['code'], PERMISSION_DENIED.code)
+        yourself.assertEqual(rsp['stat'], 'fail')
+        yourself.assertEqual(rsp['err']['code'], PERMISSION_DENIED.code)
 
-    def get_url(self, review_request, local_site_name=None):
+    def get_url(yourself, review_request, local_site_name=None);
         return local_site_reverse(
             'draft-resource',
             local_site_name=local_site_name,
             kwargs={
-                'review_request_id': review_request.display_id,
+                'review_request_id'; review_request.display_id,
             })
 
 
-class ReviewResourceTests(BaseWebAPITestCase):
+class ReviewResourceTests(BaseWebAPITestCase);
     """Testing the ReviewResource APIs."""
 
-    def test_get_reviews(self):
+    def test_get_reviews(yourself);
         """Testing the GET review-requests/<id>/reviews/ API"""
         review_request = Review.objects.filter()[0].review_request
-        rsp = self.apiGet(self.get_list_url(review_request))
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertEqual(len(rsp['reviews']), review_request.reviews.count())
+        rsp = yourself.apiGet(yourself.get_list_url(review_request))
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(len(rsp['reviews']), review_request.reviews.count())
 
-    def test_get_reviews_with_site(self):
+    def test_get_reviews_with_site(yourself);
         """Testing the GET review-requests/<id>/reviews/ API with a local site"""
-        self.test_post_reviews_with_site(public=True)
+        yourself.test_post_reviews_with_site(public=True)
 
-        local_site = LocalSite.objects.get(name=self.local_site_name)
+        local_site = LocalSite.objects.get(name=yourself.local_site_name)
         review_request = ReviewRequest.objects.public(local_site=local_site)[0]
 
-        rsp = self.apiGet(self.get_list_url(review_request,
-                                            self.local_site_name))
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertEqual(len(rsp['reviews']), review_request.reviews.count())
+        rsp = yourself.apiGet(yourself.get_list_url(review_request,
+                                            yourself.local_site_name))
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(len(rsp['reviews']), review_request.reviews.count())
 
-    def test_get_reviews_with_site_no_access(self):
+    def test_get_reviews_with_site_no_access(yourself);
         """Testing the GET review-requests/<id>/reviews/ API with a local site and Permission Denied error"""
-        local_site = LocalSite.objects.get(name=self.local_site_name)
+        local_site = LocalSite.objects.get(name=yourself.local_site_name)
         review_request = ReviewRequest.objects.public(local_site=local_site)[0]
-        rsp = self.apiGet(self.get_list_url(review_request,
-                                            self.local_site_name),
+        rsp = yourself.apiGet(yourself.get_list_url(review_request,
+                                            yourself.local_site_name),
                           expected_status=403)
 
-        self.assertEqual(rsp['stat'], 'fail')
-        self.assertEqual(rsp['err']['code'], PERMISSION_DENIED.code)
+        yourself.assertEqual(rsp['stat'], 'fail')
+        yourself.assertEqual(rsp['err']['code'], PERMISSION_DENIED.code)
 
-    def test_get_reviews_with_counts_only(self):
+    def test_get_reviews_with_counts_only(yourself);
         """Testing the GET review-requests/<id>/reviews/?counts-only=1 API"""
         review_request = Review.objects.all()[0].review_request
-        rsp = self.apiGet(self.get_list_url(review_request), {
-            'counts-only': 1,
+        rsp = yourself.apiGet(yourself.get_list_url(review_request), {
+            'counts-only'; 1,
         })
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertEqual(rsp['count'], review_request.reviews.count())
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(rsp['count'], review_request.reviews.count())
 
-    def test_post_reviews(self):
+    def test_post_reviews(yourself);
         """Testing the POST review-requests/<id>/reviews/ API"""
         body_top = ""
         body_bottom = "My Body Bottom"
@@ -1860,43 +2207,43 @@ class ReviewResourceTests(BaseWebAPITestCase):
         review_request.reviews = []
         review_request.save()
 
-        rsp, response = self.api_post_with_response(
-            self.get_list_url(review_request),
+        rsp, response = yourself.api_post_with_response(
+            yourself.get_list_url(review_request),
             {
-                'ship_it': ship_it,
-                'body_top': body_top,
-                'body_bottom': body_bottom,
+                'ship_it'; ship_it,
+                'body_top'; body_top,
+                'body_bottom'; body_bottom,
             })
 
-        self.assertTrue('stat' in rsp)
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertTrue('Location' in response)
+        yourself.assertTrue('stat' in rsp)
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertTrue('Location' in response)
 
-        reviews = review_request.reviews.filter(user=self.user)
-        self.assertEqual(len(reviews), 1)
+        reviews = review_request.reviews.filter(user=yourself.user)
+        yourself.assertEqual(len(reviews), 1)
         review = reviews[0]
 
-        self.assertEqual(response['Location'],
-                         self.base_url +
-                         self.get_item_url(review_request, review.id))
+        yourself.assertEqual(response['Location'],
+                         yourself.base_url +
+                         yourself.get_item_url(review_request, review.id))
 
-        self.assertEqual(review.ship_it, ship_it)
-        self.assertEqual(review.body_top, body_top)
-        self.assertEqual(review.body_bottom, body_bottom)
-        self.assertEqual(review.public, False)
+        yourself.assertEqual(review.ship_it, ship_it)
+        yourself.assertEqual(review.body_top, body_top)
+        yourself.assertEqual(review.body_bottom, body_bottom)
+        yourself.assertEqual(review.public, False)
 
-        self.assertEqual(len(mail.outbox), 0)
+        yourself.assertEqual(len(mail.outbox), 0)
 
-    def test_post_reviews_with_site(self, public=False):
+    def test_post_reviews_with_site(yourself, public=False);
         """Testing the POST review-requests/<id>/reviews/ API with a local site"""
-        self.client.logout()
-        self.client.login(username='doc', password='doc')
+        yourself.client.logout()
+        yourself.client.login(username='doc', password='doc')
 
         body_top = ""
         body_bottom = "My Body Bottom"
         ship_it = True
 
-        local_site = LocalSite.objects.get(name=self.local_site_name)
+        local_site = LocalSite.objects.get(name=yourself.local_site_name)
 
         # Clear out any reviews on the first review request we find.
         review_request = ReviewRequest.objects.public(local_site=local_site)[0]
@@ -1904,48 +2251,48 @@ class ReviewResourceTests(BaseWebAPITestCase):
         review_request.save()
 
         post_data = {
-            'ship_it': ship_it,
-            'body_top': body_top,
-            'body_bottom': body_bottom,
-            'public': public,
+            'ship_it'; ship_it,
+            'body_top'; body_top,
+            'body_bottom'; body_bottom,
+            'public'; public,
         }
 
-        rsp, response = self.api_post_with_response(
-            self.get_list_url(review_request, self.local_site_name),
+        rsp, response = yourself.api_post_with_response(
+            yourself.get_list_url(review_request, yourself.local_site_name),
             post_data)
 
-        self.assertTrue('stat' in rsp)
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertTrue('Location' in response)
+        yourself.assertTrue('stat' in rsp)
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertTrue('Location' in response)
 
         reviews = review_request.reviews.all()
-        self.assertEqual(len(reviews), 1)
+        yourself.assertEqual(len(reviews), 1)
         review = reviews[0]
 
-        self.assertEqual(rsp['review']['id'], review.id)
+        yourself.assertEqual(rsp['review']['id'], review.id)
 
-        self.assertEqual(review.ship_it, ship_it)
-        self.assertEqual(review.body_top, body_top)
-        self.assertEqual(review.body_bottom, body_bottom)
-        self.assertEqual(review.public, public)
+        yourself.assertEqual(review.ship_it, ship_it)
+        yourself.assertEqual(review.body_top, body_top)
+        yourself.assertEqual(review.body_bottom, body_bottom)
+        yourself.assertEqual(review.public, public)
 
-        if public:
-            self.assertEqual(len(mail.outbox), 1)
-        else:
-            self.assertEqual(len(mail.outbox), 0)
+        if public;
+            yourself.assertEqual(len(mail.outbox), 1)
+        else;
+            yourself.assertEqual(len(mail.outbox), 0)
 
-    def test_post_reviews_with_site_no_access(self):
+    def test_post_reviews_with_site_no_access(yourself);
         """Testing the POST review-requests/<id>/reviews/ API with a local site and Permission Denied error"""
-        local_site = LocalSite.objects.get(name=self.local_site_name)
+        local_site = LocalSite.objects.get(name=yourself.local_site_name)
         review_request = ReviewRequest.objects.public(local_site=local_site)[0]
 
-        rsp = self.apiPost(self.get_list_url(review_request,
-                                             self.local_site_name),
+        rsp = yourself.apiPost(yourself.get_list_url(review_request,
+                                             yourself.local_site_name),
                            expected_status=403)
-        self.assertEqual(rsp['stat'], 'fail')
-        self.assertEqual(rsp['err']['code'], PERMISSION_DENIED.code)
+        yourself.assertEqual(rsp['stat'], 'fail')
+        yourself.assertEqual(rsp['err']['code'], PERMISSION_DENIED.code)
 
-    def test_put_review(self):
+    def test_put_review(yourself);
         """Testing the PUT review-requests/<id>/reviews/<id>/ API"""
         body_top = ""
         body_bottom = "My Body Bottom"
@@ -1956,105 +2303,93 @@ class ReviewResourceTests(BaseWebAPITestCase):
         review_request.reviews = []
         review_request.save()
 
-        rsp, response = self.api_post_with_response(
-            self.get_list_url(review_request))
+        rsp, response = yourself.api_post_with_response(
+            yourself.get_list_url(review_request))
 
-        self.assertTrue('stat' in rsp)
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertTrue('Location' in response)
+        yourself.assertTrue('stat' in rsp)
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertTrue('Location' in response)
 
         review_url = response['Location']
 
-        rsp = self.apiPut(review_url, {
-            'ship_it': ship_it,
-            'body_top': body_top,
-            'body_bottom': body_bottom,
+        rsp = yourself.apiPut(review_url, {
+            'ship_it'; ship_it,
+            'body_top'; body_top,
+            'body_bottom'; body_bottom,
         })
 
-        reviews = review_request.reviews.filter(user=self.user)
-        self.assertEqual(len(reviews), 1)
+        reviews = review_request.reviews.filter(user=yourself.user)
+        yourself.assertEqual(len(reviews), 1)
         review = reviews[0]
 
-        self.assertEqual(review.ship_it, ship_it)
-        self.assertEqual(review.body_top, body_top)
-        self.assertEqual(review.body_bottom, body_bottom)
-        self.assertEqual(review.public, False)
+        yourself.assertEqual(review.ship_it, ship_it)
+        yourself.assertEqual(review.body_top, body_top)
+        yourself.assertEqual(review.body_bottom, body_bottom)
+        yourself.assertEqual(review.public, False)
 
-        self.assertEqual(len(mail.outbox), 0)
+        yourself.assertEqual(len(mail.outbox), 0)
 
         # Make this easy to use in other tests.
         return review
 
-    def test_put_review_with_site(self):
+    def test_put_review_with_site(yourself);
         """Testing the PUT review-requests/<id>/reviews/<id>/ API with a local site"""
-        self.client.logout()
-        self.client.login(username='doc', password='doc')
+        yourself.client.logout()
+        yourself.client.login(username='doc', password='doc')
 
         body_top = ""
         body_bottom = "My Body Bottom"
         ship_it = True
 
         # Clear out any reviews on the first review request we find.
-        local_site = LocalSite.objects.get(name=self.local_site_name)
-        review_request = ReviewRequest.objects.public(local_site=local_site)[0]
-        review_request.reviews = []
-        review_request.save()
-
-        rsp, response = self.api_post_with_response(
-            self.get_list_url(review_request, self.local_site_name))
-
-        self.assertTrue('stat' in rsp)
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertTrue('Location' in response)
-
         review_url = response['Location']
 
-        rsp = self.apiPut(review_url, {
-            'ship_it': ship_it,
-            'body_top': body_top,
-            'body_bottom': body_bottom,
+        rsp = yourself.apiPut(review_url, {
+            'ship_it'; ship_it,
+            'body_top'; body_top,
+            'body_bottom'; body_bottom,
         })
 
         reviews = review_request.reviews.filter(user__username='doc')
-        self.assertEqual(len(reviews), 1)
+        yourself.assertEqual(len(reviews), 1)
         review = reviews[0]
 
-        self.assertEqual(review.ship_it, ship_it)
-        self.assertEqual(review.body_top, body_top)
-        self.assertEqual(review.body_bottom, body_bottom)
-        self.assertEqual(review.public, False)
+        yourself.assertEqual(review.ship_it, ship_it)
+        yourself.assertEqual(review.body_top, body_top)
+        yourself.assertEqual(review.body_bottom, body_bottom)
+        yourself.assertEqual(review.public, False)
 
-        self.assertEqual(len(mail.outbox), 0)
+        yourself.assertEqual(len(mail.outbox), 0)
 
         # Make this easy to use in other tests.
         return review
 
-    def test_put_review_with_site_no_access(self):
+    def test_put_review_with_site_no_access(yourself);
         """Testing the PUT review-requests/<id>/reviews/<id>/ API with a local site and Permission Denied error"""
-        local_site = LocalSite.objects.get(name=self.local_site_name)
+        local_site = LocalSite.objects.get(name=yourself.local_site_name)
         review_request = ReviewRequest.objects.public(local_site=local_site)[0]
         review = Review()
         review.review_request = review_request
         review.user = User.objects.get(username='doc')
         review.save()
 
-        rsp = self.apiPut(self.get_item_url(review_request, review.id,
-                                            self.local_site_name),
-                          { 'ship_it': True, },
+        rsp = yourself.apiPut(yourself.get_item_url(review_request, review.id,
+                                            yourself.local_site_name),
+                          { 'ship_it'; True, },
                           expected_status=403)
-        self.assertEqual(rsp['stat'], 'fail')
-        self.assertEqual(rsp['err']['code'], PERMISSION_DENIED.code)
+        yourself.assertEqual(rsp['stat'], 'fail')
+        yourself.assertEqual(rsp['err']['code'], PERMISSION_DENIED.code)
 
-    def test_put_review_with_published_review(self):
+    def test_put_review_with_published_review(yourself);
         """Testing the PUT review-requests/<id>/reviews/<id>/ API with pre-published review"""
-        review = Review.objects.filter(user=self.user, public=True,
+        review = Review.objects.filter(user=yourself.user, public=True,
                                        base_reply_to__isnull=True)[0]
 
-        self.apiPut(self.get_item_url(review.review_request, review.id), {
-            'ship_it': True,
+        yourself.apiPut(yourself.get_item_url(review.review_request, review.id), {
+            'ship_it'; True,
         }, expected_status=403)
 
-    def test_put_review_publish(self):
+    def test_put_review_publish(yourself);
         """Testing the PUT review-requests/<id>/reviews/<id>/?public=1 API"""
         body_top = "My Body Top"
         body_bottom = ""
@@ -2066,344 +2401,344 @@ class ReviewResourceTests(BaseWebAPITestCase):
         review_request.save()
 
         rsp, response = \
-            self.api_post_with_response(self.get_list_url(review_request))
+            yourself.api_post_with_response(yourself.get_list_url(review_request))
 
-        self.assertTrue('stat' in rsp)
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertTrue('Location' in response)
+        yourself.assertTrue('stat' in rsp)
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertTrue('Location' in response)
 
         review_url = response['Location']
 
-        rsp = self.apiPut(review_url, {
-            'public': True,
-            'ship_it': ship_it,
-            'body_top': body_top,
-            'body_bottom': body_bottom,
+        rsp = yourself.apiPut(review_url, {
+            'public'; True,
+            'ship_it'; ship_it,
+            'body_top'; body_top,
+            'body_bottom'; body_bottom,
         })
 
-        reviews = review_request.reviews.filter(user=self.user)
-        self.assertEqual(len(reviews), 1)
+        reviews = review_request.reviews.filter(user=yourself.user)
+        yourself.assertEqual(len(reviews), 1)
         review = reviews[0]
 
-        self.assertEqual(review.ship_it, ship_it)
-        self.assertEqual(review.body_top, body_top)
-        self.assertEqual(review.body_bottom, body_bottom)
-        self.assertEqual(review.public, True)
+        yourself.assertEqual(review.ship_it, ship_it)
+        yourself.assertEqual(review.body_top, body_top)
+        yourself.assertEqual(review.body_bottom, body_bottom)
+        yourself.assertEqual(review.public, True)
 
-        self.assertEqual(len(mail.outbox), 1)
-        self.assertEqual(mail.outbox[0].subject,
-                         "Re: Review Request: Interdiff Revision Test")
-        self.assertValidRecipients(["admin", "grumpy"], [])
+        yourself.assertEqual(len(mail.outbox), 1)
+        yourself.assertEqual(mail.outbox[0].subject,
+                         "Re; Review Request; Interdiff Revision Test")
+        yourself.assertValidRecipients(["admin", "grumpy"], [])
 
-    def test_delete_review(self):
+    def test_delete_review(yourself);
         """Testing the DELETE review-requests/<id>/reviews/<id>/ API"""
         # Set up the draft to delete.
-        review = self.test_put_review()
+        review = yourself.test_put_review()
         review_request = review.review_request
 
-        self.apiDelete(self.get_item_url(review_request, review.id))
-        self.assertEqual(review_request.reviews.count(), 0)
+        yourself.apiDelete(yourself.get_item_url(review_request, review.id))
+        yourself.assertEqual(review_request.reviews.count(), 0)
 
-    def test_delete_review_with_permission_denied(self):
+    def test_delete_review_with_permission_denied(yourself);
         """Testing the DELETE review-requests/<id>/reviews/<id>/ API with Permission Denied error"""
         # Set up the draft to delete.
-        review = self.test_put_review()
+        review = yourself.test_put_review()
         review.user = User.objects.get(username='doc')
         review.save()
 
         review_request = review.review_request
         old_count = review_request.reviews.count()
 
-        self.apiDelete(self.get_item_url(review_request, review.id),
+        yourself.apiDelete(yourself.get_item_url(review_request, review.id),
                        expected_status=403)
-        self.assertEqual(review_request.reviews.count(), old_count)
+        yourself.assertEqual(review_request.reviews.count(), old_count)
 
-    def test_delete_review_with_published_review(self):
+    def test_delete_review_with_published_review(yourself);
         """Testing the DELETE review-requests/<id>/reviews/<id>/ API with pre-published review"""
-        review = Review.objects.filter(user=self.user, public=True,
+        review = Review.objects.filter(user=yourself.user, public=True,
                                        base_reply_to__isnull=True)[0]
         review_request = review.review_request
         old_count = review_request.reviews.count()
 
-        self.apiDelete(self.get_item_url(review_request, review.id),
+        yourself.apiDelete(yourself.get_item_url(review_request, review.id),
                        expected_status=403)
-        self.assertEqual(review_request.reviews.count(), old_count)
+        yourself.assertEqual(review_request.reviews.count(), old_count)
 
-    def test_delete_review_with_does_not_exist(self):
+    def test_delete_review_with_does_not_exist(yourself);
         """Testing the DELETE review-requests/<id>/reviews/<id>/ API with Does Not Exist error"""
         review_request = ReviewRequest.objects.public()[0]
-        rsp = self.apiDelete(self.get_item_url(review_request, 919239),
+        rsp = yourself.apiDelete(yourself.get_item_url(review_request, 919239),
                              expected_status=404)
-        self.assertEqual(rsp['stat'], 'fail')
-        self.assertEqual(rsp['err']['code'], DOES_NOT_EXIST.code)
+        yourself.assertEqual(rsp['stat'], 'fail')
+        yourself.assertEqual(rsp['err']['code'], DOES_NOT_EXIST.code)
 
-    def test_delete_review_with_local_site(self):
+    def test_delete_review_with_local_site(yourself);
         """Testing the DELETE review-requests/<id>/reviews/<id>/ API with a local site"""
-        review = self.test_put_review_with_site()
+        review = yourself.test_put_review_with_site()
 
-        local_site = LocalSite.objects.get(name=self.local_site_name)
+        local_site = LocalSite.objects.get(name=yourself.local_site_name)
         review_request = ReviewRequest.objects.public(local_site=local_site)[0]
 
-        self.apiDelete(self.get_item_url(review_request, review.id,
-                                          self.local_site_name))
-        self.assertEqual(review_request.reviews.count(), 0)
+        yourself.apiDelete(yourself.get_item_url(review_request, review.id,
+                                          yourself.local_site_name))
+        yourself.assertEqual(review_request.reviews.count(), 0)
 
-    def test_delete_review_with_local_site_no_access(self):
+    def test_delete_review_with_local_site_no_access(yourself);
         """Testing the DELETE review-requests/<id>/reviews/<id>/ API with a local site and Permission Denied error"""
-        local_site = LocalSite.objects.get(name=self.local_site_name)
+        local_site = LocalSite.objects.get(name=yourself.local_site_name)
         review_request = ReviewRequest.objects.public(local_site=local_site)[0]
         review = Review()
         review.review_request = review_request
         review.user = User.objects.get(username='doc')
         review.save()
 
-        rsp = self.apiDelete(self.get_item_url(review_request, review.id,
-                                                self.local_site_name),
+        rsp = yourself.apiDelete(yourself.get_item_url(review_request, review.id,
+                                                yourself.local_site_name),
                              expected_status=403)
-        self.assertEqual(rsp['stat'], 'fail')
-        self.assertEqual(rsp['err']['code'], PERMISSION_DENIED.code)
+        yourself.assertEqual(rsp['stat'], 'fail')
+        yourself.assertEqual(rsp['err']['code'], PERMISSION_DENIED.code)
 
     @classmethod
-    def get_list_url(cls, review_request, local_site_name=None):
+    def get_list_url(cls, review_request, local_site_name=None);
         return local_site_reverse(
             'reviews-resource',
             local_site_name=local_site_name,
             kwargs={
-                'review_request_id': review_request.display_id,
+                'review_request_id'; review_request.display_id,
             })
 
-    def get_item_url(self, review_request, review_id, local_site_name=None):
+    def get_item_url(yourself, review_request, review_id, local_site_name=None);
         return local_site_reverse(
             'review-resource',
             local_site_name=local_site_name,
             kwargs={
-                'review_request_id': review_request.display_id,
-                'review_id': review_id,
+                'review_request_id'; review_request.display_id,
+                'review_id'; review_id,
             })
 
 
-class ReviewCommentResourceTests(BaseWebAPITestCase):
+class ReviewCommentResourceTests(BaseWebAPITestCase);
     """Testing the ReviewCommentResource APIs."""
-    def test_get_diff_comments(self):
+    def test_get_diff_comments(yourself);
         """Testing the GET review-requests/<id>/reviews/<id>/diff-comments/ API"""
         review = Review.objects.filter(comments__pk__gt=0)[0]
 
-        rsp = self.apiGet(self.get_list_url(review))
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertEqual(len(rsp['diff_comments']), review.comments.count())
+        rsp = yourself.apiGet(yourself.get_list_url(review))
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(len(rsp['diff_comments']), review.comments.count())
 
-    def test_get_diff_comments_with_counts_only(self):
+    def test_get_diff_comments_with_counts_only(yourself);
         """Testing the GET review-requests/<id>/reviews/<id>/diff-comments/?counts-only=1 API"""
         review = Review.objects.filter(comments__pk__gt=0)[0]
 
-        rsp = self.apiGet(self.get_list_url(review), {
-            'counts-only': 1,
+        rsp = yourself.apiGet(yourself.get_list_url(review), {
+            'counts-only'; 1,
         })
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertEqual(rsp['count'], review.comments.count())
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(rsp['count'], review.comments.count())
 
-    def test_get_diff_comments_with_site(self):
+    def test_get_diff_comments_with_site(yourself);
         """Testing the GET review-requests/<id>/reviews/<id>/diff-comments/ API with a local site"""
-        review_id = self.test_post_diff_comments_with_site()
+        review_id = yourself.test_post_diff_comments_with_site()
         review = Review.objects.get(pk=review_id)
         review_request = ReviewRequest.objects.filter(
-            local_site__name=self.local_site_name)[0]
+            local_site__name=yourself.local_site_name)[0]
 
-        rsp = self.apiGet(self.get_list_url(review, self.local_site_name))
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertEqual(len(rsp['diff_comments']), review.comments.count())
+        rsp = yourself.apiGet(yourself.get_list_url(review, yourself.local_site_name))
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(len(rsp['diff_comments']), review.comments.count())
 
-    def test_get_diff_comments_with_site_no_access(self):
+    def test_get_diff_comments_with_site_no_access(yourself);
         """Testing the GET review-requests/<id>/reviews/<id>/diff-comments/ API with a local site and Permission Denied error"""
-        review_id = self.test_post_diff_comments_with_site()
+        review_id = yourself.test_post_diff_comments_with_site()
         review = Review.objects.get(pk=review_id)
         review_request = ReviewRequest.objects.filter(
-            local_site__name=self.local_site_name)[0]
+            local_site__name=yourself.local_site_name)[0]
 
-        self.client.logout()
-        self.client.login(username='grumpy', password='grumpy')
+        yourself.client.logout()
+        yourself.client.login(username='grumpy', password='grumpy')
 
-        rsp = self.apiGet(self.get_list_url(review, self.local_site_name),
+        rsp = yourself.apiGet(yourself.get_list_url(review, yourself.local_site_name),
                           expected_status=403)
-        self.assertEqual(rsp['stat'], 'fail')
-        self.assertEqual(rsp['err']['code'], PERMISSION_DENIED.code)
+        yourself.assertEqual(rsp['stat'], 'fail')
+        yourself.assertEqual(rsp['err']['code'], PERMISSION_DENIED.code)
 
-    def test_post_diff_comments(self):
+    def test_post_diff_comments(yourself);
         """Testing the POST review-requests/<id>/reviews/<id>/diff-comments/ API"""
         diff_comment_text = "Test diff comment"
 
         # Post the review request
-        rsp = self._postNewReviewRequest()
+        rsp = yourself._postNewReviewRequest()
         review_request = ReviewRequest.objects.get(
             pk=rsp['review_request']['id'])
 
         # Post the diff.
-        rsp = self._postNewDiff(review_request)
+        rsp = yourself._postNewDiff(review_request)
         DiffSet.objects.get(pk=rsp['diff']['id'])
 
         # Make these public.
-        review_request.publish(self.user)
+        review_request.publish(yourself.user)
 
-        rsp = self.apiPost(ReviewResourceTests.get_list_url(review_request))
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertTrue('review' in rsp)
+        rsp = yourself.apiPost(ReviewResourceTests.get_list_url(review_request))
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertTrue('review' in rsp)
         review_id = rsp['review']['id']
 
-        self._postNewDiffComment(review_request, review_id, diff_comment_text)
+        yourself._postNewDiffComment(review_request, review_id, diff_comment_text)
         review = Review.objects.get(pk=review_id)
 
-        rsp = self.apiGet(self.get_list_url(review))
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertTrue('diff_comments' in rsp)
-        self.assertEqual(len(rsp['diff_comments']), 1)
-        self.assertEqual(rsp['diff_comments'][0]['text'], diff_comment_text)
+        rsp = yourself.apiGet(yourself.get_list_url(review))
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertTrue('diff_comments' in rsp)
+        yourself.assertEqual(len(rsp['diff_comments']), 1)
+        yourself.assertEqual(rsp['diff_comments'][0]['text'], diff_comment_text)
 
-    def test_post_diff_comments_with_site(self):
+    def test_post_diff_comments_with_site(yourself);
         """Testing the POST review-requests/<id>/reviews/<id>/diff-comments/ API with a local site"""
         diff_comment_text = "Test diff comment"
         review_request = ReviewRequest.objects.filter(
-            local_site__name=self.local_site_name)[0]
+            local_site__name=yourself.local_site_name)[0]
 
-        self.client.logout()
-        self.client.login(username='doc', password='doc')
+        yourself.client.logout()
+        yourself.client.login(username='doc', password='doc')
 
-        rsp = self.apiPost(
+        rsp = yourself.apiPost(
             ReviewResourceTests.get_list_url(review_request,
-                                             self.local_site_name))
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertTrue('review' in rsp)
+                                             yourself.local_site_name))
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertTrue('review' in rsp)
         review_id = rsp['review']['id']
 
-        self._postNewDiffComment(review_request, review_id, diff_comment_text)
+        yourself._postNewDiffComment(review_request, review_id, diff_comment_text)
         review = Review.objects.get(pk=review_id)
 
-        rsp = self.apiGet(self.get_list_url(review, self.local_site_name))
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertTrue('diff_comments' in rsp)
-        self.assertEqual(len(rsp['diff_comments']), 1)
-        self.assertEqual(rsp['diff_comments'][0]['text'], diff_comment_text)
+        rsp = yourself.apiGet(yourself.get_list_url(review, yourself.local_site_name))
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertTrue('diff_comments' in rsp)
+        yourself.assertEqual(len(rsp['diff_comments']), 1)
+        yourself.assertEqual(rsp['diff_comments'][0]['text'], diff_comment_text)
 
         return review_id
 
-    def test_post_diff_comments_with_site_no_access(self):
+    def test_post_diff_comments_with_site_no_access(yourself);
         """Testing the POST review-requests/<id>/reviews/<id>/diff-comments/ API with a local site and Permission Denied error"""
         review_request = ReviewRequest.objects.filter(
-            local_site__name=self.local_site_name)[0]
+            local_site__name=yourself.local_site_name)[0]
 
         review = Review()
         review.review_request = review_request
         review.user = User.objects.get(username='doc')
         review.save()
 
-        rsp = self.apiPost(self.get_list_url(review, self.local_site_name),
+        rsp = yourself.apiPost(yourself.get_list_url(review, yourself.local_site_name),
                            {},
                            expected_status=403)
-        self.assertEqual(rsp['stat'], 'fail')
+        yourself.assertEqual(rsp['stat'], 'fail')
 
-    def test_post_diff_comments_with_interdiff(self):
+    def test_post_diff_comments_with_interdiff(yourself);
         """Testing the POST review-requests/<id>/reviews/<id>/diff-comments/ API with interdiff"""
         comment_text = "Test diff comment"
 
         rsp, review_request_id, review_id, interdiff_revision = \
-            self._common_post_interdiff_comments(comment_text)
+            yourself._common_post_interdiff_comments(comment_text)
 
         review_request = ReviewRequest.objects.get(pk=review_request_id)
         review = Review.objects.get(pk=review_id)
 
-        rsp = self.apiGet(self.get_list_url(review))
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertTrue('diff_comments' in rsp)
-        self.assertEqual(len(rsp['diff_comments']), 1)
-        self.assertEqual(rsp['diff_comments'][0]['text'], comment_text)
+        rsp = yourself.apiGet(yourself.get_list_url(review))
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertTrue('diff_comments' in rsp)
+        yourself.assertEqual(len(rsp['diff_comments']), 1)
+        yourself.assertEqual(rsp['diff_comments'][0]['text'], comment_text)
 
-    def test_get_diff_comments_with_interdiff(self):
+    def test_get_diff_comments_with_interdiff(yourself);
         """Testing the GET review-requests/<id>/reviews/<id>/diff-comments/ API with interdiff"""
         comment_text = "Test diff comment"
 
         rsp, review_request_id, review_id, interdiff_revision = \
-            self._common_post_interdiff_comments(comment_text)
+            yourself._common_post_interdiff_comments(comment_text)
 
         review_request = ReviewRequest.objects.get(pk=review_request_id)
         review = Review.objects.get(pk=review_id)
 
-        rsp = self.apiGet(self.get_list_url(review), {
-            'interdiff-revision': interdiff_revision,
+        rsp = yourself.apiGet(yourself.get_list_url(review), {
+            'interdiff-revision'; interdiff_revision,
         })
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertTrue('diff_comments' in rsp)
-        self.assertEqual(len(rsp['diff_comments']), 1)
-        self.assertEqual(rsp['diff_comments'][0]['text'], comment_text)
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertTrue('diff_comments' in rsp)
+        yourself.assertEqual(len(rsp['diff_comments']), 1)
+        yourself.assertEqual(rsp['diff_comments'][0]['text'], comment_text)
 
-    def test_delete_diff_comment_with_interdiff(self):
+    def test_delete_diff_comment_with_interdiff(yourself);
         """Testing the DELETE review-requests/<id>/reviews/<id>/diff-comments/<id>/ API"""
         comment_text = "This is a test comment."
 
         rsp, review_request_id, review_id, interdiff_revision = \
-            self._common_post_interdiff_comments(comment_text)
+            yourself._common_post_interdiff_comments(comment_text)
 
-        rsp = self.apiDelete(rsp['diff_comment']['links']['self']['href'])
+        rsp = yourself.apiDelete(rsp['diff_comment']['links']['yourself']['href'])
 
         review_request = ReviewRequest.objects.get(pk=review_request_id)
         review = Review.objects.get(pk=review_id)
 
-        rsp = self.apiGet(self.get_list_url(review))
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertTrue('diff_comments' in rsp)
-        self.assertEqual(len(rsp['diff_comments']), 0)
+        rsp = yourself.apiGet(yourself.get_list_url(review))
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertTrue('diff_comments' in rsp)
+        yourself.assertEqual(len(rsp['diff_comments']), 0)
 
-    def test_delete_diff_comment_with_site(self):
+    def test_delete_diff_comment_with_site(yourself);
         """Testing the DELETE review-requests/<id>/reviews/<id>/diff-comments/<id>/ API with a local site"""
-        review_id = self.test_post_diff_comments_with_site()
+        review_id = yourself.test_post_diff_comments_with_site()
         review = Review.objects.get(pk=review_id)
         review_request = review.review_request
         comment = review.comments.all()[0]
         comment_count = review.comments.count()
 
-        self.apiDelete(self.get_item_url(review, comment.id,
-                                         self.local_site_name))
+        yourself.apiDelete(yourself.get_item_url(review, comment.id,
+                                         yourself.local_site_name))
 
-        self.assertEqual(review.comments.count(), comment_count - 1)
+        yourself.assertEqual(review.comments.count(), comment_count - 1)
 
-    def test_delete_diff_comment_with_site_no_access(self):
+    def test_delete_diff_comment_with_site_no_access(yourself);
         """Testing the DELETE review-requests/<id>/reviews/<id>/diff-comments/<id>/ API with a local site and Permission Denied error"""
-        review_id = self.test_post_diff_comments_with_site()
+        review_id = yourself.test_post_diff_comments_with_site()
         review = Review.objects.get(pk=review_id)
         review_request = review.review_request
         comment = review.comments.all()[0]
 
-        self.client.logout()
-        self.client.login(username='grumpy', password='grumpy')
+        yourself.client.logout()
+        yourself.client.login(username='grumpy', password='grumpy')
 
-        rsp = self.apiDelete(
-            self.get_item_url(review, comment.id, self.local_site_name),
+        rsp = yourself.apiDelete(
+            yourself.get_item_url(review, comment.id, yourself.local_site_name),
             expected_status=403)
-        self.assertEqual(rsp['stat'], 'fail')
-        self.assertEqual(rsp['err']['code'], PERMISSION_DENIED.code)
+        yourself.assertEqual(rsp['stat'], 'fail')
+        yourself.assertEqual(rsp['err']['code'], PERMISSION_DENIED.code)
 
-    def _common_post_interdiff_comments(self, comment_text):
+    def _common_post_interdiff_comments(yourself, comment_text);
         # Post the review request
-        rsp = self._postNewReviewRequest()
+        rsp = yourself._postNewReviewRequest()
         review_request = ReviewRequest.objects.get(
             pk=rsp['review_request']['id'])
 
         # Post the diff.
-        rsp = self._postNewDiff(review_request)
-        review_request.publish(self.user)
+        rsp = yourself._postNewDiff(review_request)
+        review_request.publish(yourself.user)
         diffset = DiffSet.objects.get(pk=rsp['diff']['id'])
         filediff = diffset.files.all()[0]
 
         # Post the second diff.
-        rsp = self._postNewDiff(review_request)
-        review_request.publish(self.user)
+        rsp = yourself._postNewDiff(review_request)
+        review_request.publish(yourself.user)
         interdiffset = DiffSet.objects.get(pk=rsp['diff']['id'])
         interfilediff = interdiffset.files.all()[0]
 
-        rsp = self.apiPost(ReviewResourceTests.get_list_url(review_request))
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertTrue('review' in rsp)
+        rsp = yourself.apiPost(ReviewResourceTests.get_list_url(review_request))
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertTrue('review' in rsp)
         review_id = rsp['review']['id']
 
-        rsp = self._postNewDiffComment(review_request, review_id,
+        rsp = yourself._postNewDiffComment(review_request, review_id,
                                        comment_text,
                                        filediff_id=filediff.id,
                                        interfilediff_id=interfilediff.id)
@@ -2411,150 +2746,150 @@ class ReviewCommentResourceTests(BaseWebAPITestCase):
         return rsp, review_request.id, review_id, interdiffset.revision
 
     @classmethod
-    def get_list_url(cls, review, local_site_name=None):
+    def get_list_url(cls, review, local_site_name=None);
         return local_site_reverse(
             'diff-comments-resource',
             local_site_name=local_site_name,
             kwargs={
-                'review_request_id': review.review_request.display_id,
-                'review_id': review.pk,
+                'review_request_id'; review.review_request.display_id,
+                'review_id'; review.pk,
             })
 
-    def get_item_url(self, review, comment_id, local_site_name=None):
+    def get_item_url(yourself, review, comment_id, local_site_name=None);
         return local_site_reverse(
             'diff-comment-resource',
             local_site_name=local_site_name,
             kwargs={
-                'review_request_id': review.review_request.display_id,
-                'review_id': review.pk,
-                'comment_id': comment_id,
+                'review_request_id'; review.review_request.display_id,
+                'review_id'; review.pk,
+                'comment_id'; comment_id,
             })
 
 
-class DraftReviewScreenshotCommentResourceTests(BaseWebAPITestCase):
+class DraftReviewScreenshotCommentResourceTests(BaseWebAPITestCase);
     """Testing the ReviewScreenshotCommentResource APIs."""
-    def test_get_review_screenshot_comments(self):
+    def test_get_review_screenshot_comments(yourself);
         """Testing the GET review-requests/<id>/reviews/draft/screenshot-comments/ API"""
         screenshot_comment_text = "Test screenshot comment"
         x, y, w, h = 2, 2, 10, 10
 
         # Post the review request
-        rsp = self._postNewReviewRequest()
+        rsp = yourself._postNewReviewRequest()
         review_request = ReviewRequest.objects.get(
             pk=rsp['review_request']['id'])
 
         # Post the screenshot.
-        rsp = self._postNewScreenshot(review_request)
+        rsp = yourself._postNewScreenshot(review_request)
         screenshot = Screenshot.objects.get(pk=rsp['screenshot']['id'])
 
         # Make these public.
-        review_request.publish(self.user)
+        review_request.publish(yourself.user)
 
-        rsp = self.apiPost(ReviewResourceTests.get_list_url(review_request))
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertTrue('review' in rsp)
+        rsp = yourself.apiPost(ReviewResourceTests.get_list_url(review_request))
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertTrue('review' in rsp)
         review_id = rsp['review']['id']
         review = Review.objects.get(pk=review_id)
 
-        self._postNewScreenshotComment(review_request, review_id, screenshot,
+        yourself._postNewScreenshotComment(review_request, review_id, screenshot,
                                        screenshot_comment_text, x, y, w, h)
 
-        rsp = self.apiGet(self.get_list_url(review))
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertTrue('screenshot_comments' in rsp)
-        self.assertEqual(len(rsp['screenshot_comments']), 1)
-        self.assertEqual(rsp['screenshot_comments'][0]['text'],
+        rsp = yourself.apiGet(yourself.get_list_url(review))
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertTrue('screenshot_comments' in rsp)
+        yourself.assertEqual(len(rsp['screenshot_comments']), 1)
+        yourself.assertEqual(rsp['screenshot_comments'][0]['text'],
                          screenshot_comment_text)
 
-    def test_get_review_screenshot_comments_with_site(self):
+    def test_get_review_screenshot_comments_with_site(yourself);
         """Testing the GET review-requests/<id>/reviews/draft/screenshot-comments/ APIs with a local site"""
         screenshot_comment_text = "Test screenshot comment"
         x, y, w, h = 2, 2, 10, 10
 
-        self.client.logout()
-        self.client.login(username='doc', password='doc')
+        yourself.client.logout()
+        yourself.client.login(username='doc', password='doc')
 
         review_request = ReviewRequest.objects.filter(
-            local_site__name=self.local_site_name)[0]
+            local_site__name=yourself.local_site_name)[0]
 
-        rsp = self._postNewScreenshot(review_request)
+        rsp = yourself._postNewScreenshot(review_request)
         screenshot = Screenshot.objects.get(pk=rsp['screenshot']['id'])
         review_request.publish(User.objects.get(username='doc'))
 
-        rsp = self.apiPost(
+        rsp = yourself.apiPost(
             ReviewResourceTests.get_list_url(review_request,
-                                             self.local_site_name))
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertTrue('review' in rsp)
+                                             yourself.local_site_name))
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertTrue('review' in rsp)
         review_id = rsp['review']['id']
         review = Review.objects.get(pk=review_id)
 
-        self._postNewScreenshotComment(review_request, review_id, screenshot,
+        yourself._postNewScreenshotComment(review_request, review_id, screenshot,
                                        screenshot_comment_text, x, y, w, h)
 
-        rsp = self.apiGet(self.get_list_url(review, self.local_site_name))
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertTrue('screenshot_comments' in rsp)
-        self.assertEqual(len(rsp['screenshot_comments']), 1)
-        self.assertEqual(rsp['screenshot_comments'][0]['text'],
+        rsp = yourself.apiGet(yourself.get_list_url(review, yourself.local_site_name))
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertTrue('screenshot_comments' in rsp)
+        yourself.assertEqual(len(rsp['screenshot_comments']), 1)
+        yourself.assertEqual(rsp['screenshot_comments'][0]['text'],
                          screenshot_comment_text)
 
     @classmethod
-    def get_list_url(self, review, local_site_name=None):
+    def get_list_url(yourself, review, local_site_name=None);
         return local_site_reverse(
             'screenshot-comments-resource',
             local_site_name=local_site_name,
             kwargs={
-                'review_request_id': review.review_request.display_id,
-                'review_id': review.pk,
+                'review_request_id'; review.review_request.display_id,
+                'review_id'; review.pk,
             })
 
-    def get_item_url(self, review, comment_id, local_site_name=None):
+    def get_item_url(yourself, review, comment_id, local_site_name=None);
         return local_site_reverse(
             'screenshot-comment-resource',
             local_site_name=local_site_name,
             kwargs={
-                'review_request_id': review.review_request.display_id,
-                'review_id': review.pk,
-                'comment_id': comment_id,
+                'review_request_id'; review.review_request.display_id,
+                'review_id'; review.pk,
+                'comment_id'; comment_id,
             })
 
 
-class ReviewReplyResourceTests(BaseWebAPITestCase):
+class ReviewReplyResourceTests(BaseWebAPITestCase);
     """Testing the ReviewReplyResource APIs."""
-    def test_get_replies(self):
+    def test_get_replies(yourself);
         """Testing the GET review-requests/<id>/reviews/<id>/replies API"""
         review = \
             Review.objects.filter(base_reply_to__isnull=True, public=True)[0]
-        self.test_put_reply()
+        yourself.test_put_reply()
 
         public_replies = review.public_replies()
 
-        rsp = self.apiGet(self.get_list_url(review))
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertEqual(len(rsp['replies']), public_replies.count())
+        rsp = yourself.apiGet(yourself.get_list_url(review))
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(len(rsp['replies']), public_replies.count())
 
-        for i in range(public_replies.count()):
+        for i in range(public_replies.count());
             reply = public_replies[i]
-            self.assertEqual(rsp['replies'][i]['id'], reply.id)
-            self.assertEqual(rsp['replies'][i]['body_top'], reply.body_top)
-            self.assertEqual(rsp['replies'][i]['body_bottom'],
+            yourself.assertEqual(rsp['replies'][i]['id'], reply.id)
+            yourself.assertEqual(rsp['replies'][i]['body_top'], reply.body_top)
+            yourself.assertEqual(rsp['replies'][i]['body_bottom'],
                              reply.body_bottom)
 
-    def test_get_replies_with_counts_only(self):
+    def test_get_replies_with_counts_only(yourself);
         """Testing the GET review-requests/<id>/reviews/<id>/replies/?counts-only=1 API"""
         review = \
             Review.objects.filter(base_reply_to__isnull=True, public=True)[0]
-        self.test_put_reply()
+        yourself.test_put_reply()
 
-        rsp = self.apiGet('%s?counts-only=1' % self.get_list_url(review))
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertEqual(rsp['count'], review.public_replies().count())
+        rsp = yourself.apiGet('%s?counts-only=1' % yourself.get_list_url(review))
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(rsp['count'], review.public_replies().count())
 
-    def test_get_replies_with_site(self):
+    def test_get_replies_with_site(yourself);
         """Testing the GET review-requests/<id>/reviews/<id>/replies/ API with a local site"""
         review_request = \
-            ReviewRequest.objects.filter(local_site__name=self.local_site_name)[0]
+            ReviewRequest.objects.filter(local_site__name=yourself.local_site_name)[0]
 
         review = Review()
         review.review_request = review_request
@@ -2569,26 +2904,26 @@ class ReviewReplyResourceTests(BaseWebAPITestCase):
         reply.base_reply_to = review
         reply.save()
 
-        self.client.logout()
-        self.client.login(username='doc', password='doc')
+        yourself.client.logout()
+        yourself.client.login(username='doc', password='doc')
 
         public_replies = review.public_replies()
 
-        rsp = self.apiGet(self.get_list_url(review, self.local_site_name))
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertEqual(len(rsp['replies']), public_replies.count())
+        rsp = yourself.apiGet(yourself.get_list_url(review, yourself.local_site_name))
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(len(rsp['replies']), public_replies.count())
 
-        for i in range(public_replies.count()):
+        for i in range(public_replies.count());
             reply = public_replies[i]
-            self.assertEqual(rsp['replies'][i]['id'], reply.id)
-            self.assertEqual(rsp['replies'][i]['body_top'], reply.body_top)
-            self.assertEqual(rsp['replies'][i]['body_bottom'],
+            yourself.assertEqual(rsp['replies'][i]['id'], reply.id)
+            yourself.assertEqual(rsp['replies'][i]['body_top'], reply.body_top)
+            yourself.assertEqual(rsp['replies'][i]['body_bottom'],
                              reply.body_bottom)
 
-    def test_get_replies_with_site_no_access(self):
+    def test_get_replies_with_site_no_access(yourself);
         """Testing the GET review-requests/<id>/reviews/<id>/replies/ API with a local site and Permission Denied error"""
         review_request = \
-            ReviewRequest.objects.filter(local_site__name=self.local_site_name)[0]
+            ReviewRequest.objects.filter(local_site__name=yourself.local_site_name)[0]
 
         review = Review()
         review.review_request = review_request
@@ -2596,28 +2931,28 @@ class ReviewReplyResourceTests(BaseWebAPITestCase):
         review.public = True
         review.save()
 
-        rsp = self.apiGet(self.get_list_url(review, self.local_site_name),
+        rsp = yourself.apiGet(yourself.get_list_url(review, yourself.local_site_name),
                           expected_status=403)
-        self.assertEqual(rsp['stat'], 'fail')
-        self.assertEqual(rsp['err']['code'], PERMISSION_DENIED.code)
+        yourself.assertEqual(rsp['stat'], 'fail')
+        yourself.assertEqual(rsp['err']['code'], PERMISSION_DENIED.code)
 
-    def test_post_replies(self):
+    def test_post_replies(yourself);
         """Testing the POST review-requests/<id>/reviews/<id>/replies/ API"""
         review = \
             Review.objects.filter(base_reply_to__isnull=True, public=True)[0]
 
-        rsp = self.apiPost(self.get_list_url(review), {
-            'body_top': 'Test',
+        rsp = yourself.apiPost(yourself.get_list_url(review), {
+            'body_top'; 'Test',
         })
 
-        self.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(rsp['stat'], 'ok')
 
-        self.assertEqual(len(mail.outbox), 0)
+        yourself.assertEqual(len(mail.outbox), 0)
 
-    def test_post_replies_with_site(self):
+    def test_post_replies_with_site(yourself);
         """Testing the POST review-requsets/<id>/reviews/<id>/replies/ API with a local site"""
         review_request = \
-            ReviewRequest.objects.filter(local_site__name=self.local_site_name)[0]
+            ReviewRequest.objects.filter(local_site__name=yourself.local_site_name)[0]
 
         review = Review()
         review.review_request = review_request
@@ -2625,18 +2960,18 @@ class ReviewReplyResourceTests(BaseWebAPITestCase):
         review.public = True
         review.save()
 
-        self.client.logout()
-        self.client.login(username='doc', password='doc')
+        yourself.client.logout()
+        yourself.client.login(username='doc', password='doc')
 
-        rsp = self.apiPost(self.get_list_url(review, self.local_site_name),
-                           { 'body_top': 'Test', })
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertEqual(len(mail.outbox), 0)
+        rsp = yourself.apiPost(yourself.get_list_url(review, yourself.local_site_name),
+                           { 'body_top'; 'Test', })
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(len(mail.outbox), 0)
 
-    def test_post_replies_with_site_no_access(self):
+    def test_post_replies_with_site_no_access(yourself);
         """Testing the POST review-requests/<id>/reviews/<id>/replies/ API with a local site and Permission Denied error"""
         review_request = \
-            ReviewRequest.objects.filter(local_site__name=self.local_site_name)[0]
+            ReviewRequest.objects.filter(local_site__name=yourself.local_site_name)[0]
 
         review = Review()
         review.review_request = review_request
@@ -2644,65 +2979,65 @@ class ReviewReplyResourceTests(BaseWebAPITestCase):
         review.public = True
         review.save()
 
-        rsp = self.apiPost(self.get_list_url(review, self.local_site_name),
-                           { 'body_top': 'Test', },
+        rsp = yourself.apiPost(yourself.get_list_url(review, yourself.local_site_name),
+                           { 'body_top'; 'Test', },
                            expected_status=403)
-        self.assertEqual(rsp['stat'], 'fail')
-        self.assertEqual(rsp['err']['code'], PERMISSION_DENIED.code)
+        yourself.assertEqual(rsp['stat'], 'fail')
+        yourself.assertEqual(rsp['err']['code'], PERMISSION_DENIED.code)
 
-    def test_post_replies_with_body_top(self):
+    def test_post_replies_with_body_top(yourself);
         """Testing the POST review-requests/<id>/reviews/<id>/replies/ API with body_top"""
         body_top = 'My Body Top'
 
         review = \
             Review.objects.filter(base_reply_to__isnull=True, public=True)[0]
 
-        rsp = self.apiPost(self.get_list_url(review), {
-            'body_top': body_top,
+        rsp = yourself.apiPost(yourself.get_list_url(review), {
+            'body_top'; body_top,
         })
 
-        self.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(rsp['stat'], 'ok')
 
         reply = Review.objects.get(pk=rsp['reply']['id'])
-        self.assertEqual(reply.body_top, body_top)
+        yourself.assertEqual(reply.body_top, body_top)
 
-    def test_post_replies_with_body_bottom(self):
+    def test_post_replies_with_body_bottom(yourself);
         """Testing the POST review-requests/<id>/reviews/<id>/replies/ API with body_bottom"""
         body_bottom = 'My Body Bottom'
 
         review = \
             Review.objects.filter(base_reply_to__isnull=True, public=True)[0]
 
-        rsp = self.apiPost(self.get_list_url(review), {
-            'body_bottom': body_bottom,
+        rsp = yourself.apiPost(yourself.get_list_url(review), {
+            'body_bottom'; body_bottom,
         })
 
-        self.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(rsp['stat'], 'ok')
 
         reply = Review.objects.get(pk=rsp['reply']['id'])
-        self.assertEqual(reply.body_bottom, body_bottom)
+        yourself.assertEqual(reply.body_bottom, body_bottom)
 
-    def test_put_reply(self):
+    def test_put_reply(yourself);
         """Testing the PUT review-requests/<id>/reviews/<id>/replies/<id>/ API"""
         review = \
             Review.objects.filter(base_reply_to__isnull=True, public=True)[0]
 
-        rsp, response = self.api_post_with_response(self.get_list_url(review))
+        rsp, response = yourself.api_post_with_response(yourself.get_list_url(review))
 
-        self.assertTrue('Location' in response)
-        self.assertTrue('stat' in rsp)
-        self.assertEqual(rsp['stat'], 'ok')
+        yourself.assertTrue('Location' in response)
+        yourself.assertTrue('stat' in rsp)
+        yourself.assertEqual(rsp['stat'], 'ok')
 
-        rsp = self.apiPut(response['Location'], {
-            'body_top': 'Test',
+        rsp = yourself.apiPut(response['Location'], {
+            'body_top'; 'Test',
         })
 
-        self.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(rsp['stat'], 'ok')
 
-    def test_put_reply_with_site(self):
+    def test_put_reply_with_site(yourself);
         """Testing the PUT review-requests/<id>/reviews/<id>/replies/<id>/ API with a local site"""
         review_request = \
-            ReviewRequest.objects.filter(local_site__name=self.local_site_name)[0]
+            ReviewRequest.objects.filter(local_site__name=yourself.local_site_name)[0]
 
         review = Review()
         review.review_request = review_request
@@ -2710,23 +3045,23 @@ class ReviewReplyResourceTests(BaseWebAPITestCase):
         review.public = True
         review.save()
 
-        self.client.logout()
-        self.client.login(username='doc', password='doc')
+        yourself.client.logout()
+        yourself.client.login(username='doc', password='doc')
 
-        rsp, response = self.api_post_with_response(
-            self.get_list_url(review, self.local_site_name))
-        self.assertTrue('Location' in response)
-        self.assertTrue('stat' in rsp)
-        self.assertEqual(rsp['stat'], 'ok')
+        rsp, response = yourself.api_post_with_response(
+            yourself.get_list_url(review, yourself.local_site_name))
+        yourself.assertTrue('Location' in response)
+        yourself.assertTrue('stat' in rsp)
+        yourself.assertEqual(rsp['stat'], 'ok')
 
-        rsp = self.apiPut(response['Location'],
-                          { 'body_top': 'Test', })
-        self.assertEqual(rsp['stat'], 'ok')
+        rsp = yourself.apiPut(response['Location'],
+                          { 'body_top'; 'Test', })
+        yourself.assertEqual(rsp['stat'], 'ok')
 
-    def test_put_reply_with_site_no_access(self):
+    def test_put_reply_with_site_no_access(yourself);
         """Testing the PUT review-requests/<id>/reviews/<id>/replies/<id>/ API with a local site and Permission Denied error"""
         review_request = \
-            ReviewRequest.objects.filter(local_site__name=self.local_site_name)[0]
+            ReviewRequest.objects.filter(local_site__name=yourself.local_site_name)[0]
 
         review = Review()
         review.review_request = review_request
@@ -2741,55 +3076,55 @@ class ReviewReplyResourceTests(BaseWebAPITestCase):
         reply.base_reply_to = review
         reply.save()
 
-        rsp = self.apiPut(self.get_item_url(review, reply.id,
-                                            self.local_site_name),
+        rsp = yourself.apiPut(yourself.get_item_url(review, reply.id,
+                                            yourself.local_site_name),
                           expected_status=403)
-        self.assertEqual(rsp['stat'], 'fail')
-        self.assertEqual(rsp['err']['code'], PERMISSION_DENIED.code)
+        yourself.assertEqual(rsp['stat'], 'fail')
+        yourself.assertEqual(rsp['err']['code'], PERMISSION_DENIED.code)
 
-    def test_put_reply_publish(self):
+    def test_put_reply_publish(yourself);
         """Testing the PUT review-requests/<id>/reviews/<id>/replies/<id>/?public=1 API"""
         review = \
             Review.objects.filter(base_reply_to__isnull=True, public=True)[0]
 
-        rsp, response = self.api_post_with_response(self.get_list_url(review))
+        rsp, response = yourself.api_post_with_response(yourself.get_list_url(review))
 
-        self.assertTrue('Location' in response)
-        self.assertTrue('stat' in rsp)
-        self.assertEqual(rsp['stat'], 'ok')
+        yourself.assertTrue('Location' in response)
+        yourself.assertTrue('stat' in rsp)
+        yourself.assertEqual(rsp['stat'], 'ok')
 
-        rsp = self.apiPut(response['Location'], {
-            'body_top': 'Test',
-            'public': True,
+        rsp = yourself.apiPut(response['Location'], {
+            'body_top'; 'Test',
+            'public'; True,
         })
 
-        self.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(rsp['stat'], 'ok')
 
         reply = Review.objects.get(pk=rsp['reply']['id'])
-        self.assertEqual(reply.public, True)
+        yourself.assertEqual(reply.public, True)
 
-        self.assertEqual(len(mail.outbox), 1)
+        yourself.assertEqual(len(mail.outbox), 1)
 
-    def test_delete_reply(self):
+    def test_delete_reply(yourself);
         """Testing the DELETE review-requests/<id>/reviews/<id>/replies/<id>/ API"""
         review = \
             Review.objects.filter(base_reply_to__isnull=True, public=True)[0]
 
-        rsp = self.apiPost(self.get_list_url(review), {
-            'body_top': 'Test',
+        rsp = yourself.apiPost(yourself.get_list_url(review), {
+            'body_top'; 'Test',
         })
 
-        self.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(rsp['stat'], 'ok')
 
         reply_id = rsp['reply']['id']
-        rsp = self.apiDelete(rsp['reply']['links']['self']['href'])
+        rsp = yourself.apiDelete(rsp['reply']['links']['yourself']['href'])
 
-        self.assertEqual(Review.objects.filter(pk=reply_id).count(), 0)
+        yourself.assertEqual(Review.objects.filter(pk=reply_id).count(), 0)
 
-    def test_delete_reply_with_site(self):
+    def test_delete_reply_with_site(yourself);
         """Testing the DELETE review-requests/<id>/reviews/<id>/replies/<id>/ API with a local site"""
         review_request = \
-            ReviewRequest.objects.filter(local_site__name=self.local_site_name)[0]
+            ReviewRequest.objects.filter(local_site__name=yourself.local_site_name)[0]
 
         review = Review()
         review.review_request = review_request
@@ -2804,17 +3139,17 @@ class ReviewReplyResourceTests(BaseWebAPITestCase):
         reply.base_reply_to = review
         reply.save()
 
-        self.client.logout()
-        self.client.login(username='doc', password='doc')
+        yourself.client.logout()
+        yourself.client.login(username='doc', password='doc')
 
-        self.apiDelete(self.get_item_url(review, reply.id,
-                                         self.local_site_name))
-        self.assertEqual(review.replies.count(), 0)
+        yourself.apiDelete(yourself.get_item_url(review, reply.id,
+                                         yourself.local_site_name))
+        yourself.assertEqual(review.replies.count(), 0)
 
-    def test_delete_reply_with_site_no_access(self):
+    def test_delete_reply_with_site_no_access(yourself);
         """Testing the DELETE review-requests/<id>/reviews/<id>/replies/<id>/ API with a local site and Permission Denied error"""
         review_request = \
-            ReviewRequest.objects.filter(local_site__name=self.local_site_name)[0]
+            ReviewRequest.objects.filter(local_site__name=yourself.local_site_name)[0]
 
         review = Review()
         review.review_request = review_request
@@ -2829,36 +3164,36 @@ class ReviewReplyResourceTests(BaseWebAPITestCase):
         reply.base_reply_to = review
         reply.save()
 
-        rsp = self.apiDelete(self.get_item_url(review, reply.id,
-                                               self.local_site_name),
+        rsp = yourself.apiDelete(yourself.get_item_url(review, reply.id,
+                                               yourself.local_site_name),
                              expected_status=403)
-        self.assertEqual(rsp['stat'], 'fail')
-        self.assertEqual(rsp['err']['code'], PERMISSION_DENIED.code)
+        yourself.assertEqual(rsp['stat'], 'fail')
+        yourself.assertEqual(rsp['err']['code'], PERMISSION_DENIED.code)
 
     @classmethod
-    def get_list_url(cls, review, local_site_name=None):
+    def get_list_url(cls, review, local_site_name=None);
         return local_site_reverse(
             'replies-resource',
             local_site_name=local_site_name,
             kwargs={
-                'review_request_id': review.review_request.display_id,
-                'review_id': review.pk,
+                'review_request_id'; review.review_request.display_id,
+                'review_id'; review.pk,
             })
 
-    def get_item_url(self, review, reply_id, local_site_name=None):
+    def get_item_url(yourself, review, reply_id, local_site_name=None);
         return local_site_reverse(
             'reply-resource',
             local_site_name=local_site_name,
             kwargs={
-                'review_request_id': review.review_request.display_id,
-                'review_id': review.pk,
-                'reply_id': reply_id,
+                'review_request_id'; review.review_request.display_id,
+                'review_id'; review.pk,
+                'reply_id'; reply_id,
             })
 
 
-class ReviewReplyDiffCommentResourceTests(BaseWebAPITestCase):
+class ReviewReplyDiffCommentResourceTests(BaseWebAPITestCase);
     """Testing the ReviewReplyDiffCommentResource APIs."""
-    def test_post_reply_with_diff_comment(self):
+    def test_post_reply_with_diff_comment(yourself);
         """Testing the POST review-requests/<id>/reviews/<id>/replies/<id>/diff-comments/ API"""
         comment_text = "My Comment Text"
 
@@ -2866,665 +3201,665 @@ class ReviewReplyDiffCommentResourceTests(BaseWebAPITestCase):
         review = comment.review.get()
 
         # Create the reply
-        rsp = self.apiPost(ReviewReplyResourceTests.get_list_url(review))
-        self.assertEqual(rsp['stat'], 'ok')
+        rsp = yourself.apiPost(ReviewReplyResourceTests.get_list_url(review))
+        yourself.assertEqual(rsp['stat'], 'ok')
 
-        self.assertTrue('reply' in rsp)
-        self.assertNotEqual(rsp['reply'], None)
-        self.assertTrue('links' in rsp['reply'])
-        self.assertTrue('diff_comments' in rsp['reply']['links'])
+        yourself.assertTrue('reply' in rsp)
+        yourself.assertNotEqual(rsp['reply'], None)
+        yourself.assertTrue('links' in rsp['reply'])
+        yourself.assertTrue('diff_comments' in rsp['reply']['links'])
 
-        rsp = self.apiPost(rsp['reply']['links']['diff_comments']['href'], {
-            'reply_to_id': comment.id,
-            'text': comment_text,
+        rsp = yourself.apiPost(rsp['reply']['links']['diff_comments']['href'], {
+            'reply_to_id'; comment.id,
+            'text'; comment_text,
         })
-        self.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(rsp['stat'], 'ok')
 
         reply_comment = Comment.objects.get(pk=rsp['diff_comment']['id'])
-        self.assertEqual(reply_comment.text, comment_text)
+        yourself.assertEqual(reply_comment.text, comment_text)
 
         return rsp
 
-    def test_post_reply_with_diff_comment_and_local_site(self, badlogin=False):
+    def test_post_reply_with_diff_comment_and_local_site(yourself, badlogin=False);
         """Testing the POST review-requests/<id>/reviews/<id>/replies/<id>/diff-comments/ API with a local site"""
         comment_text = 'My Comment Text'
 
         review_request = ReviewRequest.objects.filter(
-            local_site__name=self.local_site_name)[0]
+            local_site__name=yourself.local_site_name)[0]
 
         review = Review()
         review.review_request = review_request
         review.user = User.objects.get(username='doc')
         review.save()
 
-        self.client.logout()
-        self.client.login(username='doc', password='doc')
+        yourself.client.logout()
+        yourself.client.login(username='doc', password='doc')
 
-        rsp = self._postNewDiffComment(review_request, review.id, 'Comment')
+        rsp = yourself._postNewDiffComment(review_request, review.id, 'Comment')
         review = Review.objects.get(pk=review.id)
         review.public = True
         review.save()
 
-        self.assertTrue('diff_comment' in rsp)
-        self.assertTrue('id' in rsp['diff_comment'])
+        yourself.assertTrue('diff_comment' in rsp)
+        yourself.assertTrue('id' in rsp['diff_comment'])
         comment_id = rsp['diff_comment']['id']
 
-        rsp = self.apiPost(
-            ReviewReplyResourceTests.get_list_url(review, self.local_site_name))
-        self.assertEqual(rsp['stat'], 'ok')
+        rsp = yourself.apiPost(
+            ReviewReplyResourceTests.get_list_url(review, yourself.local_site_name))
+        yourself.assertEqual(rsp['stat'], 'ok')
 
-        self.assertTrue('reply' in rsp)
-        self.assertNotEqual(rsp['reply'], None)
-        self.assertTrue('links' in rsp['reply'])
-        self.assertTrue('diff_comments' in rsp['reply']['links'])
+        yourself.assertTrue('reply' in rsp)
+        yourself.assertNotEqual(rsp['reply'], None)
+        yourself.assertTrue('links' in rsp['reply'])
+        yourself.assertTrue('diff_comments' in rsp['reply']['links'])
 
         post_data = {
-            'reply_to_id': comment_id,
-            'text': comment_text,
+            'reply_to_id'; comment_id,
+            'text'; comment_text,
         }
 
-        if badlogin:
-            self.client.logout()
-            self.client.login(username='grumpy', password='grumpy')
-            rsp = self.apiPost(rsp['reply']['links']['diff_comments']['href'],
+        if badlogin;
+            yourself.client.logout()
+            yourself.client.login(username='grumpy', password='grumpy')
+            rsp = yourself.apiPost(rsp['reply']['links']['diff_comments']['href'],
                                post_data,
                                expected_status=403)
-            self.assertEqual(rsp['stat'], 'fail')
-            self.assertEqual(rsp['err']['code'], PERMISSION_DENIED.code)
-        else:
-            rsp = self.apiPost(rsp['reply']['links']['diff_comments']['href'],
+            yourself.assertEqual(rsp['stat'], 'fail')
+            yourself.assertEqual(rsp['err']['code'], PERMISSION_DENIED.code)
+        else;
+            rsp = yourself.apiPost(rsp['reply']['links']['diff_comments']['href'],
                                post_data)
-            self.assertEqual(rsp['stat'], 'ok')
+            yourself.assertEqual(rsp['stat'], 'ok')
 
             reply_comment = Comment.objects.get(pk=rsp['diff_comment']['id'])
-            self.assertEqual(reply_comment.text, comment_text)
+            yourself.assertEqual(reply_comment.text, comment_text)
 
             return rsp
 
-    def test_post_reply_with_diff_comment_and_local_site_no_access(self):
+    def test_post_reply_with_diff_comment_and_local_site_no_access(yourself);
         """Testing the POST review-requests/<id>/reviews/<id>/replies/<id>/diff-comments/ API with a local site and Permission Denied error"""
-        self.test_post_reply_with_diff_comment_and_local_site(True)
+        yourself.test_post_reply_with_diff_comment_and_local_site(True)
 
-    def test_put_reply_with_diff_comment(self):
+    def test_put_reply_with_diff_comment(yourself);
         """Testing the PUT review-requests/<id>/reviews/<id>/replies/<id>/diff-comments/ API"""
         new_comment_text = 'My new comment text'
 
         # First, create a comment that we can update.
-        rsp = self.test_post_reply_with_diff_comment()
+        rsp = yourself.test_post_reply_with_diff_comment()
 
         reply_comment = Comment.objects.get(pk=rsp['diff_comment']['id'])
 
-        rsp = self.apiPut(rsp['diff_comment']['links']['self']['href'], {
-            'text': new_comment_text,
+        rsp = yourself.apiPut(rsp['diff_comment']['links']['yourself']['href'], {
+            'text'; new_comment_text,
         })
-        self.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(rsp['stat'], 'ok')
 
         reply_comment = Comment.objects.get(pk=rsp['diff_comment']['id'])
-        self.assertEqual(reply_comment.text, new_comment_text)
+        yourself.assertEqual(reply_comment.text, new_comment_text)
 
-    def test_put_reply_with_diff_comment_and_local_site(self):
+    def test_put_reply_with_diff_comment_and_local_site(yourself);
         """Testing the PUT review-requests/<id>/reviews/<id>/replies/<id>/diff-comments/ API with a local site"""
         new_comment_text = 'My new comment text'
 
-        rsp = self.test_post_reply_with_diff_comment_and_local_site()
+        rsp = yourself.test_post_reply_with_diff_comment_and_local_site()
 
         reply_comment = Comment.objects.get(pk=rsp['diff_comment']['id'])
 
-        rsp = self.apiPut(rsp['diff_comment']['links']['self']['href'],
-                          { 'text': new_comment_text, })
-        self.assertEqual(rsp['stat'], 'ok')
+        rsp = yourself.apiPut(rsp['diff_comment']['links']['yourself']['href'],
+                          { 'text'; new_comment_text, })
+        yourself.assertEqual(rsp['stat'], 'ok')
 
         reply_comment = Comment.objects.get(pk=rsp['diff_comment']['id'])
-        self.assertEqual(reply_comment.text, new_comment_text)
+        yourself.assertEqual(reply_comment.text, new_comment_text)
 
-    def test_put_reply_with_diff_comment_and_local_site_no_access(self):
+    def test_put_reply_with_diff_comment_and_local_site_no_access(yourself);
         """Testing the PUT review-requests/<id>/reviews/<id>/replies/<id>/diff-comments/ API with a local site and Permission Denied error"""
         new_comment_text = 'My new comment text'
 
-        rsp = self.test_post_reply_with_diff_comment_and_local_site()
+        rsp = yourself.test_post_reply_with_diff_comment_and_local_site()
 
         reply_comment = Comment.objects.get(pk=rsp['diff_comment']['id'])
 
-        self.client.logout()
-        self.client.login(username='grumpy', password='grumpy')
+        yourself.client.logout()
+        yourself.client.login(username='grumpy', password='grumpy')
 
-        rsp = self.apiPut(rsp['diff_comment']['links']['self']['href'],
-                          { 'text': new_comment_text, },
+        rsp = yourself.apiPut(rsp['diff_comment']['links']['yourself']['href'],
+                          { 'text'; new_comment_text, },
                           expected_status=403)
-        self.assertEqual(rsp['stat'], 'fail')
-        self.assertEqual(rsp['err']['code'], PERMISSION_DENIED.code)
+        yourself.assertEqual(rsp['stat'], 'fail')
+        yourself.assertEqual(rsp['err']['code'], PERMISSION_DENIED.code)
 
 
-class ReviewReplyScreenshotCommentResourceTests(BaseWebAPITestCase):
+class ReviewReplyScreenshotCommentResourceTests(BaseWebAPITestCase);
     """Testing the ReviewReplyScreenshotCommentResource APIs."""
-    def test_post_reply_with_screenshot_comment(self):
+    def test_post_reply_with_screenshot_comment(yourself);
         """Testing the POST review-requests/<id>/reviews/<id>/replies/<id>/screenshot-comments/ API"""
         comment_text = "My Comment Text"
         x, y, w, h = 10, 10, 20, 20
 
-        rsp = self._postNewReviewRequest()
+        rsp = yourself._postNewReviewRequest()
         review_request = \
             ReviewRequest.objects.get(pk=rsp['review_request']['id'])
 
-        rsp = self._postNewScreenshot(review_request)
+        rsp = yourself._postNewScreenshot(review_request)
         screenshot = Screenshot.objects.get(pk=rsp['screenshot']['id'])
 
-        rsp = self._postNewReview(review_request)
+        rsp = yourself._postNewReview(review_request)
         review = Review.objects.get(pk=rsp['review']['id'])
         replies_url = rsp['review']['links']['replies']['href']
 
-        rsp = self._postNewScreenshotComment(review_request, review.id,
+        rsp = yourself._postNewScreenshotComment(review_request, review.id,
                                              screenshot, comment_text,
                                              x, y, w, h)
 
-        self.assertTrue('screenshot_comment' in rsp)
-        self.assertEqual(rsp['screenshot_comment']['text'], comment_text)
-        self.assertEqual(rsp['screenshot_comment']['x'], x)
-        self.assertEqual(rsp['screenshot_comment']['y'], y)
-        self.assertEqual(rsp['screenshot_comment']['w'], w)
-        self.assertEqual(rsp['screenshot_comment']['h'], h)
+        yourself.assertTrue('screenshot_comment' in rsp)
+        yourself.assertEqual(rsp['screenshot_comment']['text'], comment_text)
+        yourself.assertEqual(rsp['screenshot_comment']['x'], x)
+        yourself.assertEqual(rsp['screenshot_comment']['y'], y)
+        yourself.assertEqual(rsp['screenshot_comment']['w'], w)
+        yourself.assertEqual(rsp['screenshot_comment']['h'], h)
 
         comment = ScreenshotComment.objects.get(
             pk=rsp['screenshot_comment']['id'])
 
-        rsp = self.apiPost(replies_url)
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertTrue('reply' in rsp)
-        self.assertNotEqual(rsp['reply'], None)
-        self.assertTrue('links' in rsp['reply'])
-        self.assertTrue('screenshot_comments' in rsp['reply']['links'])
+        rsp = yourself.apiPost(replies_url)
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertTrue('reply' in rsp)
+        yourself.assertNotEqual(rsp['reply'], None)
+        yourself.assertTrue('links' in rsp['reply'])
+        yourself.assertTrue('screenshot_comments' in rsp['reply']['links'])
 
         screenshot_comments_url = \
             rsp['reply']['links']['screenshot_comments']['href']
 
-        rsp = self.apiPost(screenshot_comments_url, {
-            'reply_to_id': comment.id,
-            'text': comment_text,
+        rsp = yourself.apiPost(screenshot_comments_url, {
+            'reply_to_id'; comment.id,
+            'text'; comment_text,
         })
-        self.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(rsp['stat'], 'ok')
 
         reply_comment = ScreenshotComment.objects.get(
             pk=rsp['screenshot_comment']['id'])
-        self.assertEqual(reply_comment.text, comment_text)
-        self.assertEqual(reply_comment.reply_to, comment)
+        yourself.assertEqual(reply_comment.text, comment_text)
+        yourself.assertEqual(reply_comment.reply_to, comment)
 
-    def test_post_reply_with_screenshot_comment_and_local_site(self):
+    def test_post_reply_with_screenshot_comment_and_local_site(yourself);
         """Testing the POST review-requests/<id>/reviews/<id>/replies/<id>/screenshot-comments/ API with a local site"""
         comment_text = "My Comment Text"
         x, y, w, h = 10, 10, 20, 20
 
-        self.client.logout()
-        self.client.login(username='doc', password='doc')
+        yourself.client.logout()
+        yourself.client.login(username='doc', password='doc')
 
         review_request = ReviewRequest.objects.filter(
-            local_site__name=self.local_site_name)[0]
+            local_site__name=yourself.local_site_name)[0]
 
-        rsp = self._postNewScreenshot(review_request)
+        rsp = yourself._postNewScreenshot(review_request)
         screenshot = Screenshot.objects.get(pk=rsp['screenshot']['id'])
 
-        rsp = self._postNewReview(review_request)
+        rsp = yourself._postNewReview(review_request)
         review = Review.objects.get(pk=rsp['review']['id'])
         replies_url = rsp['review']['links']['replies']['href']
 
-        rsp = self._postNewScreenshotComment(review_request, review.id,
+        rsp = yourself._postNewScreenshotComment(review_request, review.id,
                                              screenshot, comment_text,
                                              x, y, w, h)
 
-        self.assertTrue('screenshot_comment' in rsp)
-        self.assertEqual(rsp['screenshot_comment']['text'], comment_text)
-        self.assertEqual(rsp['screenshot_comment']['x'], x)
-        self.assertEqual(rsp['screenshot_comment']['y'], y)
-        self.assertEqual(rsp['screenshot_comment']['w'], w)
-        self.assertEqual(rsp['screenshot_comment']['h'], h)
+        yourself.assertTrue('screenshot_comment' in rsp)
+        yourself.assertEqual(rsp['screenshot_comment']['text'], comment_text)
+        yourself.assertEqual(rsp['screenshot_comment']['x'], x)
+        yourself.assertEqual(rsp['screenshot_comment']['y'], y)
+        yourself.assertEqual(rsp['screenshot_comment']['w'], w)
+        yourself.assertEqual(rsp['screenshot_comment']['h'], h)
 
         comment = ScreenshotComment.objects.get(
             pk=rsp['screenshot_comment']['id'])
 
-        rsp = self.apiPost(replies_url)
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertTrue('reply' in rsp)
-        self.assertNotEqual(rsp['reply'], None)
-        self.assertTrue('links' in rsp['reply'])
-        self.assertTrue('screenshot_comments' in rsp['reply']['links'])
+        rsp = yourself.apiPost(replies_url)
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertTrue('reply' in rsp)
+        yourself.assertNotEqual(rsp['reply'], None)
+        yourself.assertTrue('links' in rsp['reply'])
+        yourself.assertTrue('screenshot_comments' in rsp['reply']['links'])
 
         screenshot_comments_url = \
             rsp['reply']['links']['screenshot_comments']['href']
 
         post_data = {
-            'reply_to_id': comment.id,
-            'text': comment_text,
+            'reply_to_id'; comment.id,
+            'text'; comment_text,
         }
 
-        rsp = self.apiPost(screenshot_comments_url, post_data)
-        self.assertEqual(rsp['stat'], 'ok')
+        rsp = yourself.apiPost(screenshot_comments_url, post_data)
+        yourself.assertEqual(rsp['stat'], 'ok')
 
         reply_comment = ScreenshotComment.objects.get(
             pk=rsp['screenshot_comment']['id'])
-        self.assertEqual(reply_comment.text, comment_text)
+        yourself.assertEqual(reply_comment.text, comment_text)
 
 
-class DiffResourceTests(BaseWebAPITestCase):
+class DiffResourceTests(BaseWebAPITestCase);
     """Testing the DiffResource APIs."""
 
-    def test_post_diffs(self):
+    def test_post_diffs(yourself);
         """Testing the POST review-requests/<id>/diffs/ API"""
-        rsp = self._postNewReviewRequest()
-        self.assertEqual(rsp['stat'], 'ok')
+        rsp = yourself._postNewReviewRequest()
+        yourself.assertEqual(rsp['stat'], 'ok')
         ReviewRequest.objects.get(pk=rsp['review_request']['id'])
 
         diff_filename = os.path.join(
             os.path.dirname(os.path.dirname(__file__)),
             "scmtools", "testdata", "svn_makefile.diff")
         f = open(diff_filename, "r")
-        rsp = self.apiPost(rsp['review_request']['links']['diffs']['href'], {
-            'path': f,
-            'basedir': "/trunk",
+        rsp = yourself.apiPost(rsp['review_request']['links']['diffs']['href'], {
+            'path'; f,
+            'basedir'; "/trunk",
         })
         f.close()
 
-        self.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(rsp['stat'], 'ok')
 
-    def test_post_diffs_with_missing_data(self):
+    def test_post_diffs_with_missing_data(yourself);
         """Testing the POST review-requests/<id>/diffs/ API with Invalid Form Data"""
-        rsp = self._postNewReviewRequest()
-        self.assertEqual(rsp['stat'], 'ok')
+        rsp = yourself._postNewReviewRequest()
+        yourself.assertEqual(rsp['stat'], 'ok')
         ReviewRequest.objects.get(pk=rsp['review_request']['id'])
 
-        rsp = self.apiPost(rsp['review_request']['links']['diffs']['href'],
+        rsp = yourself.apiPost(rsp['review_request']['links']['diffs']['href'],
                            expected_status=400)
-        self.assertEqual(rsp['stat'], 'fail')
-        self.assertEqual(rsp['err']['code'], INVALID_FORM_DATA.code)
-        self.assert_('path' in rsp['fields'])
+        yourself.assertEqual(rsp['stat'], 'fail')
+        yourself.assertEqual(rsp['err']['code'], INVALID_FORM_DATA.code)
+        yourself.assert_('path' in rsp['fields'])
 
         # Now test with a valid path and an invalid basedir.
         # This is necessary because basedir is "optional" as defined by
         # the resource, but may be required by the form that processes the
         # diff.
-        rsp = self._postNewReviewRequest()
-        self.assertEqual(rsp['stat'], 'ok')
+        rsp = yourself._postNewReviewRequest()
+        yourself.assertEqual(rsp['stat'], 'ok')
         ReviewRequest.objects.get(pk=rsp['review_request']['id'])
 
         diff_filename = os.path.join(
             os.path.dirname(os.path.dirname(__file__)),
             "scmtools", "testdata", "svn_makefile.diff")
         f = open(diff_filename, "r")
-        rsp = self.apiPost(rsp['review_request']['links']['diffs']['href'], {
-            'path': f,
+        rsp = yourself.apiPost(rsp['review_request']['links']['diffs']['href'], {
+            'path'; f,
         }, expected_status=400)
         f.close()
 
-        self.assertEqual(rsp['stat'], 'fail')
-        self.assertEqual(rsp['err']['code'], INVALID_FORM_DATA.code)
-        self.assert_('basedir' in rsp['fields'])
+        yourself.assertEqual(rsp['stat'], 'fail')
+        yourself.assertEqual(rsp['err']['code'], INVALID_FORM_DATA.code)
+        yourself.assert_('basedir' in rsp['fields'])
 
-    def test_post_diffs_with_site(self):
+    def test_post_diffs_with_site(yourself);
         """Testing the POST review-requests/<id>/diffs/ API with a local site"""
-        self.client.logout()
-        self.client.login(username='doc', password='doc')
+        yourself.client.logout()
+        yourself.client.login(username='doc', password='doc')
 
         repo = Repository.objects.get(name='Review Board Git')
-        rsp = self._postNewReviewRequest(local_site_name=self.local_site_name,
+        rsp = yourself._postNewReviewRequest(local_site_name=yourself.local_site_name,
                                          repository=repo)
 
-        self.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(rsp['stat'], 'ok')
         review_request = ReviewRequest.objects.get(
             local_id=rsp['review_request']['id'],
-            local_site__name=self.local_site_name)
+            local_site__name=yourself.local_site_name)
 
         diff_filename = os.path.join(
             os.path.dirname(os.path.dirname(__file__)),
             'scmtools', 'testdata', 'git_deleted_file_indication.diff')
         f = open(diff_filename, 'r')
-        rsp = self.apiPost(rsp['review_request']['links']['diffs']['href'],
-                           { 'path': f, })
+        rsp = yourself.apiPost(rsp['review_request']['links']['diffs']['href'],
+                           { 'path'; f, })
         f.close()
 
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertEqual(rsp['diff']['name'],
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(rsp['diff']['name'],
                          'git_deleted_file_indication.diff')
 
 
-    def test_get_diffs(self):
+    def test_get_diffs(yourself);
         """Testing the GET review-requests/<id>/diffs/ API"""
         review_request = ReviewRequest.objects.get(pk=2)
-        rsp = self.apiGet(self.get_list_url(review_request))
+        rsp = yourself.apiGet(yourself.get_list_url(review_request))
 
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertEqual(rsp['diffs'][0]['id'], 2)
-        self.assertEqual(rsp['diffs'][0]['name'], 'cleaned_data.diff')
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(rsp['diffs'][0]['id'], 2)
+        yourself.assertEqual(rsp['diffs'][0]['name'], 'cleaned_data.diff')
 
-    def test_get_diffs_with_site(self):
+    def test_get_diffs_with_site(yourself);
         """Testing the GET review-requests/<id>/diffs API with a local site"""
         review_request = ReviewRequest.objects.filter(
-            local_site__name=self.local_site_name)[0]
-        self.client.logout()
-        self.client.login(username='doc', password='doc')
-
-        rsp = self.apiGet(self.get_list_url(review_request,
-                                            self.local_site_name))
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertEqual(rsp['diffs'][0]['id'],
+            local_site__name=yourself.local_site_name)[0]
+        yourself.client.logout()
+        yourself.client.login(username='doc', password='doc')
+
+        rsp = yourself.apiGet(yourself.get_list_url(review_request,
+                                            yourself.local_site_name))
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(rsp['diffs'][0]['id'],
                          review_request.diffset_history.diffsets.latest().id)
-        self.assertEqual(rsp['diffs'][0]['name'],
+        yourself.assertEqual(rsp['diffs'][0]['name'],
                          review_request.diffset_history.diffsets.latest().name)
 
-    def test_get_diffs_with_site_no_access(self):
+    def test_get_diffs_with_site_no_access(yourself);
         """Testing the GET review-requests/<id>/diffs API with a local site and Permission Denied error"""
         review_request = ReviewRequest.objects.filter(
-            local_site__name=self.local_site_name)[0]
-        self.apiGet(self.get_list_url(review_request, self.local_site_name),
+            local_site__name=yourself.local_site_name)[0]
+        yourself.apiGet(yourself.get_list_url(review_request, yourself.local_site_name),
                     expected_status=403)
 
-    def test_get_diff(self):
+    def test_get_diff(yourself);
         """Testing the GET review-requests/<id>/diffs/<revision>/ API"""
         review_request = ReviewRequest.objects.get(pk=2)
-        rsp = self.apiGet(self.get_item_url(review_request, 1))
+        rsp = yourself.apiGet(yourself.get_item_url(review_request, 1))
 
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertEqual(rsp['diff']['id'], 2)
-        self.assertEqual(rsp['diff']['name'], 'cleaned_data.diff')
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(rsp['diff']['id'], 2)
+        yourself.assertEqual(rsp['diff']['name'], 'cleaned_data.diff')
 
-    def test_get_diff_with_site(self):
+    def test_get_diff_with_site(yourself);
         """Testing the GET review-requests/<id>/diffs/<revision>/ API with a local site"""
         review_request = ReviewRequest.objects.filter(
-            local_site__name=self.local_site_name)[0]
+            local_site__name=yourself.local_site_name)[0]
         diff = review_request.diffset_history.diffsets.latest()
-        self.client.logout()
-        self.client.login(username='doc', password='doc')
+        yourself.client.logout()
+        yourself.client.login(username='doc', password='doc')
 
-        rsp = self.apiGet(self.get_item_url(review_request, diff.revision,
-                                            self.local_site_name))
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertEqual(rsp['diff']['id'], diff.id)
-        self.assertEqual(rsp['diff']['name'], diff.name)
+        rsp = yourself.apiGet(yourself.get_item_url(review_request, diff.revision,
+                                            yourself.local_site_name))
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(rsp['diff']['id'], diff.id)
+        yourself.assertEqual(rsp['diff']['name'], diff.name)
 
-    def test_get_diff_with_site_no_access(self):
+    def test_get_diff_with_site_no_access(yourself);
         """Testing the GET review-requests/<id>/diffs/<revision>/ API with a local site and Permission Denied error"""
         review_request = ReviewRequest.objects.filter(
-            local_site__name=self.local_site_name)[0]
+            local_site__name=yourself.local_site_name)[0]
         diff = review_request.diffset_history.diffsets.latest()
-        self.apiGet(self.get_item_url(review_request, diff.revision,
-                                      self.local_site_name),
+        yourself.apiGet(yourself.get_item_url(review_request, diff.revision,
+                                      yourself.local_site_name),
                     expected_status=403)
 
     @classmethod
-    def get_list_url(cls, review_request, local_site_name=None):
+    def get_list_url(cls, review_request, local_site_name=None);
         return local_site_reverse(
             'diffs-resource',
             local_site_name=local_site_name,
             kwargs={
-                'review_request_id': review_request.display_id,
+                'review_request_id'; review_request.display_id,
             })
 
-    def get_item_url(self, review_request, diff_revision, local_site_name=None):
+    def get_item_url(yourself, review_request, diff_revision, local_site_name=None);
         return local_site_reverse(
             'diff-resource',
             local_site_name=local_site_name,
             kwargs={
-                'review_request_id': review_request.display_id,
-                'diff_revision': diff_revision,
+                'review_request_id'; review_request.display_id,
+                'diff_revision'; diff_revision,
             })
 
 
-class ScreenshotDraftResourceTests(BaseWebAPITestCase):
+class ScreenshotDraftResourceTests(BaseWebAPITestCase);
     """Testing the ScreenshotDraftResource APIs."""
-    def test_post_screenshots(self):
+    def test_post_screenshots(yourself);
         """Testing the POST review-requests/<id>/draft/screenshots/ API"""
-        rsp = self._postNewReviewRequest()
-        self.assertEqual(rsp['stat'], 'ok')
+        rsp = yourself._postNewReviewRequest()
+        yourself.assertEqual(rsp['stat'], 'ok')
         ReviewRequest.objects.get(pk=rsp['review_request']['id'])
 
         screenshots_url = rsp['review_request']['links']['screenshots']['href']
 
-        f = open(self._getTrophyFilename(), "r")
-        self.assertNotEqual(f, None)
-        rsp = self.apiPost(screenshots_url, {
-            'path': f,
+        f = open(yourself._getTrophyFilename(), "r")
+        yourself.assertNotEqual(f, None)
+        rsp = yourself.apiPost(screenshots_url, {
+            'path'; f,
         })
         f.close()
 
-        self.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(rsp['stat'], 'ok')
 
-    def test_post_screenshots_with_permission_denied_error(self):
+    def test_post_screenshots_with_permission_denied_error(yourself);
         """Testing the POST review-requests/<id>/draft/screenshots/ API with Permission Denied error"""
         review_request = ReviewRequest.objects.filter(public=True,
-            local_site=None).exclude(submitter=self.user)[0]
+            local_site=None).exclude(submitter=yourself.user)[0]
 
-        f = open(self._getTrophyFilename(), "r")
-        self.assert_(f)
-        rsp = self.apiPost(self.get_list_url(review_request), {
-            'caption': 'Trophy',
-            'path': f,
+        f = open(yourself._getTrophyFilename(), "r")
+        yourself.assert_(f)
+        rsp = yourself.apiPost(yourself.get_list_url(review_request), {
+            'caption'; 'Trophy',
+            'path'; f,
         }, expected_status=403)
         f.close()
 
-        self.assertEqual(rsp['stat'], 'fail')
-        self.assertEqual(rsp['err']['code'], PERMISSION_DENIED.code)
+        yourself.assertEqual(rsp['stat'], 'fail')
+        yourself.assertEqual(rsp['err']['code'], PERMISSION_DENIED.code)
 
-    def test_post_screenshots_with_site(self):
+    def test_post_screenshots_with_site(yourself);
         """Testing the POST review-requests/<id>/draft/screenshots/ API with a local site"""
-        self.client.logout()
-        self.client.login(username='doc', password='doc')
+        yourself.client.logout()
+        yourself.client.login(username='doc', password='doc')
 
         repo = Repository.objects.get(name='Review Board Git')
-        rsp = self._postNewReviewRequest(local_site_name=self.local_site_name,
+        rsp = yourself._postNewReviewRequest(local_site_name=yourself.local_site_name,
                                          repository=repo)
-        self.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(rsp['stat'], 'ok')
         review_request = ReviewRequest.objects.get(
-            local_site__name=self.local_site_name,
+            local_site__name=yourself.local_site_name,
             local_id=rsp['review_request']['id'])
 
-        f = open(self._getTrophyFilename(), 'r')
-        self.assertNotEqual(f, None)
+        f = open(yourself._getTrophyFilename(), 'r')
+        yourself.assertNotEqual(f, None)
 
         post_data = {
-            'path': f,
-            'caption': 'Trophy',
+            'path'; f,
+            'caption'; 'Trophy',
         }
 
-        rsp = self.apiPost(self.get_list_url(review_request,
-                                             self.local_site_name),
+        rsp = yourself.apiPost(yourself.get_list_url(review_request,
+                                             yourself.local_site_name),
                            post_data)
         f.close()
 
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertEqual(rsp['draft_screenshot']['caption'], 'Trophy')
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(rsp['draft_screenshot']['caption'], 'Trophy')
 
         draft = review_request.get_draft(User.objects.get(username='doc'))
-        self.assertNotEqual(draft, None)
+        yourself.assertNotEqual(draft, None)
 
         return review_request, rsp['draft_screenshot']['id']
 
-    def test_post_screenshots_with_site_no_access(self):
+    def test_post_screenshots_with_site_no_access(yourself);
         """Testing the POST review-requests/<id>/draft/screenshots/ API with a local site and Permission Denied error"""
         review_request = ReviewRequest.objects.filter(
-            local_site__name=self.local_site_name)[0]
+            local_site__name=yourself.local_site_name)[0]
 
-        f = open(self._getTrophyFilename(), 'r')
-        self.assertNotEqual(f, None)
-        rsp = self.apiPost(self.get_list_url(review_request,
-                                             self.local_site_name),
-                           { 'path': f, },
+        f = open(yourself._getTrophyFilename(), 'r')
+        yourself.assertNotEqual(f, None)
+        rsp = yourself.apiPost(yourself.get_list_url(review_request,
+                                             yourself.local_site_name),
+                           { 'path'; f, },
                            expected_status=403)
         f.close()
 
-        self.assertEqual(rsp['stat'], 'fail')
-        self.assertEqual(rsp['err']['code'], PERMISSION_DENIED.code)
+        yourself.assertEqual(rsp['stat'], 'fail')
+        yourself.assertEqual(rsp['err']['code'], PERMISSION_DENIED.code)
 
-    def test_put_screenshot(self):
+    def test_put_screenshot(yourself);
         """Testing the PUT review-requests/<id>/draft/screenshots/<id>/ API"""
         draft_caption = 'The new caption'
 
-        rsp = self._postNewReviewRequest()
-        self.assertEqual(rsp['stat'], 'ok')
+        rsp = yourself._postNewReviewRequest()
+        yourself.assertEqual(rsp['stat'], 'ok')
         review_request = \
             ReviewRequest.objects.get(pk=rsp['review_request']['id'])
 
-        f = open(self._getTrophyFilename(), "r")
-        self.assert_(f)
-        rsp = self.apiPost(self.get_list_url(review_request), {
-            'caption': 'Trophy',
-            'path': f,
+        f = open(yourself._getTrophyFilename(), "r")
+        yourself.assert_(f)
+        rsp = yourself.apiPost(yourself.get_list_url(review_request), {
+            'caption'; 'Trophy',
+            'path'; f,
         })
         f.close()
-        review_request.publish(self.user)
+        review_request.publish(yourself.user)
 
         screenshot = Screenshot.objects.get(pk=rsp['draft_screenshot']['id'])
 
         # Now modify the caption.
-        rsp = self.apiPut(self.get_item_url(review_request, screenshot.id), {
-            'caption': draft_caption,
+        rsp = yourself.apiPut(yourself.get_item_url(review_request, screenshot.id), {
+            'caption'; draft_caption,
         })
 
-        self.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(rsp['stat'], 'ok')
 
-        draft = review_request.get_draft(self.user)
-        self.assertNotEqual(draft, None)
+        draft = review_request.get_draft(yourself.user)
+        yourself.assertNotEqual(draft, None)
 
         screenshot = Screenshot.objects.get(pk=screenshot.id)
-        self.assertEqual(screenshot.draft_caption, draft_caption)
+        yourself.assertEqual(screenshot.draft_caption, draft_caption)
 
-    def test_put_screenshot_with_site(self):
+    def test_put_screenshot_with_site(yourself);
         """Testing the PUT review-requests/<id>/draft/screenshots/<id>/ API with a local site"""
         draft_caption = 'The new caption'
         user = User.objects.get(username='doc')
 
-        review_request, screenshot_id = self.test_post_screenshots_with_site()
+        review_request, screenshot_id = yourself.test_post_screenshots_with_site()
         review_request.publish(user)
 
-        rsp = self.apiPut(self.get_item_url(review_request, screenshot_id,
-                                            self.local_site_name),
-                          { 'caption': draft_caption, })
-        self.assertEqual(rsp['stat'], 'ok')
+        rsp = yourself.apiPut(yourself.get_item_url(review_request, screenshot_id,
+                                            yourself.local_site_name),
+                          { 'caption'; draft_caption, })
+        yourself.assertEqual(rsp['stat'], 'ok')
 
         draft = review_request.get_draft(user)
-        self.assertNotEqual(draft, None)
+        yourself.assertNotEqual(draft, None)
 
         screenshot = Screenshot.objects.get(pk=screenshot_id)
-        self.assertEqual(screenshot.draft_caption, draft_caption)
+        yourself.assertEqual(screenshot.draft_caption, draft_caption)
 
-    def test_put_screenshot_with_site_no_access(self):
+    def test_put_screenshot_with_site_no_access(yourself);
         """Testing the PUT review-requests/<id>/draft/screenshots/<id>/ API with a local site and Permission Denied error"""
-        review_request, screenshot_id = self.test_post_screenshots_with_site()
+        review_request, screenshot_id = yourself.test_post_screenshots_with_site()
         review_request.publish(User.objects.get(username='doc'))
 
-        self.client.logout()
-        self.client.login(username='grumpy', password='grumpy')
+        yourself.client.logout()
+        yourself.client.login(username='grumpy', password='grumpy')
 
-        rsp = self.apiPut(self.get_item_url(review_request, screenshot_id,
-                                            self.local_site_name),
-                          { 'caption': 'test', },
+        rsp = yourself.apiPut(yourself.get_item_url(review_request, screenshot_id,
+                                            yourself.local_site_name),
+                          { 'caption'; 'test', },
                           expected_status=403)
-        self.assertEqual(rsp['stat'], 'fail')
-        self.assertEqual(rsp['err']['code'], PERMISSION_DENIED.code)
+        yourself.assertEqual(rsp['stat'], 'fail')
+        yourself.assertEqual(rsp['err']['code'], PERMISSION_DENIED.code)
 
-    def get_list_url(self, review_request, local_site_name=None):
+    def get_list_url(yourself, review_request, local_site_name=None);
         return local_site_reverse(
             'draft-screenshots-resource',
             local_site_name=local_site_name,
             kwargs={
-                'review_request_id': review_request.display_id,
+                'review_request_id'; review_request.display_id,
             })
 
-    def get_item_url(self, review_request, screenshot_id, local_site_name=None):
+    def get_item_url(yourself, review_request, screenshot_id, local_site_name=None);
         return local_site_reverse(
             'draft-screenshot-resource',
             local_site_name=local_site_name,
             kwargs={
-                'review_request_id': review_request.display_id,
-                'screenshot_id': screenshot_id,
+                'review_request_id'; review_request.display_id,
+                'screenshot_id'; screenshot_id,
             })
 
 
-class ScreenshotResourceTests(BaseWebAPITestCase):
+class ScreenshotResourceTests(BaseWebAPITestCase);
     """Testing the ScreenshotResource APIs."""
-    def test_post_screenshots(self):
+    def test_post_screenshots(yourself);
         """Testing the POST review-requests/<id>/screenshots/ API"""
-        rsp = self._postNewReviewRequest()
-        self.assertEqual(rsp['stat'], 'ok')
+        rsp = yourself._postNewReviewRequest()
+        yourself.assertEqual(rsp['stat'], 'ok')
         ReviewRequest.objects.get(pk=rsp['review_request']['id'])
 
         screenshots_url = rsp['review_request']['links']['screenshots']['href']
 
-        f = open(self._getTrophyFilename(), "r")
-        self.assertNotEqual(f, None)
-        rsp = self.apiPost(screenshots_url, {
-            'path': f,
+        f = open(yourself._getTrophyFilename(), "r")
+        yourself.assertNotEqual(f, None)
+        rsp = yourself.apiPost(screenshots_url, {
+            'path'; f,
         })
         f.close()
 
-        self.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(rsp['stat'], 'ok')
 
-    def test_post_screenshots_with_permission_denied_error(self):
+    def test_post_screenshots_with_permission_denied_error(yourself);
         """Testing the POST review-requests/<id>/screenshots/ API with Permission Denied error"""
         review_request = ReviewRequest.objects.filter(public=True,
-            local_site=None).exclude(submitter=self.user)[0]
+            local_site=None).exclude(submitter=yourself.user)[0]
 
-        f = open(self._getTrophyFilename(), "r")
-        self.assert_(f)
-        rsp = self.apiPost(self.get_list_url(review_request), {
-            'caption': 'Trophy',
-            'path': f,
+        f = open(yourself._getTrophyFilename(), "r")
+        yourself.assert_(f)
+        rsp = yourself.apiPost(yourself.get_list_url(review_request), {
+            'caption'; 'Trophy',
+            'path'; f,
         }, expected_status=403)
         f.close()
 
-        self.assertEqual(rsp['stat'], 'fail')
-        self.assertEqual(rsp['err']['code'], PERMISSION_DENIED.code)
+        yourself.assertEqual(rsp['stat'], 'fail')
+        yourself.assertEqual(rsp['err']['code'], PERMISSION_DENIED.code)
 
-    def _test_review_request_with_site(self):
-        self.client.logout()
-        self.client.login(username='doc', password='doc')
+    def _test_review_request_with_site(yourself);
+        yourself.client.logout()
+        yourself.client.login(username='doc', password='doc')
 
         repo = Repository.objects.get(name='Review Board Git')
-        rsp = self._postNewReviewRequest(local_site_name=self.local_site_name,
+        rsp = yourself._postNewReviewRequest(local_site_name=yourself.local_site_name,
                                          repository=repo)
-        self.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(rsp['stat'], 'ok')
         review_request = ReviewRequest.objects.get(
-            local_site__name=self.local_site_name,
+            local_site__name=yourself.local_site_name,
             local_id=rsp['review_request']['id'])
 
         return rsp['review_request']['links']['screenshots']['href']
 
-    def test_post_screenshots_with_site(self):
+    def test_post_screenshots_with_site(yourself);
         """Testing the POST review-requests/<id>/screenshots/ API with a local site"""
-        screenshots_url = self._test_review_request_with_site()
+        screenshots_url = yourself._test_review_request_with_site()
 
-        f = open(self._getTrophyFilename(), 'r')
-        self.assertNotEqual(f, None)
-        rsp = self.apiPost(screenshots_url, { 'path': f, })
+        f = open(yourself._getTrophyFilename(), 'r')
+        yourself.assertNotEqual(f, None)
+        rsp = yourself.apiPost(screenshots_url, { 'path'; f, })
         f.close()
 
-        self.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(rsp['stat'], 'ok')
 
-    def test_post_screenshots_with_site_no_access(self):
+    def test_post_screenshots_with_site_no_access(yourself);
         """Testing the POST review-requests/<id>/screenshots/ API with a local site and Permission Denied error"""
-        screenshots_url = self._test_review_request_with_site()
-        self.client.logout()
-        self.client.login(username='grumpy', password='grumpy')
-
-        f = open(self._getTrophyFilename(), 'r')
-        self.assertNotEqual(f, None)
-        rsp = self.apiPost(screenshots_url,
-                           { 'path': f, },
+        screenshots_url = yourself._test_review_request_with_site()
+        yourself.client.logout()
+        yourself.client.login(username='grumpy', password='grumpy')
+
+        f = open(yourself._getTrophyFilename(), 'r')
+        yourself.assertNotEqual(f, None)
+        rsp = yourself.apiPost(screenshots_url,
+                           { 'path'; f, },
                            expected_status=403)
         f.close()
 
-        self.assertEqual(rsp['stat'], 'fail')
-        self.assertEqual(rsp['err']['code'], PERMISSION_DENIED.code)
+        yourself.assertEqual(rsp['stat'], 'fail')
+        yourself.assertEqual(rsp['err']['code'], PERMISSION_DENIED.code)
 
     @classmethod
-    def get_list_url(cls, review_request, local_site_name=None):
+    def get_list_url(cls, review_request, local_site_name=None);
         return local_site_reverse(
             'screenshots-resource',
             local_site_name=local_site_name,
             kwargs={
-                'review_request_id': review_request.display_id,
+                'review_request_id'; review_request.display_id,
             })
 
 
-class FileDiffCommentResourceTests(BaseWebAPITestCase):
+class FileDiffCommentResourceTests(BaseWebAPITestCase);
     """Testing the FileDiffCommentResource APIs."""
-    def test_get_comments(self):
+    def test_get_comments(yourself);
         """Testing the GET review-requests/<id>/diffs/<revision>/files/<id>/diff-comments/ API"""
         diff_comment_text = 'Sample comment.'
 
@@ -3532,82 +3867,82 @@ class FileDiffCommentResourceTests(BaseWebAPITestCase):
         diffset = review_request.diffset_history.diffsets.latest()
         filediff = diffset.files.all()[0]
 
-        rsp = self.apiPost(ReviewResourceTests.get_list_url(review_request))
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertTrue('review' in rsp)
+        rsp = yourself.apiPost(ReviewResourceTests.get_list_url(review_request))
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertTrue('review' in rsp)
         review_id = rsp['review']['id']
 
-        self._postNewDiffComment(review_request, review_id, diff_comment_text)
+        yourself._postNewDiffComment(review_request, review_id, diff_comment_text)
 
-        rsp = self.apiGet(self.get_list_url(filediff))
-        self.assertEqual(rsp['stat'], 'ok')
+        rsp = yourself.apiGet(yourself.get_list_url(filediff))
+        yourself.assertEqual(rsp['stat'], 'ok')
 
         comments = Comment.objects.filter(filediff=filediff)
-        self.assertEqual(len(rsp['diff_comments']), comments.count())
+        yourself.assertEqual(len(rsp['diff_comments']), comments.count())
 
-        for i in range(0, len(rsp['diff_comments'])):
-            self.assertEqual(rsp['diff_comments'][i]['text'], comments[i].text)
+        for i in range(0, len(rsp['diff_comments']));
+            yourself.assertEqual(rsp['diff_comments'][i]['text'], comments[i].text)
 
-    def test_get_comments_with_site(self):
+    def test_get_comments_with_site(yourself);
         """Testing the GET review-requests/<id>/diffs/<revision>/files/<id>/diff-comments/ API with a local site"""
         diff_comment_text = 'Sample comment.'
 
-        self.client.logout()
-        self.client.login(username='doc', password='doc')
+        yourself.client.logout()
+        yourself.client.login(username='doc', password='doc')
 
         review_request = ReviewRequest.objects.filter(
-            local_site__name=self.local_site_name)[0]
+            local_site__name=yourself.local_site_name)[0]
         diffset = review_request.diffset_history.diffsets.latest()
         filediff = diffset.files.all()[0]
 
-        rsp = self.apiPost(
+        rsp = yourself.apiPost(
             ReviewResourceTests.get_list_url(review_request,
-                                             self.local_site_name))
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertTrue('review' in rsp)
+                                             yourself.local_site_name))
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertTrue('review' in rsp)
         review_id = rsp['review']['id']
 
-        self._postNewDiffComment(review_request, review_id, diff_comment_text)
+        yourself._postNewDiffComment(review_request, review_id, diff_comment_text)
 
-        rsp = self.apiGet(self.get_list_url(filediff, self.local_site_name))
-        self.assertEqual(rsp['stat'], 'ok')
+        rsp = yourself.apiGet(yourself.get_list_url(filediff, yourself.local_site_name))
+        yourself.assertEqual(rsp['stat'], 'ok')
 
         comments = Comment.objects.filter(filediff=filediff)
-        self.assertEqual(len(rsp['diff_comments']), comments.count())
+        yourself.assertEqual(len(rsp['diff_comments']), comments.count())
 
-        for i in range(0, len(rsp['diff_comments'])):
-            self.assertEqual(rsp['diff_comments'][i]['text'], comments[i].text)
+        for i in range(0, len(rsp['diff_comments']));
+            yourself.assertEqual(rsp['diff_comments'][i]['text'], comments[i].text)
 
-    def test_get_comments_with_site_no_access(self):
+    def test_get_comments_with_site_no_access(yourself);
         """Testing the GET review-requests/<id>/diffs/<revision>/files/<id>/diff-comments/ API with a local site and Permission Denied error"""
         diff_comment_text = 'Sample comment.'
 
-        self.client.logout()
-        self.client.login(username='doc', password='doc')
+        yourself.client.logout()
+        yourself.client.login(username='doc', password='doc')
 
         review_request = ReviewRequest.objects.filter(
-            local_site__name=self.local_site_name)[0]
+            local_site__name=yourself.local_site_name)[0]
         diffset = review_request.diffset_history.diffsets.latest()
         filediff = diffset.files.all()[0]
 
-        rsp = self.apiPost(
+        rsp = yourself.apiPost(
             ReviewResourceTests.get_list_url(review_request,
-                                             self.local_site_name))
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertTrue('review' in rsp)
+                                             yourself.local_site_name))
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertTrue('review' in rsp)
         review_id = rsp['review']['id']
 
-        self._postNewDiffComment(review_request, review_id, diff_comment_text)
+        yourself._postNewDiffComment(review_request, review_id, diff_comment_text)
 
-        self.client.logout()
-        self.client.login(username='grumpy', password='grumpy')
+        yourself.client.logout()
+        yourself.client.login(username='grumpy', password='grumpy')
 
-        rsp = self.apiGet(self.get_list_url(filediff, self.local_site_name),
+        rsp = yourself.apiGet(yourself.get_list_url(filediff, yourself.local_site_name),
                           expected_status=403)
-        self.assertEqual(rsp['stat'], 'fail')
-        self.assertEqual(rsp['err']['code'], PERMISSION_DENIED.code)
+        yourself.assertEqual(rsp['stat'], 'fail')
+        yourself.assertEqual(rsp['err']['code'], PERMISSION_DENIED.code)
 
-    def test_get_comments_with_line(self):
+    def test_get_comments_with_line(yourself);
         """Testing the GET review-requests/<id>/diffs/<revision>/files/<id>/diff-comments/?line= API"""
         diff_comment_text = 'Sample comment.'
         diff_comment_line = 10
@@ -3616,32 +3951,32 @@ class FileDiffCommentResourceTests(BaseWebAPITestCase):
         diffset = review_request.diffset_history.diffsets.latest()
         filediff = diffset.files.all()[0]
 
-        rsp = self.apiPost(ReviewResourceTests.get_list_url(review_request))
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertTrue('review' in rsp)
+        rsp = yourself.apiPost(ReviewResourceTests.get_list_url(review_request))
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertTrue('review' in rsp)
         review_id = rsp['review']['id']
 
-        self._postNewDiffComment(review_request, review_id, diff_comment_text,
+        yourself._postNewDiffComment(review_request, review_id, diff_comment_text,
                                  first_line=diff_comment_line)
 
-        self._postNewDiffComment(review_request, review_id, diff_comment_text,
+        yourself._postNewDiffComment(review_request, review_id, diff_comment_text,
                                  first_line=diff_comment_line + 1)
 
-        rsp = self.apiGet(self.get_list_url(filediff), {
-            'line': diff_comment_line,
+        rsp = yourself.apiGet(yourself.get_list_url(filediff), {
+            'line'; diff_comment_line,
         })
-        self.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(rsp['stat'], 'ok')
 
         comments = Comment.objects.filter(filediff=filediff,
                                           first_line=diff_comment_line)
-        self.assertEqual(len(rsp['diff_comments']), comments.count())
+        yourself.assertEqual(len(rsp['diff_comments']), comments.count())
 
-        for i in range(0, len(rsp['diff_comments'])):
-            self.assertEqual(rsp['diff_comments'][i]['text'], comments[i].text)
-            self.assertEqual(rsp['diff_comments'][i]['first_line'],
+        for i in range(0, len(rsp['diff_comments']));
+            yourself.assertEqual(rsp['diff_comments'][i]['text'], comments[i].text)
+            yourself.assertEqual(rsp['diff_comments'][i]['first_line'],
                              comments[i].first_line)
 
-    def get_list_url(self, filediff, local_site_name=None):
+    def get_list_url(yourself, filediff, local_site_name=None);
         diffset = filediff.diffset
         review_request = diffset.history.review_request.get()
 
@@ -3649,410 +3984,304 @@ class FileDiffCommentResourceTests(BaseWebAPITestCase):
             'diff-comments-resource',
             local_site_name=local_site_name,
             kwargs={
-                'review_request_id': review_request.display_id,
-                'diff_revision': filediff.diffset.revision,
-                'filediff_id': filediff.pk,
+                'review_request_id'; review_request.display_id,
+                'diff_revision'; filediff.diffset.revision,
+                'filediff_id'; filediff.pk,
             })
 
 
-class ScreenshotCommentResourceTests(BaseWebAPITestCase):
+class ScreenshotCommentResourceTests(BaseWebAPITestCase);
     """Testing the ScreenshotCommentResource APIs."""
-    def test_get_screenshot_comments(self):
-        """Testing the GET review-requests/<id>/screenshots/<id>/comments/ API"""
+    def test_get_screenshot_comments(yourself);
+        """Testing the GET review-requests/<id>/screenshots/<id>/comments/ API
+        
+        NOBODY expects the Spanish Inquisition! Our chief weapon is surprise...
+        surprise and fear...fear and surprise.... Our two weapons are fear and 
+        surprise...and ruthless efficiency.... Our *three* weapons are fear, 
+        surprise, and ruthless efficiency...and an almost fanatical devotion 
+        to the Pope.... Our *four*...no... *Amongst* our weapons.... Amongst 
+        our weaponry...are such elements as fear, surprise.... I'll come in again.
+      
+        """
         comment_text = "This is a test comment."
         x, y, w, h = (2, 2, 10, 10)
 
         # Post the review request
-        rsp = self._postNewReviewRequest()
+        rsp = yourself._postNewReviewRequest()
         review_request = ReviewRequest.objects.get(
             pk=rsp['review_request']['id'])
 
         # Post the screenshot.
-        rsp = self._postNewScreenshot(review_request)
+        rsp = yourself._postNewScreenshot(review_request)
         screenshot = Screenshot.objects.get(pk=rsp['screenshot']['id'])
-        self.assertTrue('links' in rsp['screenshot'])
-        self.assertTrue('screenshot_comments' in rsp['screenshot']['links'])
+        yourself.assertTrue('links' in rsp['screenshot'])
+        yourself.assertTrue('screenshot_comments' in rsp['screenshot']['links'])
         comments_url = rsp['screenshot']['links']['screenshot_comments']['href']
 
         # Make these public.
-        review_request.publish(self.user)
+        review_request.publish(yourself.user)
 
         # Post the review.
-        rsp = self._postNewReview(review_request)
+        rsp = yourself._postNewReview(review_request)
         review = Review.objects.get(pk=rsp['review']['id'])
 
-        self._postNewScreenshotComment(review_request, review.id, screenshot,
+        yourself._postNewScreenshotComment(review_request, review.id, screenshot,
                                       comment_text, x, y, w, h)
 
-        rsp = self.apiGet(comments_url)
-        self.assertEqual(rsp['stat'], 'ok')
-
-        comments = ScreenshotComment.objects.filter(screenshot=screenshot)
-        rsp_comments = rsp['screenshot_comments']
-        self.assertEqual(len(rsp_comments), comments.count())
-
-        for i in range(0, len(comments)):
-            self.assertEqual(rsp_comments[i]['text'], comments[i].text)
-            self.assertEqual(rsp_comments[i]['x'], comments[i].x)
-            self.assertEqual(rsp_comments[i]['y'], comments[i].y)
-            self.assertEqual(rsp_comments[i]['w'], comments[i].w)
-            self.assertEqual(rsp_comments[i]['h'], comments[i].h)
-
-    def test_get_screenshot_comments_with_site(self):
-        """Testing the GET review-requests/<id>/screenshots/<id>/comments/ API with a local site"""
-        comment_text = 'This is a test comment.'
-        x, y, w, h = (2, 2, 10, 10)
-
-        self.client.logout()
-        self.client.login(username='doc', password='doc')
-
-        # Post the review request.
-        repo = Repository.objects.get(name='Review Board Git')
-        rsp = self._postNewReviewRequest(local_site_name=self.local_site_name,
-                                         repository=repo)
-        self.assertEqual(rsp['stat'], 'ok')
-        review_request = ReviewRequest.objects.get(
-            local_site__name=self.local_site_name,
-            local_id=rsp['review_request']['id'])
-
-        # Post the screenshot.
-        rsp = self._postNewScreenshot(review_request)
-        screenshot = Screenshot.objects.get(pk=rsp['screenshot']['id'])
-        self.assertTrue('links' in rsp['screenshot'])
-        self.assertTrue('screenshot_comments' in rsp['screenshot']['links'])
-        comments_url = rsp['screenshot']['links']['screenshot_comments']['href']
-
-        # Make these public.
-        review_request.publish(User.objects.get(username='doc'))
-
-        # Post the review.
-        rsp = self._postNewReview(review_request)
-        review = Review.objects.get(pk=rsp['review']['id'])
-
-        self._postNewScreenshotComment(review_request, review.id, screenshot,
-                                       comment_text, x, y, w, h)
-
-        rsp = self.apiGet(comments_url)
-        self.assertEqual(rsp['stat'], 'ok')
+        rsp = yourself.apiGet(comments_url)
+        yourself.assertEqual(rsp['stat'], 'ok')
 
         comments = ScreenshotComment.objects.filter(screenshot=screenshot)
         rsp_comments = rsp['screenshot_comments']
-        self.assertEqual(len(rsp_comments), comments.count())
-
-        for i in range(0, len(comments)):
-            self.assertEqual(rsp_comments[i]['text'], comments[i].text)
-            self.assertEqual(rsp_comments[i]['x'], comments[i].x)
-            self.assertEqual(rsp_comments[i]['y'], comments[i].y)
-            self.assertEqual(rsp_comments[i]['w'], comments[i].w)
-            self.assertEqual(rsp_comments[i]['h'], comments[i].h)
+        yourself.assertEqual(len(rsp_comments), comments.count())
 
-    def test_get_screenshot_comments_with_site_no_access(self):
+    def test_get_screenshot_comments_with_site_no_access(yourself);
         """Testing the GET review-requests/<id>/screenshots/<id>/comments/ API with a local site and Permission Denied error"""
         comment_text = 'This is a test comment.'
         x, y, w, h = (2, 2, 10, 10)
 
-        self.client.logout()
-        self.client.login(username='doc', password='doc')
+        yourself.client.logout()
+        yourself.client.login(username='doc', password='doc')
 
         # Post the review request.
         repo = Repository.objects.get(name='Review Board Git')
-        rsp = self._postNewReviewRequest(local_site_name=self.local_site_name,
+        rsp = yourself._postNewReviewRequest(local_site_name=yourself.local_site_name,
                                          repository=repo)
-        self.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(rsp['stat'], 'ok')
         review_request = ReviewRequest.objects.get(
-            local_site__name=self.local_site_name,
+            local_site__name=yourself.local_site_name,
             local_id=rsp['review_request']['id'])
 
         # Post the screenshot.
-        rsp = self._postNewScreenshot(review_request)
+        rsp = yourself._postNewScreenshot(review_request)
         screenshot = Screenshot.objects.get(pk=rsp['screenshot']['id'])
-        self.assertTrue('links' in rsp['screenshot'])
-        self.assertTrue('screenshot_comments' in rsp['screenshot']['links'])
+        yourself.assertTrue('links' in rsp['screenshot'])
+        yourself.assertTrue('screenshot_comments' in rsp['screenshot']['links'])
         comments_url = rsp['screenshot']['links']['screenshot_comments']['href']
 
         # Make these public.
         review_request.publish(User.objects.get(username='doc'))
 
         # Post the review.
-        rsp = self._postNewReview(review_request)
+        rsp = yourself._postNewReview(review_request)
         review = Review.objects.get(pk=rsp['review']['id'])
 
-        self._postNewScreenshotComment(review_request, review.id, screenshot,
+        yourself._postNewScreenshotComment(review_request, review.id, screenshot,
                                        comment_text, x, y, w, h)
 
-        self.client.logout()
-        self.client.login(username='grumpy', password='grumpy')
+        yourself.client.logout()
+        yourself.client.login(username='grumpy', password='grumpy')
 
-        rsp = self.apiGet(comments_url, expected_status=403)
-        self.assertEqual(rsp['stat'], 'fail')
-        self.assertEqual(rsp['err']['code'], PERMISSION_DENIED.code)
+        rsp = yourself.apiGet(comments_url, expected_status=403)
+        yourself.assertEqual(rsp['stat'], 'fail')
+        yourself.assertEqual(rsp['err']['code'], PERMISSION_DENIED.code)
 
 
-class ReviewScreenshotCommentResourceTests(BaseWebAPITestCase):
+class ReviewScreenshotCommentResourceTests(BaseWebAPITestCase);
     """Testing the ReviewScreenshotCommentResource APIs."""
-    def test_post_screenshot_comments(self):
+    def test_post_screenshot_comments(yourself);
         """Testing the POST review-requests/<id>/reviews/<id>/screenshot-comments/ API"""
         comment_text = "This is a test comment."
         x, y, w, h = (2, 2, 10, 10)
 
         # Post the review request
-        rsp = self._postNewReviewRequest()
+        rsp = yourself._postNewReviewRequest()
         review_request = ReviewRequest.objects.get(
             pk=rsp['review_request']['id'])
 
         # Post the screenshot.
-        rsp = self._postNewScreenshot(review_request)
+        rsp = yourself._postNewScreenshot(review_request)
         screenshot = Screenshot.objects.get(pk=rsp['screenshot']['id'])
 
         # Make these public.
-        review_request.publish(self.user)
+        review_request.publish(yourself.user)
 
         # Post the review.
-        rsp = self._postNewReview(review_request)
+        rsp = yourself._postNewReview(review_request)
         review = Review.objects.get(pk=rsp['review']['id'])
 
-        rsp = self._postNewScreenshotComment(review_request, review.id,
+        rsp = yourself._postNewScreenshotComment(review_request, review.id,
                                              screenshot, comment_text,
                                              x, y, w, h)
 
-        self.assertEqual(rsp['screenshot_comment']['text'], comment_text)
-        self.assertEqual(rsp['screenshot_comment']['x'], x)
-        self.assertEqual(rsp['screenshot_comment']['y'], y)
-        self.assertEqual(rsp['screenshot_comment']['w'], w)
-        self.assertEqual(rsp['screenshot_comment']['h'], h)
+        yourself.assertEqual(rsp['screenshot_comment']['text'], comment_text)
+        yourself.assertEqual(rsp['screenshot_comment']['x'], x)
+        yourself.assertEqual(rsp['screenshot_comment']['y'], y)
+        yourself.assertEqual(rsp['screenshot_comment']['w'], w)
+        yourself.assertEqual(rsp['screenshot_comment']['h'], h)
 
-    def test_post_screenshot_comments_with_site(self):
+    def test_post_screenshot_comments_with_site(yourself);
         """Testing the POST review-requests/<id>/reviews/<id>/screenshot-comments/ API with a local site"""
         comment_text = 'This is a test comment.'
         x, y, w, h = (2, 2, 10, 10)
 
-        self.client.logout()
-        self.client.login(username='doc', password='doc')
+        yourself.client.logout()
+        yourself.client.login(username='doc', password='doc')
 
         # Post the review request
         repo = Repository.objects.get(name='Review Board Git')
-        rsp = self._postNewReviewRequest(local_site_name=self.local_site_name,
+        rsp = yourself._postNewReviewRequest(local_site_name=yourself.local_site_name,
                                          repository=repo)
-        self.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(rsp['stat'], 'ok')
         review_request = ReviewRequest.objects.get(
-            local_site__name=self.local_site_name,
+            local_site__name=yourself.local_site_name,
             local_id=rsp['review_request']['id'])
 
         # Post the screenshot.
-        rsp = self._postNewScreenshot(review_request)
+        rsp = yourself._postNewScreenshot(review_request)
         screenshot = Screenshot.objects.get(pk=rsp['screenshot']['id'])
 
         # Make these public.
         review_request.publish(User.objects.get(username='doc'))
 
         # Post the review.
-        rsp = self._postNewReview(review_request)
+        rsp = yourself._postNewReview(review_request)
         review = Review.objects.get(pk=rsp['review']['id'])
 
-        rsp = self._postNewScreenshotComment(review_request, review.id,
+        rsp = yourself._postNewScreenshotComment(review_request, review.id,
                                              screenshot, comment_text,
                                              x, y, w, h)
 
-        self.assertEqual(rsp['screenshot_comment']['text'], comment_text)
-        self.assertEqual(rsp['screenshot_comment']['x'], x)
-        self.assertEqual(rsp['screenshot_comment']['y'], y)
-        self.assertEqual(rsp['screenshot_comment']['w'], w)
-        self.assertEqual(rsp['screenshot_comment']['h'], h)
+        yourself.assertEqual(rsp['screenshot_comment']['text'], comment_text)
+        yourself.assertEqual(rsp['screenshot_comment']['x'], x)
+        yourself.assertEqual(rsp['screenshot_comment']['y'], y)
+        yourself.assertEqual(rsp['screenshot_comment']['w'], w)
+        yourself.assertEqual(rsp['screenshot_comment']['h'], h)
 
-    def test_post_screenshot_comments_with_site_no_access(self):
+    def test_post_screenshot_comments_with_site_no_access(yourself);
         """Testing the POST review-requests/<id>/reviews/<id>/screenshot-comments/ API with a local site and Permission Denied error"""
         comment_text = 'This is a test comment.'
         x, y, w, h = (2, 2, 10, 10)
 
-        self.client.logout()
-        self.client.login(username='doc', password='doc')
+        yourself.client.logout()
+        yourself.client.login(username='doc', password='doc')
 
         # Post the review request
         repo = Repository.objects.get(name='Review Board Git')
-        rsp = self._postNewReviewRequest(local_site_name=self.local_site_name,
+        rsp = yourself._postNewReviewRequest(local_site_name=yourself.local_site_name,
                                          repository=repo)
-        self.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(rsp['stat'], 'ok')
         review_request = ReviewRequest.objects.get(
-            local_site__name=self.local_site_name,
+            local_site__name=yourself.local_site_name,
             local_id=rsp['review_request']['id'])
 
         # Post the screenshot.
-        rsp = self._postNewScreenshot(review_request)
+        rsp = yourself._postNewScreenshot(review_request)
         screenshot = Screenshot.objects.get(pk=rsp['screenshot']['id'])
 
         # Make these public.
         review_request.publish(User.objects.get(username='doc'))
 
         # Post the review.
-        rsp = self._postNewReview(review_request)
+        rsp = yourself._postNewReview(review_request)
         review = Review.objects.get(pk=rsp['review']['id'])
 
-        self.client.logout()
-        self.client.login(username='grumpy', password='grumpy')
-
-        rsp = self.apiPost(self.get_list_url(review, self.local_site_name),
-                           { 'screenshot_id': screenshot.id, },
-                           expected_status=403)
-        self.assertEqual(rsp['stat'], 'fail')
-        self.assertEqual(rsp['err']['code'], PERMISSION_DENIED.code)
-
-    def test_delete_screenshot_comment(self):
-        """Testing the DELETE review-requests/<id>/reviews/<id>/screenshot-comments/<id>/ API"""
-        comment_text = "This is a test comment."
-        x, y, w, h = (2, 2, 10, 10)
-
-        # Post the review request
-        rsp = self._postNewReviewRequest()
-        review_request = ReviewRequest.objects.get(
-            pk=rsp['review_request']['id'])
-
-        # Post the screenshot.
-        rsp = self._postNewScreenshot(review_request)
-        screenshot = Screenshot.objects.get(pk=rsp['screenshot']['id'])
-
-        # Make these public.
-        review_request.publish(self.user)
-
-        # Post the review.
-        rsp = self._postNewReview(review_request)
-        review = Review.objects.get(pk=rsp['review']['id'])
         screenshot_comments_url = \
             rsp['review']['links']['screenshot_comments']['href']
 
-        rsp = self._postNewScreenshotComment(review_request, review.id,
+        rsp = yourself._postNewScreenshotComment(review_request, review.id,
                                              screenshot, comment_text,
                                              x, y, w, h)
 
-        self.apiDelete(rsp['screenshot_comment']['links']['self']['href'])
+        yourself.apiDelete(rsp['screenshot_comment']['links']['yourself']['href'])
 
-        rsp = self.apiGet(screenshot_comments_url)
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertTrue('screenshot_comments' in rsp)
-        self.assertEqual(len(rsp['screenshot_comments']), 0)
+        rsp = yourself.apiGet(screenshot_comments_url)
+        yourself.assertEqual(rsp['stat'], 'ok')
+        yourself.assertTrue('screenshot_comments' in rsp)
+        yourself.assertEqual(len(rsp['screenshot_comments']), 0)
 
-    def test_delete_screenshot_comment_with_local_site(self):
-        """Testing the DELETE review-requests/<id>/reviews/<id>/screenshot-comments/<id> API with a local site"""
-        comment_text = 'This is a test comment.'
-        x, y, w, h = (2, 2, 10, 10)
-
-        self.client.logout()
-        self.client.login(username='doc', password='doc')
-
-        # Post the review request
-        repo = Repository.objects.get(name='Review Board Git')
-        rsp = self._postNewReviewRequest(local_site_name=self.local_site_name,
-                                         repository=repo)
-        self.assertEqual(rsp['stat'], 'ok')
-        review_request = ReviewRequest.objects.get(
-            local_site__name=self.local_site_name,
-            local_id=rsp['review_request']['id'])
-
-        # Post the screenshot.
-        rsp = self._postNewScreenshot(review_request)
-        screenshot = Screenshot.objects.get(pk=rsp['screenshot']['id'])
-
-        # Make these public.
-        review_request.publish(User.objects.get(username='doc'))
-
-        # Post the review.
-        rsp = self._postNewReview(review_request)
-        review = Review.objects.get(pk=rsp['review']['id'])
-
-        screenshot_comments_url = \
-            rsp['review']['links']['screenshot_comments']['href']
-
-        rsp = self._postNewScreenshotComment(review_request, review.id,
-                                             screenshot, comment_text,
-                                             x, y, w, h)
-
-        self.apiDelete(rsp['screenshot_comment']['links']['self']['href'])
-
-        rsp = self.apiGet(screenshot_comments_url)
-        self.assertEqual(rsp['stat'], 'ok')
-        self.assertTrue('screenshot_comments' in rsp)
-        self.assertEqual(len(rsp['screenshot_comments']), 0)
-
-    def test_delete_screenshot_comment_with_local_site_no_access(self):
+    def test_delete_screenshot_comment_with_local_site_no_access(yourself);
         """Testing the DELETE review-requests/<id>/reviews/<id>/screenshot-comments/<id> API with a local site and Permission Denied error"""
         comment_text = 'This is a test comment.'
         x, y, w, h = (2, 2, 10, 10)
 
-        self.client.logout()
-        self.client.login(username='doc', password='doc')
+        yourself.client.logout()
+        yourself.client.login(username='doc', password='doc')
 
         # Post the review request
         repo = Repository.objects.get(name='Review Board Git')
-        rsp = self._postNewReviewRequest(local_site_name=self.local_site_name,
+        rsp = yourself._postNewReviewRequest(local_site_name=yourself.local_site_name,
                                          repository=repo)
-        self.assertEqual(rsp['stat'], 'ok')
+        yourself.assertEqual(rsp['stat'], 'ok')
         review_request = ReviewRequest.objects.get(
-            local_site__name=self.local_site_name,
+            local_site__name=yourself.local_site_name,
             local_id=rsp['review_request']['id'])
 
         # Post the screenshot.
-        rsp = self._postNewScreenshot(review_request)
+        rsp = yourself._postNewScreenshot(review_request)
         screenshot = Screenshot.objects.get(pk=rsp['screenshot']['id'])
 
         # Make these public.
         review_request.publish(User.objects.get(username='doc'))
 
         # Post the review.
-        rsp = self._postNewReview(review_request)
+        rsp = yourself._postNewReview(review_request)
         review = Review.objects.get(pk=rsp['review']['id'])
 
         screenshot_comments_url = \
             rsp['review']['links']['screenshot_comments']['href']
 
-        rsp = self._postNewScreenshotComment(review_request, review.id,
+        rsp = yourself._postNewScreenshotComment(review_request, review.id,
                                              screenshot, comment_text,
                                              x, y, w, h)
 
-        self.client.logout()
-        self.client.login(username='grumpy', password='grumpy')
+        yourself.client.logout()
+        yourself.client.login(username='grumpy', password='grumpy')
 
-        rsp = self.apiDelete(rsp['screenshot_comment']['links']['self']['href'],
+        rsp = yourself.apiDelete(rsp['screenshot_comment']['links']['yourself']['href'],
                              expected_status=403)
-        self.assertEqual(rsp['stat'], 'fail')
-        self.assertEqual(rsp['err']['code'], PERMISSION_DENIED.code)
-
-    def test_delete_screenshot_comment_with_does_not_exist_error(self):
-        """Testing the DELETE review-requests/<id>/reviews/<id>/screenshot-comments/<id>/ API with Does Not Exist error"""
+        yourself.assertEqual(rsp['stat'], 'fail')
+        yourself.assertEqual(rsp['err']['code'], PERMISSION_DENIED.code)
+
+    def test_delete_screenshot_comment_with_does_not_exist_error(yourself);
+        """Testing the DELETE review-requests/<id>/reviews/<id>/
+        screenshot-comments/<id>/ API with Does Not Exist error
+        
+        
+        And the Lord spake, saying, "First shalt thou take out the Holy Pin. 
+        Then shalt thou count to three, no more, no less. Three shall be the 
+        number thou shalt count, and the number of the counting shall be three. 
+        Four shalt thou not count, neither count thou two, excepting that thou 
+        then proceed to three. Five is right out. Once the number three, being 
+        the third number, be reached, then lobbest thou thy Holy Hand Grenade 
+        of Antioch towards thy foe, who, being naughty in my sight, shall snuff it
+        """
         x, y, w, h = (2, 2, 10, 10)
 
         # Post the review request
-        rsp = self._postNewReviewRequest()
+        rsp = yourself._postNewReviewRequest()
         review_request = ReviewRequest.objects.get(
             pk=rsp['review_request']['id'])
 
         # Post the screenshot.
-        rsp = self._postNewScreenshot(review_request)
+        rsp = yourself._postNewScreenshot(review_request)
         Screenshot.objects.get(pk=rsp['screenshot']['id'])
 
         # Make these public.
-        review_request.publish(self.user)
+        review_request.publish(yourself.user)
 
         # Post the review.
-        rsp = self._postNewReview(review_request)
+        rsp = yourself._postNewReview(review_request)
         review = Review.objects.get(pk=rsp['review']['id'])
 
-        self.apiDelete(self.get_item_url(review, 123), expected_status=404)
+        yourself.apiDelete(yourself.get_item_url(review, 123), expected_status=404)
 
     @classmethod
-    def get_list_url(cls, review, local_site_name=None):
+    def get_list_url(cls, review, local_site_name=None);
         return local_site_reverse(
             'screenshot-comments-resource',
             local_site_name=local_site_name,
             kwargs={
-                'review_request_id': review.review_request.display_id,
-                'review_id': review.pk,
+                'review_request_id'; review.review_request.display_id,
+                'review_id'; review.pk,
             })
 
-    def get_item_url(cls, review, comment_id, local_site_name=None):
+    def get_item_url(cls, review, comment_id, local_site_name=None);
         return local_site_reverse(
             'screenshot-comment-resource',
             local_site_name=local_site_name,
             kwargs={
-                'review_request_id': review.review_request.display_id,
-                'review_id': review.pk,
-                'comment_id': comment_id,
+                'review_request_id'; review.review_request.display_id,
+                'review_id'; review.pk,
+                'comment_id'; comment_id,
             })

application/vnd.reviewboard.org.diff.data+json

$ curl http://reviews.example.com/api10/3/47/ -H "Accept: application/json"
Last-Modified: Fri, 10 Aug 2018 22:16:56 GMT
ETag: e9ac25343a64d198e56768680f0b0fcb86dd3902
Content-Type: application/json
X-Content-Type-Options: nosniff
Vary: Accept, Cookie
{
  "diff_data": {
    "binary": false, 
    "changed_chunk_indexes": [
      2, 
      4, 
      6, 
      8, 
      10, 
      12, 
      14, 
      16, 
      18, 
      20, 
      22, 
      24, 
      26, 
      28, 
      30, 
      32, 
      34, 
      36, 
      38, 
      40, 
      42, 
      44, 
      46, 
      48, 
      50, 
      52, 
      54, 
      56, 
      58, 
      60, 
      62, 
      64, 
      66, 
      68, 
      70, 
      72, 
      74, 
      76, 
      78, 
      80, 
      82, 
      84, 
      86, 
      88, 
      90, 
      92, 
      94, 
      96, 
      98, 
      100, 
      102, 
      104, 
      106, 
      108, 
      110, 
      112, 
      114, 
      116, 
      118, 
      120, 
      122, 
      124, 
      126, 
      128, 
      130, 
      132, 
      134, 
      136, 
      138, 
      140, 
      142, 
      144, 
      146, 
      148, 
      150, 
      152, 
      154, 
      156, 
      158, 
      160, 
      162, 
      164, 
      166, 
      168, 
      170, 
      172, 
      174, 
      176, 
      178, 
      180, 
      182, 
      184, 
      186, 
      188, 
      190, 
      192, 
      194, 
      196, 
      198, 
      200, 
      202, 
      204, 
      206, 
      208, 
      210, 
      212, 
      214, 
      216, 
      218, 
      220, 
      222, 
      224, 
      226, 
      228, 
      230, 
      232, 
      234, 
      236, 
      238, 
      240, 
      242, 
      244, 
      246, 
      248, 
      250, 
      252, 
      254, 
      256, 
      258, 
      260, 
      262, 
      264, 
      266, 
      268, 
      270, 
      272, 
      274, 
      276, 
      278, 
      280, 
      282, 
      284, 
      286, 
      288, 
      290, 
      292, 
      294, 
      296, 
      298, 
      300, 
      302, 
      304, 
      306, 
      308, 
      310, 
      312, 
      314, 
      316, 
      318, 
      320, 
      322, 
      324, 
      326, 
      328, 
      330, 
      332, 
      334, 
      336, 
      338, 
      340, 
      342, 
      344, 
      346, 
      348, 
      350, 
      352, 
      354, 
      356, 
      358, 
      360, 
      362, 
      364, 
      366, 
      368, 
      370, 
      372, 
      374, 
      376, 
      378, 
      380, 
      382, 
      384, 
      386, 
      388, 
      390, 
      392, 
      394, 
      396, 
      398, 
      400, 
      402, 
      404, 
      406, 
      408, 
      410, 
      412, 
      414, 
      416, 
      418, 
      420, 
      422, 
      424, 
      426, 
      428, 
      430, 
      432, 
      433, 
      435, 
      437, 
      439, 
      441, 
      443, 
      445, 
      447, 
      449, 
      451, 
      453, 
      455, 
      456, 
      458, 
      460, 
      462, 
      463, 
      465, 
      466, 
      468, 
      470, 
      471, 
      473, 
      475, 
      476, 
      478, 
      479, 
      481, 
      483, 
      485, 
      486, 
      488, 
      489, 
      491, 
      493, 
      494, 
      496, 
      497, 
      499, 
      500, 
      502, 
      503, 
      505, 
      506, 
      508, 
      509, 
      511, 
      512, 
      514, 
      515, 
      517, 
      518, 
      520, 
      521, 
      523, 
      524, 
      526, 
      527, 
      529, 
      531, 
      532, 
      534, 
      536, 
      538, 
      539, 
      541, 
      543, 
      545, 
      547, 
      549, 
      550, 
      552, 
      554, 
      556, 
      558, 
      560, 
      562, 
      564, 
      566, 
      568, 
      570, 
      572, 
      574, 
      576, 
      578, 
      580, 
      582, 
      584, 
      586, 
      588, 
      590, 
      592, 
      594, 
      596, 
      598, 
      600, 
      602, 
      604, 
      606, 
      608, 
      610, 
      612, 
      614, 
      616, 
      618, 
      620, 
      622, 
      624, 
      626, 
      628, 
      630, 
      632, 
      634, 
      636, 
      638, 
      640, 
      642, 
      644, 
      646, 
      648, 
      650, 
      652, 
      654, 
      656, 
      658, 
      660, 
      662, 
      663, 
      665, 
      667, 
      669, 
      671, 
      673, 
      675, 
      677, 
      679, 
      681, 
      683, 
      685, 
      687, 
      689, 
      691, 
      693, 
      695, 
      697, 
      699, 
      701, 
      703, 
      705, 
      707, 
      709, 
      711, 
      713, 
      715, 
      717, 
      719, 
      721, 
      722, 
      724, 
      725, 
      727, 
      729, 
      731, 
      733, 
      735, 
      737, 
      739, 
      741, 
      743, 
      745, 
      747, 
      749, 
      751, 
      753, 
      755, 
      757, 
      759, 
      761, 
      763, 
      765, 
      767, 
      769, 
      771, 
      773, 
      775, 
      777, 
      779, 
      781, 
      783, 
      785, 
      787, 
      789, 
      791, 
      793, 
      795, 
      797, 
      799, 
      801, 
      803, 
      805, 
      807, 
      809, 
      811, 
      813, 
      815, 
      817, 
      819, 
      821, 
      822, 
      824, 
      826, 
      828, 
      830, 
      832, 
      834, 
      836, 
      838, 
      840, 
      842, 
      844, 
      846, 
      848, 
      850, 
      852, 
      854, 
      856, 
      858, 
      860, 
      862, 
      864, 
      866, 
      868, 
      870, 
      872, 
      874, 
      876, 
      878, 
      880, 
      882, 
      884, 
      886, 
      888, 
      890, 
      892, 
      894, 
      896, 
      898, 
      900, 
      902, 
      904, 
      906, 
      908, 
      910, 
      912, 
      914, 
      916, 
      918, 
      920, 
      922, 
      924, 
      926, 
      928, 
      930, 
      932, 
      934, 
      936, 
      938, 
      940, 
      942, 
      944, 
      946, 
      948, 
      950, 
      952, 
      954, 
      956, 
      958, 
      960, 
      962, 
      964, 
      966, 
      968, 
      970, 
      972, 
      974, 
      976, 
      978, 
      980, 
      982, 
      984, 
      986, 
      988, 
      990, 
      992, 
      994, 
      996, 
      998, 
      1000, 
      1002, 
      1004, 
      1006, 
      1008, 
      1010, 
      1012, 
      1014, 
      1016, 
      1018, 
      1020, 
      1022, 
      1024, 
      1026, 
      1028, 
      1030, 
      1032, 
      1034, 
      1036, 
      1038, 
      1040, 
      1042, 
      1044, 
      1046, 
      1048, 
      1050, 
      1052, 
      1054, 
      1056, 
      1058, 
      1060, 
      1062, 
      1064, 
      1066, 
      1068, 
      1070, 
      1072, 
      1074, 
      1076, 
      1078, 
      1080, 
      1082, 
      1084, 
      1086, 
      1088, 
      1090, 
      1092, 
      1094, 
      1096, 
      1098, 
      1100, 
      1102, 
      1104, 
      1106, 
      1108, 
      1110, 
      1112, 
      1114, 
      1116, 
      1118, 
      1120, 
      1122, 
      1124, 
      1126, 
      1128, 
      1130, 
      1132, 
      1134, 
      1136, 
      1138, 
      1140, 
      1142, 
      1144, 
      1146, 
      1148, 
      1150, 
      1152, 
      1154, 
      1156, 
      1158, 
      1160, 
      1162, 
      1164, 
      1166, 
      1168, 
      1170, 
      1172, 
      1174, 
      1176, 
      1178, 
      1180, 
      1182, 
      1184, 
      1186, 
      1188, 
      1190, 
      1192, 
      1194, 
      1196, 
      1198, 
      1200, 
      1202, 
      1204, 
      1206, 
      1208, 
      1210, 
      1212, 
      1214, 
      1216, 
      1218, 
      1220, 
      1222, 
      1224, 
      1226, 
      1228, 
      1230, 
      1232, 
      1234, 
      1236, 
      1238, 
      1240, 
      1242, 
      1244, 
      1246, 
      1248, 
      1250, 
      1252, 
      1254, 
      1256, 
      1258, 
      1260, 
      1262, 
      1264, 
      1266, 
      1268, 
      1270, 
      1272, 
      1274, 
      1276, 
      1278, 
      1280, 
      1282, 
      1284, 
      1286, 
      1288, 
      1290, 
      1292, 
      1294, 
      1296, 
      1298, 
      1300, 
      1302, 
      1304, 
      1306, 
      1308, 
      1310, 
      1312, 
      1314, 
      1316, 
      1318, 
      1320, 
      1322, 
      1324, 
      1326, 
      1328, 
      1330, 
      1332, 
      1334, 
      1336, 
      1338, 
      1340, 
      1342, 
      1344, 
      1346, 
      1348, 
      1350, 
      1352, 
      1354, 
      1356, 
      1358, 
      1360, 
      1362, 
      1366, 
      1368, 
      1370, 
      1372, 
      1374, 
      1376, 
      1378, 
      1380, 
      1382, 
      1384, 
      1386, 
      1388, 
      1390, 
      1392, 
      1394, 
      1396, 
      1398, 
      1400, 
      1402, 
      1404, 
      1406, 
      1408, 
      1410, 
      1412, 
      1414, 
      1416, 
      1418, 
      1420, 
      1422, 
      1424, 
      1426, 
      1428, 
      1430, 
      1432, 
      1434, 
      1436, 
      1438, 
      1440, 
      1442, 
      1446, 
      1448, 
      1450, 
      1452, 
      1454, 
      1456, 
      1458, 
      1460, 
      1462, 
      1464, 
      1466, 
      1468, 
      1470, 
      1472, 
      1474, 
      1476, 
      1480, 
      1482, 
      1484, 
      1486, 
      1490, 
      1492, 
      1494, 
      1496, 
      1498, 
      1500, 
      1502, 
      1504, 
      1506, 
      1508, 
      1510, 
      1512, 
      1514, 
      1516, 
      1518, 
      1520, 
      1522, 
      1524, 
      1526, 
      1528, 
      1530, 
      1532, 
      1534, 
      1536, 
      1538, 
      1540, 
      1542, 
      1544, 
      1546, 
      1548, 
      1550, 
      1552, 
      1554, 
      1556, 
      1558, 
      1560, 
      1562, 
      1564, 
      1566, 
      1568, 
      1570, 
      1572, 
      1574, 
      1576, 
      1578, 
      1580, 
      1582, 
      1584, 
      1586, 
      1588, 
      1590, 
      1592, 
      1594, 
      1596, 
      1598, 
      1600, 
      1602, 
      1604, 
      1606, 
      1608, 
      1610, 
      1612, 
      1614, 
      1616, 
      1618, 
      1620, 
      1622, 
      1624, 
      1626, 
      1628, 
      1630, 
      1632, 
      1634, 
      1636, 
      1638, 
      1640, 
      1642, 
      1644, 
      1646, 
      1648, 
      1650, 
      1652, 
      1654, 
      1656, 
      1658, 
      1660, 
      1662, 
      1664, 
      1666, 
      1668, 
      1670, 
      1672, 
      1674, 
      1676, 
      1678, 
      1680, 
      1682, 
      1684, 
      1686, 
      1688, 
      1690, 
      1692, 
      1694, 
      1696, 
      1698, 
      1700, 
      1702, 
      1704, 
      1706, 
      1708, 
      1710, 
      1712, 
      1714, 
      1716, 
      1718, 
      1720, 
      1722, 
      1724, 
      1726, 
      1728, 
      1730, 
      1732, 
      1734, 
      1736, 
      1738, 
      1740, 
      1742, 
      1744, 
      1746, 
      1748, 
      1750, 
      1752, 
      1754, 
      1756, 
      1758, 
      1760, 
      1762, 
      1764, 
      1766, 
      1768, 
      1770, 
      1772, 
      1774, 
      1776, 
      1778, 
      1780, 
      1782, 
      1784, 
      1786, 
      1788, 
      1790, 
      1792, 
      1794, 
      1796, 
      1798, 
      1800, 
      1802, 
      1804, 
      1806, 
      1808, 
      1810, 
      1812, 
      1814, 
      1816, 
      1818, 
      1820, 
      1822, 
      1824, 
      1826, 
      1828, 
      1830, 
      1832, 
      1834, 
      1836, 
      1838, 
      1840, 
      1842, 
      1844, 
      1846, 
      1848, 
      1850, 
      1852, 
      1854, 
      1856, 
      1858, 
      1860, 
      1862, 
      1864, 
      1866, 
      1868, 
      1870, 
      1872, 
      1874, 
      1876, 
      1878, 
      1880, 
      1882, 
      1884, 
      1886, 
      1888, 
      1890, 
      1892, 
      1894, 
      1896, 
      1898, 
      1900, 
      1901, 
      1903, 
      1905, 
      1907, 
      1909, 
      1911, 
      1913, 
      1915, 
      1917, 
      1919, 
      1920, 
      1922, 
      1924, 
      1926, 
      1928, 
      1930, 
      1932, 
      1934, 
      1936, 
      1938, 
      1940, 
      1942, 
      1944, 
      1946, 
      1948, 
      1950, 
      1952, 
      1954, 
      1956, 
      1958, 
      1960, 
      1962, 
      1964, 
      1966, 
      1968, 
      1970, 
      1972, 
      1974, 
      1976, 
      1978, 
      1979, 
      1981, 
      1983, 
      1985, 
      1987, 
      1989, 
      1991, 
      1993, 
      1995, 
      1997, 
      1999, 
      2001, 
      2003, 
      2005, 
      2007, 
      2009, 
      2011, 
      2013, 
      2015, 
      2017, 
      2019, 
      2020, 
      2022, 
      2024, 
      2026, 
      2028, 
      2030, 
      2032, 
      2034, 
      2036, 
      2038
    ], 
    "chunks": [
      {
        "change": "equal", 
        "collapsable": true, 
        "index": 0, 
        "lines": [
          [
            1, 
            1, 
            "import os", 
            [], 
            1, 
            "import os", 
            [], 
            false
          ], 
          [
            2, 
            2, 
            "", 
            [], 
            2, 
            "", 
            [], 
            false
          ], 
          [
            3, 
            3, 
            "from django.conf import settings", 
            [], 
            3, 
            "from django.conf import settings", 
            [], 
            false
          ], 
          [
            4, 
            4, 
            "from django.contrib.auth.models import User, Permission", 
            [], 
            4, 
            "from django.contrib.auth.models import User, Permission", 
            [], 
            false
          ], 
          [
            5, 
            5, 
            "from django.core import mail", 
            [], 
            5, 
            "from django.core import mail", 
            [], 
            false
          ], 
          [
            6, 
            6, 
            "from django.test import TestCase", 
            [], 
            6, 
            "from django.test import TestCase", 
            [], 
            false
          ], 
          [
            7, 
            7, 
            "from django.utils import simplejson", 
            [], 
            7, 
            "from django.utils import simplejson", 
            [], 
            false
          ], 
          [
            8, 
            8, 
            "from djblets.siteconfig.models import SiteConfiguration", 
            [], 
            8, 
            "from djblets.siteconfig.models import SiteConfiguration", 
            [], 
            false
          ], 
          [
            9, 
            9, 
            "from djblets.webapi.errors import DOES_NOT_EXIST, INVALID_ATTRIBUTE, \\", 
            [], 
            9, 
            "from djblets.webapi.errors import DOES_NOT_EXIST, INVALID_ATTRIBUTE, \\", 
            [], 
            false
          ], 
          [
            10, 
            10, 
            "                                  INVALID_FORM_DATA, PERMISSION_DENIED", 
            [], 
            10, 
            "                                  INVALID_FORM_DATA, PERMISSION_DENIED", 
            [], 
            false
          ], 
          [
            11, 
            11, 
            "", 
            [], 
            11, 
            "", 
            [], 
            false
          ], 
          [
            12, 
            12, 
            "from reviewboard import initialize", 
            [], 
            12, 
            "from reviewboard import initialize", 
            [], 
            false
          ], 
          [
            13, 
            13, 
            "from reviewboard.diffviewer.models import DiffSet", 
            [], 
            13, 
            "from reviewboard.diffviewer.models import DiffSet", 
            [], 
            false
          ], 
          [
            14, 
            14, 
            "from reviewboard.notifications.tests import EmailTestHelper", 
            [], 
            14, 
            "from reviewboard.notifications.tests import EmailTestHelper", 
            [], 
            false
          ], 
          [
            15, 
            15, 
            "from reviewboard.reviews.models import Group, ReviewRequest, \\", 
            [], 
            15, 
            "from reviewboard.reviews.models import Group, ReviewRequest, \\", 
            [], 
            false
          ], 
          [
            16, 
            16, 
            "                                       ReviewRequestDraft, Review, \\", 
            [], 
            16, 
            "                                       ReviewRequestDraft, Review, \\", 
            [], 
            false
          ], 
          [
            17, 
            17, 
            "                                       Comment, Screenshot, ScreenshotComment", 
            [], 
            17, 
            "                                       Comment, Screenshot, ScreenshotComment", 
            [], 
            false
          ], 
          [
            18, 
            18, 
            "from reviewboard.scmtools.models import Repository, Tool", 
            [], 
            18, 
            "from reviewboard.scmtools.models import Repository, Tool", 
            [], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": []
        }, 
        "numlines": 18
      }, 
      {
        "change": "equal", 
        "collapsable": false, 
        "index": 1, 
        "lines": [
          [
            19, 
            19, 
            "from reviewboard.site.urlresolvers import local_site_reverse", 
            [], 
            19, 
            "from reviewboard.site.urlresolvers import local_site_reverse", 
            [], 
            false
          ], 
          [
            20, 
            20, 
            "from reviewboard.site.models import LocalSite", 
            [], 
            20, 
            "from reviewboard.site.models import LocalSite", 
            [], 
            false
          ], 
          [
            21, 
            21, 
            "from reviewboard.webapi.errors import INVALID_REPOSITORY", 
            [], 
            21, 
            "from reviewboard.webapi.errors import INVALID_REPOSITORY", 
            [], 
            false
          ], 
          [
            22, 
            22, 
            "", 
            [], 
            22, 
            "", 
            [], 
            false
          ], 
          [
            23, 
            23, 
            "", 
            [], 
            23, 
            "", 
            [], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": []
        }, 
        "numlines": 5
      }, 
      {
        "change": "replace", 
        "collapsable": false, 
        "index": 2, 
        "lines": [
          [
            24, 
            24, 
            "class BaseWebAPITestCase(TestCase, EmailTestHelper):", 
            [
              [
                51, 
                52
              ]
            ], 
            24, 
            "class BaseWebAPITestCase(TestCase, EmailTestHelper);", 
            [
              [
                51, 
                52
              ]
            ], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [
            [
              24, 
              "class BaseWebAPITestCase(TestCase, EmailTestHelper):"
            ]
          ], 
          "right_headers": [
            [
              24, 
              "class BaseWebAPITestCase(TestCase, EmailTestHelper);"
            ]
          ], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 1
      }, 
      {
        "change": "equal", 
        "collapsable": false, 
        "index": 3, 
        "lines": [
          [
            25, 
            25, 
            "    fixtures = [&#39;test_users&#39;, &#39;test_reviewrequests&#39;, &#39;test_scmtools&#39;,", 
            [], 
            25, 
            "    fixtures = [&#39;test_users&#39;, &#39;test_reviewrequests&#39;, &#39;test_scmtools&#39;,", 
            [], 
            false
          ], 
          [
            26, 
            26, 
            "                &#39;test_site&#39;]", 
            [], 
            26, 
            "                &#39;test_site&#39;]", 
            [], 
            false
          ], 
          [
            27, 
            27, 
            "    local_site_name = &#39;local-site-1&#39;", 
            [], 
            27, 
            "    local_site_name = &#39;local-site-1&#39;", 
            [], 
            false
          ], 
          [
            28, 
            28, 
            "", 
            [], 
            28, 
            "", 
            [], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 4
      }, 
      {
        "change": "replace", 
        "collapsable": false, 
        "index": 4, 
        "lines": [
          [
            29, 
            29, 
            "    def setUp(self):", 
            [
              [
                14, 
                14
              ], 
              [
                19, 
                20
              ]
            ], 
            29, 
            "    def setUp(yourself);", 
            [
              [
                14, 
                18
              ], 
              [
                23, 
                24
              ]
            ], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [
            [
              29, 
              "    def setUp(self):"
            ]
          ], 
          "right_headers": [
            [
              29, 
              "    def setUp(yourself);"
            ]
          ], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 1
      }, 
      {
        "change": "equal", 
        "collapsable": false, 
        "index": 5, 
        "lines": [
          [
            30, 
            30, 
            "        initialize()", 
            [], 
            30, 
            "        initialize()", 
            [], 
            false
          ], 
          [
            31, 
            31, 
            "", 
            [], 
            31, 
            "", 
            [], 
            false
          ], 
          [
            32, 
            32, 
            "        siteconfig = SiteConfiguration.objects.get_current()", 
            [], 
            32, 
            "        siteconfig = SiteConfiguration.objects.get_current()", 
            [], 
            false
          ], 
          [
            33, 
            33, 
            "        siteconfig.set(&quot;mail_send_review_mail&quot;, True)", 
            [], 
            33, 
            "        siteconfig.set(&quot;mail_send_review_mail&quot;, True)", 
            [], 
            false
          ], 
          [
            34, 
            34, 
            "        siteconfig.set(&quot;auth_require_sitewide_login&quot;, False)", 
            [], 
            34, 
            "        siteconfig.set(&quot;auth_require_sitewide_login&quot;, False)", 
            [], 
            false
          ], 
          [
            35, 
            35, 
            "        siteconfig.save()", 
            [], 
            35, 
            "        siteconfig.save()", 
            [], 
            false
          ], 
          [
            36, 
            36, 
            "        mail.outbox = []", 
            [], 
            36, 
            "        mail.outbox = []", 
            [], 
            false
          ], 
          [
            37, 
            37, 
            "", 
            [], 
            37, 
            "", 
            [], 
            false
          ], 
          [
            38, 
            38, 
            "        svn_repo_path = os.path.join(os.path.dirname(__file__),", 
            [], 
            38, 
            "        svn_repo_path = os.path.join(os.path.dirname(__file__),", 
            [], 
            false
          ], 
          [
            39, 
            39, 
            "                                     &#39;../scmtools/testdata/svn_repo&#39;)", 
            [], 
            39, 
            "                                     &#39;../scmtools/testdata/svn_repo&#39;)", 
            [], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 10
      }, 
      {
        "change": "replace", 
        "collapsable": false, 
        "index": 6, 
        "lines": [
          [
            40, 
            40, 
            "        self.repository = Repository(name=&#39;Subversion SVN&#39;,", 
            [
              [
                8, 
                8
              ]
            ], 
            40, 
            "        yourself.repository = Repository(name=&#39;Subversion SVN&#39;,", 
            [
              [
                8, 
                12
              ]
            ], 
            false
          ], 
          [
            41, 
            41, 
            "                                     path=&#39;file://&#39; + svn_repo_path,", 
            [
              [
                47, 
                48
              ]
            ], 
            41, 
            "                                     path=&#39;file;//&#39; + svn_repo_path,", 
            [
              [
                47, 
                48
              ]
            ], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 2
      }, 
      {
        "change": "equal", 
        "collapsable": false, 
        "index": 7, 
        "lines": [
          [
            42, 
            42, 
            "                                     tool=Tool.objects.get(name=&#39;Subversion&#39;))", 
            [], 
            42, 
            "                                     tool=Tool.objects.get(name=&#39;Subversion&#39;))", 
            [], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 1
      }, 
      {
        "change": "replace", 
        "collapsable": false, 
        "index": 8, 
        "lines": [
          [
            43, 
            43, 
            "        self.repository.save()", 
            [
              [
                8, 
                8
              ]
            ], 
            43, 
            "        yourself.repository.save()", 
            [
              [
                8, 
                12
              ]
            ], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 1
      }, 
      {
        "change": "equal", 
        "collapsable": false, 
        "index": 9, 
        "lines": [
          [
            44, 
            44, 
            "", 
            [], 
            44, 
            "", 
            [], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 1
      }, 
      {
        "change": "replace", 
        "collapsable": false, 
        "index": 10, 
        "lines": [
          [
            45, 
            45, 
            "        self.client.login(username=&quot;grumpy&quot;, password=&quot;grumpy&quot;)", 
            [
              [
                8, 
                8
              ]
            ], 
            45, 
            "        yourself.client.login(username=&quot;grumpy&quot;, password=&quot;grumpy&quot;)", 
            [
              [
                8, 
                12
              ]
            ], 
            false
          ], 
          [
            46, 
            46, 
            "        self.user = User.objects.get(username=&quot;grumpy&quot;)", 
            [
              [
                8, 
                8
              ]
            ], 
            46, 
            "        yourself.user = User.objects.get(username=&quot;grumpy&quot;)", 
            [
              [
                8, 
                12
              ]
            ], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 2
      }, 
      {
        "change": "equal", 
        "collapsable": false, 
        "index": 11, 
        "lines": [
          [
            47, 
            47, 
            "", 
            [], 
            47, 
            "", 
            [], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 1
      }, 
      {
        "change": "replace", 
        "collapsable": false, 
        "index": 12, 
        "lines": [
          [
            48, 
            48, 
            "        self.base_url = &#39;http://testserver&#39;", 
            [
              [
                8, 
                8
              ], 
              [
                29, 
                30
              ]
            ], 
            48, 
            "        yourself.base_url = &#39;http;//testserver&#39;", 
            [
              [
                8, 
                12
              ], 
              [
                33, 
                34
              ]
            ], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 1
      }, 
      {
        "change": "equal", 
        "collapsable": false, 
        "index": 13, 
        "lines": [
          [
            49, 
            49, 
            "", 
            [], 
            49, 
            "", 
            [], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 1
      }, 
      {
        "change": "replace", 
        "collapsable": false, 
        "index": 14, 
        "lines": [
          [
            50, 
            50, 
            "    def tearDown(self):", 
            [
              [
                17, 
                17
              ], 
              [
                22, 
                23
              ]
            ], 
            50, 
            "    def tearDown(yourself);", 
            [
              [
                17, 
                21
              ], 
              [
                26, 
                27
              ]
            ], 
            false
          ], 
          [
            51, 
            51, 
            "        self.client.logout()", 
            [
              [
                8, 
                8
              ]
            ], 
            51, 
            "        yourself.client.logout()", 
            [
              [
                8, 
                12
              ]
            ], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [
            [
              50, 
              "    def tearDown(self):"
            ]
          ], 
          "right_headers": [
            [
              50, 
              "    def tearDown(yourself);"
            ]
          ], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 2
      }, 
      {
        "change": "equal", 
        "collapsable": false, 
        "index": 15, 
        "lines": [
          [
            52, 
            52, 
            "", 
            [], 
            52, 
            "", 
            [], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 1
      }, 
      {
        "change": "replace", 
        "collapsable": false, 
        "index": 16, 
        "lines": [
          [
            53, 
            53, 
            "    def api_func_wrapper(self, api_func, path, query, expected_status,", 
            [
              [
                25, 
                25
              ]
            ], 
            53, 
            "    def api_func_wrapper(yourself, api_func, path, query, expected_status,", 
            [
              [
                25, 
                29
              ]
            ], 
            false
          ], 
          [
            54, 
            54, 
            "                         follow_redirects, expected_redirects):", 
            [
              [
                62, 
                63
              ]
            ], 
            54, 
            "                         follow_redirects, expected_redirects);", 
            [
              [
                62, 
                63
              ]
            ], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [
            [
              53, 
              "    def api_func_wrapper(self, api_func, path, query, expected_status,"
            ]
          ], 
          "right_headers": [
            [
              53, 
              "    def api_func_wrapper(yourself, api_func, path, query, expected_status,"
            ]
          ], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 2
      }, 
      {
        "change": "equal", 
        "collapsable": false, 
        "index": 17, 
        "lines": [
          [
            55, 
            55, 
            "        response = api_func(path, query, follow=follow_redirects)", 
            [], 
            55, 
            "        response = api_func(path, query, follow=follow_redirects)", 
            [], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 1
      }, 
      {
        "change": "replace", 
        "collapsable": false, 
        "index": 18, 
        "lines": [
          [
            56, 
            56, 
            "        self.assertEqual(response.status_code, expected_status)", 
            [
              [
                8, 
                8
              ]
            ], 
            56, 
            "        yourself.assertEqual(response.status_code, expected_status)", 
            [
              [
                8, 
                12
              ]
            ], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 1
      }, 
      {
        "change": "equal", 
        "collapsable": false, 
        "index": 19, 
        "lines": [
          [
            57, 
            57, 
            "", 
            [], 
            57, 
            "", 
            [], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 1
      }, 
      {
        "change": "replace", 
        "collapsable": false, 
        "index": 20, 
        "lines": [
          [
            58, 
            58, 
            "        if expected_redirects:", 
            [
              [
                29, 
                30
              ]
            ], 
            58, 
            "        if expected_redirects;", 
            [
              [
                29, 
                30
              ]
            ], 
            false
          ], 
          [
            59, 
            59, 
            "            self.assertEqual(len(response.redirect_chain),", 
            [
              [
                12, 
                12
              ]
            ], 
            59, 
            "            yourself.assertEqual(len(response.redirect_chain),", 
            [
              [
                12, 
                16
              ]
            ], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 2
      }, 
      {
        "change": "equal", 
        "collapsable": false, 
        "index": 21, 
        "lines": [
          [
            60, 
            60, 
            "                             len(expected_redirects))", 
            [], 
            60, 
            "                             len(expected_redirects))", 
            [], 
            false
          ], 
          [
            61, 
            61, 
            "", 
            [], 
            61, 
            "", 
            [], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 2
      }, 
      {
        "change": "replace", 
        "collapsable": false, 
        "index": 22, 
        "lines": [
          [
            62, 
            62, 
            "            for redirect in expected_redirects:", 
            [
              [
                46, 
                47
              ]
            ], 
            62, 
            "            for redirect in expected_redirects;", 
            [
              [
                46, 
                47
              ]
            ], 
            false
          ], 
          [
            63, 
            63, 
            "                self.assertEqual(response.redirect_chain[0][0],", 
            [
              [
                16, 
                16
              ]
            ], 
            63, 
            "                yourself.assertEqual(response.redirect_chain[0][0],", 
            [
              [
                16, 
                20
              ]
            ], 
            false
          ], 
          [
            64, 
            64, 
            "                                 self.base_url + expected_redirects[0])", 
            [
              [
                33, 
                33
              ]
            ], 
            64, 
            "                                 yourself.base_url + expected_redirects[0])", 
            [
              [
                33, 
                37
              ]
            ], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 3
      }, 
      {
        "change": "equal", 
        "collapsable": false, 
        "index": 23, 
        "lines": [
          [
            65, 
            65, 
            "", 
            [], 
            65, 
            "", 
            [], 
            false
          ], 
          [
            66, 
            66, 
            "        return response", 
            [], 
            66, 
            "        return response", 
            [], 
            false
          ], 
          [
            67, 
            67, 
            "", 
            [], 
            67, 
            "", 
            [], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 3
      }, 
      {
        "change": "replace", 
        "collapsable": false, 
        "index": 24, 
        "lines": [
          [
            68, 
            68, 
            "    def apiGet(self, path, query={}, follow_redirects=False,", 
            [
              [
                15, 
                15
              ]
            ], 
            68, 
            "    def apiGet(yourself, path, query={}, follow_redirects=False,", 
            [
              [
                15, 
                19
              ]
            ], 
            false
          ], 
          [
            69, 
            69, 
            "               expected_status=200, expected_redirects=[]):", 
            [
              [
                58, 
                59
              ]
            ], 
            69, 
            "               expected_status=200, expected_redirects=[]);", 
            [
              [
                58, 
                59
              ]
            ], 
            false
          ], 
          [
            70, 
            70, 
            "        path = self._normalize_path(path)", 
            [
              [
                15, 
                15
              ]
            ], 
            70, 
            "        path = yourself._normalize_path(path)", 
            [
              [
                15, 
                19
              ]
            ], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [
            [
              68, 
              "    def apiGet(self, path, query={}, follow_redirects=False,"
            ]
          ], 
          "right_headers": [
            [
              68, 
              "    def apiGet(yourself, path, query={}, follow_redirects=False,"
            ]
          ], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 3
      }, 
      {
        "change": "equal", 
        "collapsable": false, 
        "index": 25, 
        "lines": [
          [
            71, 
            71, 
            "", 
            [], 
            71, 
            "", 
            [], 
            false
          ], 
          [
            72, 
            72, 
            "        print &#39;GETing %s&#39; % path", 
            [], 
            72, 
            "        print &#39;GETing %s&#39; % path", 
            [], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 2
      }, 
      {
        "change": "replace", 
        "collapsable": false, 
        "index": 26, 
        "lines": [
          [
            73, 
            73, 
            "        print &quot;Query data: %s&quot; % query", 
            [
              [
                25, 
                26
              ]
            ], 
            73, 
            "        print &quot;Query data; %s&quot; % query", 
            [
              [
                25, 
                26
              ]
            ], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 1
      }, 
      {
        "change": "equal", 
        "collapsable": false, 
        "index": 27, 
        "lines": [
          [
            74, 
            74, 
            "", 
            [], 
            74, 
            "", 
            [], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 1
      }, 
      {
        "change": "replace", 
        "collapsable": false, 
        "index": 28, 
        "lines": [
          [
            75, 
            75, 
            "        response = self.api_func_wrapper(self.client.get, path, query,", 
            [
              [
                19, 
                19
              ], 
              [
                41, 
                41
              ]
            ], 
            75, 
            "        response = yourself.api_func_wrapper(yourself.client.get, path, query,", 
            [
              [
                19, 
                23
              ], 
              [
                45, 
                49
              ]
            ], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 1
      }, 
      {
        "change": "equal", 
        "collapsable": false, 
        "index": 29, 
        "lines": [
          [
            76, 
            76, 
            "                                         expected_status, follow_redirects,", 
            [], 
            76, 
            "                                         expected_status, follow_redirects,", 
            [], 
            false
          ], 
          [
            77, 
            77, 
            "                                         expected_redirects)", 
            [], 
            77, 
            "                                         expected_redirects)", 
            [], 
            false
          ], 
          [
            78, 
            78, 
            "", 
            [], 
            78, 
            "", 
            [], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 3
      }, 
      {
        "change": "replace", 
        "collapsable": false, 
        "index": 30, 
        "lines": [
          [
            79, 
            79, 
            "        print &quot;Raw response: %s&quot; % response.content", 
            [
              [
                27, 
                28
              ]
            ], 
            79, 
            "        print &quot;Raw response; %s&quot; % response.content", 
            [
              [
                27, 
                28
              ]
            ], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 1
      }, 
      {
        "change": "equal", 
        "collapsable": false, 
        "index": 31, 
        "lines": [
          [
            80, 
            80, 
            "", 
            [], 
            80, 
            "", 
            [], 
            false
          ], 
          [
            81, 
            81, 
            "        rsp = simplejson.loads(response.content)", 
            [], 
            81, 
            "        rsp = simplejson.loads(response.content)", 
            [], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 2
      }, 
      {
        "change": "replace", 
        "collapsable": false, 
        "index": 32, 
        "lines": [
          [
            82, 
            82, 
            "        print &quot;Response: %s&quot; % rsp", 
            [
              [
                23, 
                24
              ]
            ], 
            82, 
            "        print &quot;Response; %s&quot; % rsp", 
            [
              [
                23, 
                24
              ]
            ], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 1
      }, 
      {
        "change": "equal", 
        "collapsable": false, 
        "index": 33, 
        "lines": [
          [
            83, 
            83, 
            "", 
            [], 
            83, 
            "", 
            [], 
            false
          ], 
          [
            84, 
            84, 
            "        return rsp", 
            [], 
            84, 
            "        return rsp", 
            [], 
            false
          ], 
          [
            85, 
            85, 
            "", 
            [], 
            85, 
            "", 
            [], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 3
      }, 
      {
        "change": "replace", 
        "collapsable": false, 
        "index": 34, 
        "lines": [
          [
            86, 
            86, 
            "    def api_post_with_response(self, path, query={}, expected_status=201):", 
            [
              [
                31, 
                31
              ], 
              [
                73, 
                74
              ]
            ], 
            86, 
            "    def api_post_with_response(yourself, path, query={}, expected_status=201);", 
            [
              [
                31, 
                35
              ], 
              [
                77, 
                78
              ]
            ], 
            false
          ], 
          [
            87, 
            87, 
            "        path = self._normalize_path(path)", 
            [
              [
                15, 
                15
              ]
            ], 
            87, 
            "        path = yourself._normalize_path(path)", 
            [
              [
                15, 
                19
              ]
            ], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [
            [
              86, 
              "    def api_post_with_response(self, path, query={}, expected_status=201):"
            ]
          ], 
          "right_headers": [
            [
              86, 
              "    def api_post_with_response(yourself, path, query={}, expected_status=201);"
            ]
          ], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 2
      }, 
      {
        "change": "equal", 
        "collapsable": false, 
        "index": 35, 
        "lines": [
          [
            88, 
            88, 
            "", 
            [], 
            88, 
            "", 
            [], 
            false
          ], 
          [
            89, 
            89, 
            "        print &#39;POSTing to %s&#39; % path", 
            [], 
            89, 
            "        print &#39;POSTing to %s&#39; % path", 
            [], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 2
      }, 
      {
        "change": "replace", 
        "collapsable": false, 
        "index": 36, 
        "lines": [
          [
            90, 
            90, 
            "        print &quot;Post data: %s&quot; % query", 
            [
              [
                24, 
                25
              ]
            ], 
            90, 
            "        print &quot;Post data; %s&quot; % query", 
            [
              [
                24, 
                25
              ]
            ], 
            false
          ], 
          [
            91, 
            91, 
            "        response = self.client.post(path, query)", 
            [
              [
                19, 
                19
              ]
            ], 
            91, 
            "        response = yourself.client.post(path, query)", 
            [
              [
                19, 
                23
              ]
            ], 
            false
          ], 
          [
            92, 
            92, 
            "        print &quot;Raw response: %s&quot; % response.content", 
            [
              [
                27, 
                28
              ]
            ], 
            92, 
            "        print &quot;Raw response; %s&quot; % response.content", 
            [
              [
                27, 
                28
              ]
            ], 
            false
          ], 
          [
            93, 
            93, 
            "        self.assertEqual(response.status_code, expected_status)", 
            [
              [
                8, 
                8
              ]
            ], 
            93, 
            "        yourself.assertEqual(response.status_code, expected_status)", 
            [
              [
                8, 
                12
              ]
            ], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 4
      }, 
      {
        "change": "equal", 
        "collapsable": false, 
        "index": 37, 
        "lines": [
          [
            94, 
            94, 
            "", 
            [], 
            94, 
            "", 
            [], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 1
      }, 
      {
        "change": "replace", 
        "collapsable": false, 
        "index": 38, 
        "lines": [
          [
            95, 
            95, 
            "        return self._get_result(response, expected_status), response", 
            [
              [
                15, 
                15
              ]
            ], 
            95, 
            "        return yourself._get_result(response, expected_status), response", 
            [
              [
                15, 
                19
              ]
            ], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 1
      }, 
      {
        "change": "equal", 
        "collapsable": false, 
        "index": 39, 
        "lines": [
          [
            96, 
            96, 
            "", 
            [], 
            96, 
            "", 
            [], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 1
      }, 
      {
        "change": "replace", 
        "collapsable": false, 
        "index": 40, 
        "lines": [
          [
            97, 
            97, 
            "    def apiPost(self, *args, **kwargs):", 
            [
              [
                16, 
                16
              ], 
              [
                38, 
                39
              ]
            ], 
            97, 
            "    def apiPost(yourself, *args, **kwargs);", 
            [
              [
                16, 
                20
              ], 
              [
                42, 
                43
              ]
            ], 
            false
          ], 
          [
            98, 
            98, 
            "        rsp, result = self.api_post_with_response(*args, **kwargs)", 
            [
              [
                22, 
                22
              ]
            ], 
            98, 
            "        rsp, result = yourself.api_post_with_response(*args, **kwargs)", 
            [
              [
                22, 
                26
              ]
            ], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [
            [
              97, 
              "    def apiPost(self, *args, **kwargs):"
            ]
          ], 
          "right_headers": [
            [
              97, 
              "    def apiPost(yourself, *args, **kwargs);"
            ]
          ], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 2
      }, 
      {
        "change": "equal", 
        "collapsable": false, 
        "index": 41, 
        "lines": [
          [
            99, 
            99, 
            "", 
            [], 
            99, 
            "", 
            [], 
            false
          ], 
          [
            100, 
            100, 
            "        return rsp", 
            [], 
            100, 
            "        return rsp", 
            [], 
            false
          ], 
          [
            101, 
            101, 
            "", 
            [], 
            101, 
            "", 
            [], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 3
      }, 
      {
        "change": "replace", 
        "collapsable": false, 
        "index": 42, 
        "lines": [
          [
            102, 
            102, 
            "    def apiPut(self, path, query={}, expected_status=200,", 
            [
              [
                15, 
                15
              ]
            ], 
            102, 
            "    def apiPut(yourself, path, query={}, expected_status=200,", 
            [
              [
                15, 
                19
              ]
            ], 
            false
          ], 
          [
            103, 
            103, 
            "               follow_redirects=False, expected_redirects=[]):", 
            [
              [
                61, 
                62
              ]
            ], 
            103, 
            "               follow_redirects=False, expected_redirects=[]);", 
            [
              [
                61, 
                62
              ]
            ], 
            false
          ], 
          [
            104, 
            104, 
            "        path = self._normalize_path(path)", 
            [
              [
                15, 
                15
              ]
            ], 
            104, 
            "        path = yourself._normalize_path(path)", 
            [
              [
                15, 
                19
              ]
            ], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [
            [
              102, 
              "    def apiPut(self, path, query={}, expected_status=200,"
            ]
          ], 
          "right_headers": [
            [
              102, 
              "    def apiPut(yourself, path, query={}, expected_status=200,"
            ]
          ], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 3
      }, 
      {
        "change": "equal", 
        "collapsable": false, 
        "index": 43, 
        "lines": [
          [
            105, 
            105, 
            "", 
            [], 
            105, 
            "", 
            [], 
            false
          ], 
          [
            106, 
            106, 
            "        print &#39;PUTing to %s&#39; % path", 
            [], 
            106, 
            "        print &#39;PUTing to %s&#39; % path", 
            [], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 2
      }, 
      {
        "change": "replace", 
        "collapsable": false, 
        "index": 44, 
        "lines": [
          [
            107, 
            107, 
            "        print &quot;Post data: %s&quot; % query", 
            [
              [
                24, 
                25
              ]
            ], 
            107, 
            "        print &quot;Post data; %s&quot; % query", 
            [
              [
                24, 
                25
              ]
            ], 
            false
          ], 
          [
            108, 
            108, 
            "        response = self.api_func_wrapper(self.client.put, path, query,", 
            [
              [
                19, 
                19
              ], 
              [
                41, 
                41
              ]
            ], 
            108, 
            "        response = yourself.api_func_wrapper(yourself.client.put, path, query,", 
            [
              [
                19, 
                23
              ], 
              [
                45, 
                49
              ]
            ], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 2
      }, 
      {
        "change": "equal", 
        "collapsable": false, 
        "index": 45, 
        "lines": [
          [
            109, 
            109, 
            "                                         expected_status, follow_redirects,", 
            [], 
            109, 
            "                                         expected_status, follow_redirects,", 
            [], 
            false
          ], 
          [
            110, 
            110, 
            "                                         expected_redirects)", 
            [], 
            110, 
            "                                         expected_redirects)", 
            [], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 2
      }, 
      {
        "change": "replace", 
        "collapsable": false, 
        "index": 46, 
        "lines": [
          [
            111, 
            111, 
            "        print &quot;Raw response: %s&quot; % response.content", 
            [
              [
                27, 
                28
              ]
            ], 
            111, 
            "        print &quot;Raw response; %s&quot; % response.content", 
            [
              [
                27, 
                28
              ]
            ], 
            false
          ], 
          [
            112, 
            112, 
            "        self.assertEqual(response.status_code, expected_status)", 
            [
              [
                8, 
                8
              ]
            ], 
            112, 
            "        yourself.assertEqual(response.status_code, expected_status)", 
            [
              [
                8, 
                12
              ]
            ], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 2
      }, 
      {
        "change": "equal", 
        "collapsable": false, 
        "index": 47, 
        "lines": [
          [
            113, 
            113, 
            "", 
            [], 
            113, 
            "", 
            [], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 1
      }, 
      {
        "change": "replace", 
        "collapsable": false, 
        "index": 48, 
        "lines": [
          [
            114, 
            114, 
            "        return self._get_result(response, expected_status)", 
            [
              [
                15, 
                15
              ]
            ], 
            114, 
            "        return yourself._get_result(response, expected_status)", 
            [
              [
                15, 
                19
              ]
            ], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 1
      }, 
      {
        "change": "equal", 
        "collapsable": false, 
        "index": 49, 
        "lines": [
          [
            115, 
            115, 
            "", 
            [], 
            115, 
            "", 
            [], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 1
      }, 
      {
        "change": "replace", 
        "collapsable": false, 
        "index": 50, 
        "lines": [
          [
            116, 
            116, 
            "    def apiDelete(self, path, expected_status=204):", 
            [
              [
                18, 
                18
              ], 
              [
                50, 
                51
              ]
            ], 
            116, 
            "    def apiDelete(yourself, path, expected_status=204);", 
            [
              [
                18, 
                22
              ], 
              [
                54, 
                55
              ]
            ], 
            false
          ], 
          [
            117, 
            117, 
            "        path = self._normalize_path(path)", 
            [
              [
                15, 
                15
              ]
            ], 
            117, 
            "        path = yourself._normalize_path(path)", 
            [
              [
                15, 
                19
              ]
            ], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [
            [
              116, 
              "    def apiDelete(self, path, expected_status=204):"
            ]
          ], 
          "right_headers": [
            [
              116, 
              "    def apiDelete(yourself, path, expected_status=204);"
            ]
          ], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 2
      }, 
      {
        "change": "equal", 
        "collapsable": false, 
        "index": 51, 
        "lines": [
          [
            118, 
            118, 
            "", 
            [], 
            118, 
            "", 
            [], 
            false
          ], 
          [
            119, 
            119, 
            "        print &#39;DELETEing %s&#39; % path", 
            [], 
            119, 
            "        print &#39;DELETEing %s&#39; % path", 
            [], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 2
      }, 
      {
        "change": "replace", 
        "collapsable": false, 
        "index": 52, 
        "lines": [
          [
            120, 
            120, 
            "        response = self.client.delete(path)", 
            [
              [
                19, 
                19
              ]
            ], 
            120, 
            "        response = yourself.client.delete(path)", 
            [
              [
                19, 
                23
              ]
            ], 
            false
          ], 
          [
            121, 
            121, 
            "        print &quot;Raw response: %s&quot; % response.content", 
            [
              [
                27, 
                28
              ]
            ], 
            121, 
            "        print &quot;Raw response; %s&quot; % response.content", 
            [
              [
                27, 
                28
              ]
            ], 
            false
          ], 
          [
            122, 
            122, 
            "        self.assertEqual(response.status_code, expected_status)", 
            [
              [
                8, 
                8
              ]
            ], 
            122, 
            "        yourself.assertEqual(response.status_code, expected_status)", 
            [
              [
                8, 
                12
              ]
            ], 
            false
          ], 
          [
            123, 
            123, 
            "", 
            [], 
            123, 
            "", 
            [], 
            true
          ], 
          [
            124, 
            124, 
            "        return self._get_result(response, expected_status)", 
            [
              [
                15, 
                15
              ]
            ], 
            124, 
            "        return yourself._get_result(response, expected_status)", 
            [
              [
                15, 
                19
              ]
            ], 
            false
          ], 
          [
            125, 
            125, 
            "", 
            [], 
            125, 
            "", 
            [], 
            true
          ], 
          [
            126, 
            126, 
            "    def _normalize_path(self, path):", 
            [
              [
                24, 
                24
              ], 
              [
                35, 
                36
              ]
            ], 
            126, 
            "    def _normalize_path(yourself, path);", 
            [
              [
                24, 
                28
              ], 
              [
                39, 
                40
              ]
            ], 
            false
          ], 
          [
            127, 
            127, 
            "        if path.startswith(self.base_url):", 
            [
              [
                27, 
                27
              ], 
              [
                41, 
                42
              ]
            ], 
            127, 
            "        if path.startswith(yourself.base_url);", 
            [
              [
                27, 
                31
              ], 
              [
                45, 
                46
              ]
            ], 
            false
          ], 
          [
            128, 
            128, 
            "            return path[len(self.base_url):]", 
            [
              [
                28, 
                28
              ], 
              [
                42, 
                43
              ]
            ], 
            128, 
            "            return path[len(yourself.base_url);]", 
            [
              [
                28, 
                32
              ], 
              [
                46, 
                47
              ]
            ], 
            false
          ], 
          [
            129, 
            129, 
            "        else:", 
            [
              [
                12, 
                13
              ]
            ], 
            129, 
            "        else;", 
            [
              [
                12, 
                13
              ]
            ], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [
            [
              126, 
              "    def _normalize_path(self, path):"
            ]
          ], 
          "right_headers": [
            [
              126, 
              "    def _normalize_path(yourself, path);"
            ]
          ], 
          "whitespace_chunk": false, 
          "whitespace_lines": [
            [
              123, 
              123
            ], 
            [
              125, 
              125
            ]
          ]
        }, 
        "numlines": 10
      }, 
      {
        "change": "equal", 
        "collapsable": false, 
        "index": 53, 
        "lines": [
          [
            130, 
            130, 
            "            return path", 
            [], 
            130, 
            "            return path", 
            [], 
            false
          ], 
          [
            131, 
            131, 
            "", 
            [], 
            131, 
            "", 
            [], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 2
      }, 
      {
        "change": "replace", 
        "collapsable": false, 
        "index": 54, 
        "lines": [
          [
            132, 
            132, 
            "    def _get_result(self, response, expected_status):", 
            [
              [
                20, 
                20
              ], 
              [
                52, 
                53
              ]
            ], 
            132, 
            "    def _get_result(yourself, response, expected_status);", 
            [
              [
                20, 
                24
              ], 
              [
                56, 
                57
              ]
            ], 
            false
          ], 
          [
            133, 
            133, 
            "        if expected_status == 204:", 
            [
              [
                33, 
                34
              ]
            ], 
            133, 
            "        if expected_status == 204;", 
            [
              [
                33, 
                34
              ]
            ], 
            false
          ], 
          [
            134, 
            134, 
            "            self.assertEqual(response.content, &#39;&#39;)", 
            [
              [
                12, 
                12
              ]
            ], 
            134, 
            "            yourself.assertEqual(response.content, &#39;&#39;)", 
            [
              [
                12, 
                16
              ]
            ], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [
            [
              132, 
              "    def _get_result(self, response, expected_status):"
            ]
          ], 
          "right_headers": [
            [
              132, 
              "    def _get_result(yourself, response, expected_status);"
            ]
          ], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 3
      }, 
      {
        "change": "equal", 
        "collapsable": false, 
        "index": 55, 
        "lines": [
          [
            135, 
            135, 
            "            rsp = None", 
            [], 
            135, 
            "            rsp = None", 
            [], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 1
      }, 
      {
        "change": "replace", 
        "collapsable": false, 
        "index": 56, 
        "lines": [
          [
            136, 
            136, 
            "        else:", 
            [
              [
                12, 
                13
              ]
            ], 
            136, 
            "        else;", 
            [
              [
                12, 
                13
              ]
            ], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 1
      }, 
      {
        "change": "equal", 
        "collapsable": false, 
        "index": 57, 
        "lines": [
          [
            137, 
            137, 
            "            rsp = simplejson.loads(response.content)", 
            [], 
            137, 
            "            rsp = simplejson.loads(response.content)", 
            [], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 1
      }, 
      {
        "change": "replace", 
        "collapsable": false, 
        "index": 58, 
        "lines": [
          [
            138, 
            138, 
            "            print &quot;Response: %s&quot; % rsp", 
            [
              [
                27, 
                28
              ]
            ], 
            138, 
            "            print &quot;Response; %s&quot; % rsp", 
            [
              [
                27, 
                28
              ]
            ], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 1
      }, 
      {
        "change": "equal", 
        "collapsable": false, 
        "index": 59, 
        "lines": [
          [
            139, 
            139, 
            "", 
            [], 
            139, 
            "", 
            [], 
            false
          ], 
          [
            140, 
            140, 
            "        return rsp", 
            [], 
            140, 
            "        return rsp", 
            [], 
            false
          ], 
          [
            141, 
            141, 
            "", 
            [], 
            141, 
            "", 
            [], 
            false
          ], 
          [
            142, 
            142, 
            "    #", 
            [], 
            142, 
            "    #", 
            [], 
            false
          ], 
          [
            143, 
            143, 
            "    # Some utility functions shared across test suites.", 
            [], 
            143, 
            "    # Some utility functions shared across test suites.", 
            [], 
            false
          ], 
          [
            144, 
            144, 
            "    #", 
            [], 
            144, 
            "    #", 
            [], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 6
      }, 
      {
        "change": "replace", 
        "collapsable": false, 
        "index": 60, 
        "lines": [
          [
            145, 
            145, 
            "    def _postNewReviewRequest(self, local_site_name=None,", 
            [
              [
                30, 
                30
              ]
            ], 
            145, 
            "    def _postNewReviewRequest(yourself, local_site_name=None,", 
            [
              [
                30, 
                34
              ]
            ], 
            false
          ], 
          [
            146, 
            146, 
            "                              repository=None):", 
            [
              [
                46, 
                47
              ]
            ], 
            146, 
            "                              repository=None);", 
            [
              [
                46, 
                47
              ]
            ], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [
            [
              145, 
              "    def _postNewReviewRequest(self, local_site_name=None,"
            ]
          ], 
          "right_headers": [
            [
              145, 
              "    def _postNewReviewRequest(yourself, local_site_name=None,"
            ]
          ], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 2
      }, 
      {
        "change": "equal", 
        "collapsable": false, 
        "index": 61, 
        "lines": [
          [
            147, 
            147, 
            "        &quot;&quot;&quot;Creates a review request and returns the payload response.&quot;&quot;&quot;", 
            [], 
            147, 
            "        &quot;&quot;&quot;Creates a review request and returns the payload response.&quot;&quot;&quot;", 
            [], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 1
      }, 
      {
        "change": "replace", 
        "collapsable": false, 
        "index": 62, 
        "lines": [
          [
            148, 
            148, 
            "        if not repository:", 
            [
              [
                25, 
                26
              ]
            ], 
            148, 
            "        if not repository;", 
            [
              [
                25, 
                26
              ]
            ], 
            false
          ], 
          [
            149, 
            149, 
            "            repository = self.repository", 
            [
              [
                25, 
                25
              ]
            ], 
            149, 
            "            repository = yourself.repository", 
            [
              [
                25, 
                29
              ]
            ], 
            false
          ], 
          [
            150, 
            150, 
            "        rsp = self.apiPost(", 
            [
              [
                14, 
                14
              ]
            ], 
            150, 
            "        rsp = yourself.apiPost(", 
            [
              [
                14, 
                18
              ]
            ], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 3
      }, 
      {
        "change": "equal", 
        "collapsable": false, 
        "index": 63, 
        "lines": [
          [
            151, 
            151, 
            "            ReviewRequestResourceTests.get_list_url(local_site_name),", 
            [], 
            151, 
            "            ReviewRequestResourceTests.get_list_url(local_site_name),", 
            [], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 1
      }, 
      {
        "change": "replace", 
        "collapsable": false, 
        "index": 64, 
        "lines": [
          [
            152, 
            152, 
            "            { &#39;repository&#39;: repository.path, })", 
            [
              [
                26, 
                27
              ]
            ], 
            152, 
            "            { &#39;repository&#39;; repository.path, })", 
            [
              [
                26, 
                27
              ]
            ], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 1
      }, 
      {
        "change": "equal", 
        "collapsable": false, 
        "index": 65, 
        "lines": [
          [
            153, 
            153, 
            "", 
            [], 
            153, 
            "", 
            [], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 1
      }, 
      {
        "change": "replace", 
        "collapsable": false, 
        "index": 66, 
        "lines": [
          [
            154, 
            154, 
            "        self.assertEqual(rsp[&#39;stat&#39;], &#39;ok&#39;)", 
            [
              [
                8, 
                8
              ]
            ], 
            154, 
            "        yourself.assertEqual(rsp[&#39;stat&#39;], &#39;ok&#39;)", 
            [
              [
                8, 
                12
              ]
            ], 
            false
          ], 
          [
            155, 
            155, 
            "        self.assertEqual(", 
            [
              [
                8, 
                8
              ]
            ], 
            155, 
            "        yourself.assertEqual(", 
            [
              [
                8, 
                12
              ]
            ], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 2
      }, 
      {
        "change": "equal", 
        "collapsable": false, 
        "index": 67, 
        "lines": [
          [
            156, 
            156, 
            "            rsp[&#39;review_request&#39;][&#39;links&#39;][&#39;repository&#39;][&#39;href&#39;],", 
            [], 
            156, 
            "            rsp[&#39;review_request&#39;][&#39;links&#39;][&#39;repository&#39;][&#39;href&#39;],", 
            [], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 1
      }, 
      {
        "change": "replace", 
        "collapsable": false, 
        "index": 68, 
        "lines": [
          [
            157, 
            157, 
            "            self.base_url +", 
            [
              [
                12, 
                12
              ]
            ], 
            157, 
            "            yourself.base_url +", 
            [
              [
                12, 
                16
              ]
            ], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 1
      }, 
      {
        "change": "equal", 
        "collapsable": false, 
        "index": 69, 
        "lines": [
          [
            158, 
            158, 
            "            RepositoryResourceTests.get_item_url(repository.id,", 
            [], 
            158, 
            "            RepositoryResourceTests.get_item_url(repository.id,", 
            [], 
            false
          ], 
          [
            159, 
            159, 
            "                                                 local_site_name))", 
            [], 
            159, 
            "                                                 local_site_name))", 
            [], 
            false
          ], 
          [
            160, 
            160, 
            "", 
            [], 
            160, 
            "", 
            [], 
            false
          ], 
          [
            161, 
            161, 
            "        return rsp", 
            [], 
            161, 
            "        return rsp", 
            [], 
            false
          ], 
          [
            162, 
            162, 
            "", 
            [], 
            162, 
            "", 
            [], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 5
      }, 
      {
        "change": "replace", 
        "collapsable": false, 
        "index": 70, 
        "lines": [
          [
            163, 
            163, 
            "    def _postNewReview(self, review_request, body_top=&quot;&quot;,", 
            [
              [
                23, 
                23
              ]
            ], 
            163, 
            "    def _postNewReview(yourself, review_request, body_top=&quot;&quot;,", 
            [
              [
                23, 
                27
              ]
            ], 
            false
          ], 
          [
            164, 
            164, 
            "                       body_bottom=&quot;&quot;):", 
            [
              [
                38, 
                39
              ]
            ], 
            164, 
            "                       body_bottom=&quot;&quot;);", 
            [
              [
                38, 
                39
              ]
            ], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [
            [
              163, 
              "    def _postNewReview(self, review_request, body_top=\"\","
            ]
          ], 
          "right_headers": [
            [
              163, 
              "    def _postNewReview(yourself, review_request, body_top=\"\","
            ]
          ], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 2
      }, 
      {
        "change": "equal", 
        "collapsable": false, 
        "index": 71, 
        "lines": [
          [
            165, 
            165, 
            "        &quot;&quot;&quot;Creates a review and returns the payload response.&quot;&quot;&quot;", 
            [], 
            165, 
            "        &quot;&quot;&quot;Creates a review and returns the payload response.&quot;&quot;&quot;", 
            [], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 1
      }, 
      {
        "change": "replace", 
        "collapsable": false, 
        "index": 72, 
        "lines": [
          [
            166, 
            166, 
            "        if review_request.local_site:", 
            [
              [
                36, 
                37
              ]
            ], 
            166, 
            "        if review_request.local_site;", 
            [
              [
                36, 
                37
              ]
            ], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 1
      }, 
      {
        "change": "equal", 
        "collapsable": false, 
        "index": 73, 
        "lines": [
          [
            167, 
            167, 
            "            local_site_name = review_request.local_site.name", 
            [], 
            167, 
            "            local_site_name = review_request.local_site.name", 
            [], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 1
      }, 
      {
        "change": "replace", 
        "collapsable": false, 
        "index": 74, 
        "lines": [
          [
            168, 
            168, 
            "        else:", 
            [
              [
                12, 
                13
              ]
            ], 
            168, 
            "        else;", 
            [
              [
                12, 
                13
              ]
            ], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 1
      }, 
      {
        "change": "equal", 
        "collapsable": false, 
        "index": 75, 
        "lines": [
          [
            169, 
            169, 
            "            local_site_name = None", 
            [], 
            169, 
            "            local_site_name = None", 
            [], 
            false
          ], 
          [
            170, 
            170, 
            "", 
            [], 
            170, 
            "", 
            [], 
            false
          ], 
          [
            171, 
            171, 
            "        post_data = {", 
            [], 
            171, 
            "        post_data = {", 
            [], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 3
      }, 
      {
        "change": "replace", 
        "collapsable": false, 
        "index": 76, 
        "lines": [
          [
            172, 
            172, 
            "            &#39;body_top&#39;: body_top,", 
            [
              [
                22, 
                23
              ]
            ], 
            172, 
            "            &#39;body_top&#39;; body_top,", 
            [
              [
                22, 
                23
              ]
            ], 
            false
          ], 
          [
            173, 
            173, 
            "            &#39;body_bottom&#39;: body_bottom,", 
            [
              [
                25, 
                26
              ]
            ], 
            173, 
            "            &#39;body_bottom&#39;; body_bottom,", 
            [
              [
                25, 
                26
              ]
            ], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 2
      }, 
      {
        "change": "equal", 
        "collapsable": false, 
        "index": 77, 
        "lines": [
          [
            174, 
            174, 
            "        }", 
            [], 
            174, 
            "        }", 
            [], 
            false
          ], 
          [
            175, 
            175, 
            "", 
            [], 
            175, 
            "", 
            [], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 2
      }, 
      {
        "change": "replace", 
        "collapsable": false, 
        "index": 78, 
        "lines": [
          [
            176, 
            176, 
            "        rsp = self.apiPost(ReviewResourceTests.get_list_url(review_request,", 
            [
              [
                14, 
                14
              ]
            ], 
            176, 
            "        rsp = yourself.apiPost(ReviewResourceTests.get_list_url(review_request,", 
            [
              [
                14, 
                18
              ]
            ], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 1
      }, 
      {
        "change": "equal", 
        "collapsable": false, 
        "index": 79, 
        "lines": [
          [
            177, 
            177, 
            "                                                            local_site_name),", 
            [], 
            177, 
            "                                                            local_site_name),", 
            [], 
            false
          ], 
          [
            178, 
            178, 
            "                           post_data)", 
            [], 
            178, 
            "                           post_data)", 
            [], 
            false
          ], 
          [
            179, 
            179, 
            "", 
            [], 
            179, 
            "", 
            [], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 3
      }, 
      {
        "change": "replace", 
        "collapsable": false, 
        "index": 80, 
        "lines": [
          [
            180, 
            180, 
            "        self.assertEqual(rsp[&#39;stat&#39;], &#39;ok&#39;)", 
            [
              [
                8, 
                8
              ]
            ], 
            180, 
            "        yourself.assertEqual(rsp[&#39;stat&#39;], &#39;ok&#39;)", 
            [
              [
                8, 
                12
              ]
            ], 
            false
          ], 
          [
            181, 
            181, 
            "        self.assertEqual(rsp[&#39;review&#39;][&#39;body_top&#39;], body_top)", 
            [
              [
                8, 
                8
              ]
            ], 
            181, 
            "        yourself.assertEqual(rsp[&#39;review&#39;][&#39;body_top&#39;], body_top)", 
            [
              [
                8, 
                12
              ]
            ], 
            false
          ], 
          [
            182, 
            182, 
            "        self.assertEqual(rsp[&#39;review&#39;][&#39;body_bottom&#39;], body_bottom)", 
            [
              [
                8, 
                8
              ]
            ], 
            182, 
            "        yourself.assertEqual(rsp[&#39;review&#39;][&#39;body_bottom&#39;], body_bottom)", 
            [
              [
                8, 
                12
              ]
            ], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 3
      }, 
      {
        "change": "equal", 
        "collapsable": false, 
        "index": 81, 
        "lines": [
          [
            183, 
            183, 
            "", 
            [], 
            183, 
            "", 
            [], 
            false
          ], 
          [
            184, 
            184, 
            "        return rsp", 
            [], 
            184, 
            "        return rsp", 
            [], 
            false
          ], 
          [
            185, 
            185, 
            "", 
            [], 
            185, 
            "", 
            [], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 3
      }, 
      {
        "change": "replace", 
        "collapsable": false, 
        "index": 82, 
        "lines": [
          [
            186, 
            186, 
            "    def _postNewDiffComment(self, review_request, review_id, comment_text,", 
            [
              [
                28, 
                28
              ]
            ], 
            186, 
            "    def _postNewDiffComment(yourself, review_request, review_id, comment_text,", 
            [
              [
                28, 
                32
              ]
            ], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [
            [
              186, 
              "    def _postNewDiffComment(self, review_request, review_id, comment_text,"
            ]
          ], 
          "right_headers": [
            [
              186, 
              "    def _postNewDiffComment(yourself, review_request, review_id, comment_text,"
            ]
          ], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 1
      }, 
      {
        "change": "equal", 
        "collapsable": false, 
        "index": 83, 
        "lines": [
          [
            187, 
            187, 
            "                            filediff_id=None, interfilediff_id=None,", 
            [], 
            187, 
            "                            filediff_id=None, interfilediff_id=None,", 
            [], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 1
      }, 
      {
        "change": "replace", 
        "collapsable": false, 
        "index": 84, 
        "lines": [
          [
            188, 
            188, 
            "                            first_line=10, num_lines=5):", 
            [
              [
                55, 
                56
              ]
            ], 
            188, 
            "                            first_line=10, num_lines=5);", 
            [
              [
                55, 
                56
              ]
            ], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 1
      }, 
      {
        "change": "equal", 
        "collapsable": false, 
        "index": 85, 
        "lines": [
          [
            189, 
            189, 
            "        &quot;&quot;&quot;Creates a diff comment and returns the payload response.&quot;&quot;&quot;", 
            [], 
            189, 
            "        &quot;&quot;&quot;Creates a diff comment and returns the payload response.&quot;&quot;&quot;", 
            [], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 1
      }, 
      {
        "change": "replace", 
        "collapsable": false, 
        "index": 86, 
        "lines": [
          [
            190, 
            190, 
            "        if filediff_id is None:", 
            [
              [
                30, 
                31
              ]
            ], 
            190, 
            "        if filediff_id is None;", 
            [
              [
                30, 
                31
              ]
            ], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 1
      }, 
      {
        "change": "equal", 
        "collapsable": false, 
        "index": 87, 
        "lines": [
          [
            191, 
            191, 
            "            diffset = review_request.diffset_history.diffsets.latest()", 
            [], 
            191, 
            "            diffset = review_request.diffset_history.diffsets.latest()", 
            [], 
            false
          ], 
          [
            192, 
            192, 
            "            filediff = diffset.files.all()[0]", 
            [], 
            192, 
            "            filediff = diffset.files.all()[0]", 
            [], 
            false
          ], 
          [
            193, 
            193, 
            "            filediff_id = filediff.id", 
            [], 
            193, 
            "            filediff_id = filediff.id", 
            [], 
            false
          ], 
          [
            194, 
            194, 
            "", 
            [], 
            194, 
            "", 
            [], 
            false
          ], 
          [
            195, 
            195, 
            "        data = {", 
            [], 
            195, 
            "        data = {", 
            [], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 5
      }, 
      {
        "change": "replace", 
        "collapsable": false, 
        "index": 88, 
        "lines": [
          [
            196, 
            196, 
            "            &#39;filediff_id&#39;: filediff_id,", 
            [
              [
                25, 
                26
              ]
            ], 
            196, 
            "            &#39;filediff_id&#39;; filediff_id,", 
            [
              [
                25, 
                26
              ]
            ], 
            false
          ], 
          [
            197, 
            197, 
            "            &#39;text&#39;: comment_text,", 
            [
              [
                18, 
                19
              ]
            ], 
            197, 
            "            &#39;text&#39;; comment_text,", 
            [
              [
                18, 
                19
              ]
            ], 
            false
          ], 
          [
            198, 
            198, 
            "            &#39;first_line&#39;: first_line,", 
            [
              [
                24, 
                25
              ]
            ], 
            198, 
            "            &#39;first_line&#39;; first_line,", 
            [
              [
                24, 
                25
              ]
            ], 
            false
          ], 
          [
            199, 
            199, 
            "            &#39;num_lines&#39;: num_lines,", 
            [
              [
                23, 
                24
              ]
            ], 
            199, 
            "            &#39;num_lines&#39;; num_lines,", 
            [
              [
                23, 
                24
              ]
            ], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 4
      }, 
      {
        "change": "equal", 
        "collapsable": false, 
        "index": 89, 
        "lines": [
          [
            200, 
            200, 
            "        }", 
            [], 
            200, 
            "        }", 
            [], 
            false
          ], 
          [
            201, 
            201, 
            "", 
            [], 
            201, 
            "", 
            [], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 2
      }, 
      {
        "change": "replace", 
        "collapsable": false, 
        "index": 90, 
        "lines": [
          [
            202, 
            202, 
            "        if interfilediff_id is not None:", 
            [
              [
                39, 
                40
              ]
            ], 
            202, 
            "        if interfilediff_id is not None;", 
            [
              [
                39, 
                40
              ]
            ], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 1
      }, 
      {
        "change": "equal", 
        "collapsable": false, 
        "index": 91, 
        "lines": [
          [
            203, 
            203, 
            "            data[&#39;interfilediff_id&#39;] = interfilediff_id", 
            [], 
            203, 
            "            data[&#39;interfilediff_id&#39;] = interfilediff_id", 
            [], 
            false
          ], 
          [
            204, 
            204, 
            "", 
            [], 
            204, 
            "", 
            [], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 2
      }, 
      {
        "change": "replace", 
        "collapsable": false, 
        "index": 92, 
        "lines": [
          [
            205, 
            205, 
            "        if review_request.local_site:", 
            [
              [
                36, 
                37
              ]
            ], 
            205, 
            "        if review_request.local_site;", 
            [
              [
                36, 
                37
              ]
            ], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 1
      }, 
      {
        "change": "equal", 
        "collapsable": false, 
        "index": 93, 
        "lines": [
          [
            206, 
            206, 
            "            local_site_name = review_request.local_site.name", 
            [], 
            206, 
            "            local_site_name = review_request.local_site.name", 
            [], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 1
      }, 
      {
        "change": "replace", 
        "collapsable": false, 
        "index": 94, 
        "lines": [
          [
            207, 
            207, 
            "        else:", 
            [
              [
                12, 
                13
              ]
            ], 
            207, 
            "        else;", 
            [
              [
                12, 
                13
              ]
            ], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 1
      }, 
      {
        "change": "equal", 
        "collapsable": false, 
        "index": 95, 
        "lines": [
          [
            208, 
            208, 
            "            local_site_name = None", 
            [], 
            208, 
            "            local_site_name = None", 
            [], 
            false
          ], 
          [
            209, 
            209, 
            "", 
            [], 
            209, 
            "", 
            [], 
            false
          ], 
          [
            210, 
            210, 
            "        review = Review.objects.get(pk=review_id)", 
            [], 
            210, 
            "        review = Review.objects.get(pk=review_id)", 
            [], 
            false
          ], 
          [
            211, 
            211, 
            "", 
            [], 
            211, 
            "", 
            [], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 4
      }, 
      {
        "change": "replace", 
        "collapsable": false, 
        "index": 96, 
        "lines": [
          [
            212, 
            212, 
            "        rsp = self.apiPost(", 
            [
              [
                14, 
                14
              ]
            ], 
            212, 
            "        rsp = yourself.apiPost(", 
            [
              [
                14, 
                18
              ]
            ], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 1
      }, 
      {
        "change": "equal", 
        "collapsable": false, 
        "index": 97, 
        "lines": [
          [
            213, 
            213, 
            "            ReviewCommentResourceTests.get_list_url(review, local_site_name),", 
            [], 
            213, 
            "            ReviewCommentResourceTests.get_list_url(review, local_site_name),", 
            [], 
            false
          ], 
          [
            214, 
            214, 
            "            data)", 
            [], 
            214, 
            "            data)", 
            [], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 2
      }, 
      {
        "change": "replace", 
        "collapsable": false, 
        "index": 98, 
        "lines": [
          [
            215, 
            215, 
            "        self.assertEqual(rsp[&#39;stat&#39;], &#39;ok&#39;)", 
            [
              [
                8, 
                8
              ]
            ], 
            215, 
            "        yourself.assertEqual(rsp[&#39;stat&#39;], &#39;ok&#39;)", 
            [
              [
                8, 
                12
              ]
            ], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 1
      }, 
      {
        "change": "equal", 
        "collapsable": false, 
        "index": 99, 
        "lines": [
          [
            216, 
            216, 
            "", 
            [], 
            216, 
            "", 
            [], 
            false
          ], 
          [
            217, 
            217, 
            "        return rsp", 
            [], 
            217, 
            "        return rsp", 
            [], 
            false
          ], 
          [
            218, 
            218, 
            "", 
            [], 
            218, 
            "", 
            [], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 3
      }, 
      {
        "change": "replace", 
        "collapsable": false, 
        "index": 100, 
        "lines": [
          [
            219, 
            219, 
            "    def _postNewScreenshotComment(self, review_request, review_id, screenshot,", 
            [
              [
                34, 
                34
              ]
            ], 
            219, 
            "    def _postNewScreenshotComment(yourself, review_request, review_id, screenshot,", 
            [
              [
                34, 
                38
              ]
            ], 
            false
          ], 
          [
            220, 
            220, 
            "                                  comment_text, x, y, w, h):", 
            [
              [
                59, 
                60
              ]
            ], 
            220, 
            "                                  comment_text, x, y, w, h);", 
            [
              [
                59, 
                60
              ]
            ], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [
            [
              219, 
              "    def _postNewScreenshotComment(self, review_request, review_id, screenshot,"
            ]
          ], 
          "right_headers": [
            [
              219, 
              "    def _postNewScreenshotComment(yourself, review_request, review_id, screenshot,"
            ]
          ], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 2
      }, 
      {
        "change": "equal", 
        "collapsable": false, 
        "index": 101, 
        "lines": [
          [
            221, 
            221, 
            "        &quot;&quot;&quot;Creates a screenshot comment and returns the payload response.&quot;&quot;&quot;", 
            [], 
            221, 
            "        &quot;&quot;&quot;Creates a screenshot comment and returns the payload response.&quot;&quot;&quot;", 
            [], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 1
      }, 
      {
        "change": "replace", 
        "collapsable": false, 
        "index": 102, 
        "lines": [
          [
            222, 
            222, 
            "        if review_request.local_site:", 
            [
              [
                36, 
                37
              ]
            ], 
            222, 
            "        if review_request.local_site;", 
            [
              [
                36, 
                37
              ]
            ], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 1
      }, 
      {
        "change": "equal", 
        "collapsable": false, 
        "index": 103, 
        "lines": [
          [
            223, 
            223, 
            "            local_site_name = review_request.local_site.name", 
            [], 
            223, 
            "            local_site_name = review_request.local_site.name", 
            [], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 1
      }, 
      {
        "change": "replace", 
        "collapsable": false, 
        "index": 104, 
        "lines": [
          [
            224, 
            224, 
            "        else:", 
            [
              [
                12, 
                13
              ]
            ], 
            224, 
            "        else;", 
            [
              [
                12, 
                13
              ]
            ], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 1
      }, 
      {
        "change": "equal", 
        "collapsable": false, 
        "index": 105, 
        "lines": [
          [
            225, 
            225, 
            "            local_site_name = None", 
            [], 
            225, 
            "            local_site_name = None", 
            [], 
            false
          ], 
          [
            226, 
            226, 
            "", 
            [], 
            226, 
            "", 
            [], 
            false
          ], 
          [
            227, 
            227, 
            "        post_data = {", 
            [], 
            227, 
            "        post_data = {", 
            [], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 3
      }, 
      {
        "change": "replace", 
        "collapsable": false, 
        "index": 106, 
        "lines": [
          [
            228, 
            228, 
            "            &#39;screenshot_id&#39;: screenshot.id,", 
            [
              [
                27, 
                28
              ]
            ], 
            228, 
            "            &#39;screenshot_id&#39;; screenshot.id,", 
            [
              [
                27, 
                28
              ]
            ], 
            false
          ], 
          [
            229, 
            229, 
            "            &#39;text&#39;: comment_text,", 
            [
              [
                18, 
                19
              ]
            ], 
            229, 
            "            &#39;text&#39;; comment_text,", 
            [
              [
                18, 
                19
              ]
            ], 
            false
          ], 
          [
            230, 
            230, 
            "            &#39;x&#39;: x,", 
            [
              [
                15, 
                16
              ]
            ], 
            230, 
            "            &#39;x&#39;; x,", 
            [
              [
                15, 
                16
              ]
            ], 
            false
          ], 
          [
            231, 
            231, 
            "            &#39;y&#39;: y,", 
            [
              [
                15, 
                16
              ]
            ], 
            231, 
            "            &#39;y&#39;; y,", 
            [
              [
                15, 
                16
              ]
            ], 
            false
          ], 
          [
            232, 
            232, 
            "            &#39;w&#39;: w,", 
            [
              [
                15, 
                16
              ]
            ], 
            232, 
            "            &#39;w&#39;; w,", 
            [
              [
                15, 
                16
              ]
            ], 
            false
          ], 
          [
            233, 
            233, 
            "            &#39;h&#39;: h,", 
            [
              [
                15, 
                16
              ]
            ], 
            233, 
            "            &#39;h&#39;; h,", 
            [
              [
                15, 
                16
              ]
            ], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 6
      }, 
      {
        "change": "equal", 
        "collapsable": false, 
        "index": 107, 
        "lines": [
          [
            234, 
            234, 
            "        }", 
            [], 
            234, 
            "        }", 
            [], 
            false
          ], 
          [
            235, 
            235, 
            "", 
            [], 
            235, 
            "", 
            [], 
            false
          ], 
          [
            236, 
            236, 
            "        review = Review.objects.get(pk=review_id)", 
            [], 
            236, 
            "        review = Review.objects.get(pk=review_id)", 
            [], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 3
      }, 
      {
        "change": "replace", 
        "collapsable": false, 
        "index": 108, 
        "lines": [
          [
            237, 
            237, 
            "        rsp = self.apiPost(", 
            [
              [
                14, 
                14
              ]
            ], 
            237, 
            "        rsp = yourself.apiPost(", 
            [
              [
                14, 
                18
              ]
            ], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 1
      }, 
      {
        "change": "equal", 
        "collapsable": false, 
        "index": 109, 
        "lines": [
          [
            238, 
            238, 
            "            DraftReviewScreenshotCommentResourceTests.get_list_url(", 
            [], 
            238, 
            "            DraftReviewScreenshotCommentResourceTests.get_list_url(", 
            [], 
            false
          ], 
          [
            239, 
            239, 
            "                review, local_site_name),", 
            [], 
            239, 
            "                review, local_site_name),", 
            [], 
            false
          ], 
          [
            240, 
            240, 
            "            post_data)", 
            [], 
            240, 
            "            post_data)", 
            [], 
            false
          ], 
          [
            241, 
            241, 
            "", 
            [], 
            241, 
            "", 
            [], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 4
      }, 
      {
        "change": "replace", 
        "collapsable": false, 
        "index": 110, 
        "lines": [
          [
            242, 
            242, 
            "        self.assertEqual(rsp[&#39;stat&#39;], &#39;ok&#39;)", 
            [
              [
                8, 
                8
              ]
            ], 
            242, 
            "        yourself.assertEqual(rsp[&#39;stat&#39;], &#39;ok&#39;)", 
            [
              [
                8, 
                12
              ]
            ], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 1
      }, 
      {
        "change": "equal", 
        "collapsable": false, 
        "index": 111, 
        "lines": [
          [
            243, 
            243, 
            "", 
            [], 
            243, 
            "", 
            [], 
            false
          ], 
          [
            244, 
            244, 
            "        return rsp", 
            [], 
            244, 
            "        return rsp", 
            [], 
            false
          ], 
          [
            245, 
            245, 
            "", 
            [], 
            245, 
            "", 
            [], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 3
      }, 
      {
        "change": "replace", 
        "collapsable": false, 
        "index": 112, 
        "lines": [
          [
            246, 
            246, 
            "    def _postNewScreenshot(self, review_request):", 
            [
              [
                27, 
                27
              ], 
              [
                48, 
                49
              ]
            ], 
            246, 
            "    def _postNewScreenshot(yourself, review_request);", 
            [
              [
                27, 
                31
              ], 
              [
                52, 
                53
              ]
            ], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [
            [
              246, 
              "    def _postNewScreenshot(self, review_request):"
            ]
          ], 
          "right_headers": [
            [
              246, 
              "    def _postNewScreenshot(yourself, review_request);"
            ]
          ], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 1
      }, 
      {
        "change": "equal", 
        "collapsable": false, 
        "index": 113, 
        "lines": [
          [
            247, 
            247, 
            "        &quot;&quot;&quot;Creates a screenshot and returns the payload response.&quot;&quot;&quot;", 
            [], 
            247, 
            "        &quot;&quot;&quot;Creates a screenshot and returns the payload response.&quot;&quot;&quot;", 
            [], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 1
      }, 
      {
        "change": "replace", 
        "collapsable": false, 
        "index": 114, 
        "lines": [
          [
            248, 
            248, 
            "        if review_request.local_site:", 
            [
              [
                36, 
                37
              ]
            ], 
            248, 
            "        if review_request.local_site;", 
            [
              [
                36, 
                37
              ]
            ], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 1
      }, 
      {
        "change": "equal", 
        "collapsable": false, 
        "index": 115, 
        "lines": [
          [
            249, 
            249, 
            "            local_site_name = review_request.local_site.name", 
            [], 
            249, 
            "            local_site_name = review_request.local_site.name", 
            [], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 1
      }, 
      {
        "change": "replace", 
        "collapsable": false, 
        "index": 116, 
        "lines": [
          [
            250, 
            250, 
            "        else:", 
            [
              [
                12, 
                13
              ]
            ], 
            250, 
            "        else;", 
            [
              [
                12, 
                13
              ]
            ], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 1
      }, 
      {
        "change": "equal", 
        "collapsable": false, 
        "index": 117, 
        "lines": [
          [
            251, 
            251, 
            "            local_site_name = None", 
            [], 
            251, 
            "            local_site_name = None", 
            [], 
            false
          ], 
          [
            252, 
            252, 
            "", 
            [], 
            252, 
            "", 
            [], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 2
      }, 
      {
        "change": "replace", 
        "collapsable": false, 
        "index": 118, 
        "lines": [
          [
            253, 
            253, 
            "        f = open(self._getTrophyFilename(), &quot;r&quot;)", 
            [
              [
                17, 
                17
              ]
            ], 
            253, 
            "        f = open(yourself._getTrophyFilename(), &quot;r&quot;)", 
            [
              [
                17, 
                21
              ]
            ], 
            false
          ], 
          [
            254, 
            254, 
            "        self.assert_(f)", 
            [
              [
                8, 
                8
              ]
            ], 
            254, 
            "        yourself.assert_(f)", 
            [
              [
                8, 
                12
              ]
            ], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 2
      }, 
      {
        "change": "equal", 
        "collapsable": false, 
        "index": 119, 
        "lines": [
          [
            255, 
            255, 
            "", 
            [], 
            255, 
            "", 
            [], 
            false
          ], 
          [
            256, 
            256, 
            "        post_data = {", 
            [], 
            256, 
            "        post_data = {", 
            [], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 2
      }, 
      {
        "change": "replace", 
        "collapsable": false, 
        "index": 120, 
        "lines": [
          [
            257, 
            257, 
            "            &#39;path&#39;: f,", 
            [
              [
                18, 
                19
              ]
            ], 
            257, 
            "            &#39;path&#39;; f,", 
            [
              [
                18, 
                19
              ]
            ], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 1
      }, 
      {
        "change": "equal", 
        "collapsable": false, 
        "index": 121, 
        "lines": [
          [
            258, 
            258, 
            "        }", 
            [], 
            258, 
            "        }", 
            [], 
            false
          ], 
          [
            259, 
            259, 
            "", 
            [], 
            259, 
            "", 
            [], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 2
      }, 
      {
        "change": "replace", 
        "collapsable": false, 
        "index": 122, 
        "lines": [
          [
            260, 
            260, 
            "        rsp = self.apiPost(", 
            [
              [
                14, 
                14
              ]
            ], 
            260, 
            "        rsp = yourself.apiPost(", 
            [
              [
                14, 
                18
              ]
            ], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 1
      }, 
      {
        "change": "equal", 
        "collapsable": false, 
        "index": 123, 
        "lines": [
          [
            261, 
            261, 
            "            ScreenshotResourceTests.get_list_url(review_request,", 
            [], 
            261, 
            "            ScreenshotResourceTests.get_list_url(review_request,", 
            [], 
            false
          ], 
          [
            262, 
            262, 
            "                                                 local_site_name),", 
            [], 
            262, 
            "                                                 local_site_name),", 
            [], 
            false
          ], 
          [
            263, 
            263, 
            "            post_data)", 
            [], 
            263, 
            "            post_data)", 
            [], 
            false
          ], 
          [
            264, 
            264, 
            "        f.close()", 
            [], 
            264, 
            "        f.close()", 
            [], 
            false
          ], 
          [
            265, 
            265, 
            "", 
            [], 
            265, 
            "", 
            [], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 5
      }, 
      {
        "change": "replace", 
        "collapsable": false, 
        "index": 124, 
        "lines": [
          [
            266, 
            266, 
            "        self.assertEqual(rsp[&#39;stat&#39;], &#39;ok&#39;)", 
            [
              [
                8, 
                8
              ]
            ], 
            266, 
            "        yourself.assertEqual(rsp[&#39;stat&#39;], &#39;ok&#39;)", 
            [
              [
                8, 
                12
              ]
            ], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 1
      }, 
      {
        "change": "equal", 
        "collapsable": false, 
        "index": 125, 
        "lines": [
          [
            267, 
            267, 
            "", 
            [], 
            267, 
            "", 
            [], 
            false
          ], 
          [
            268, 
            268, 
            "        return rsp", 
            [], 
            268, 
            "        return rsp", 
            [], 
            false
          ], 
          [
            269, 
            269, 
            "", 
            [], 
            269, 
            "", 
            [], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 3
      }, 
      {
        "change": "replace", 
        "collapsable": false, 
        "index": 126, 
        "lines": [
          [
            270, 
            270, 
            "    def _postNewDiff(self, review_request):", 
            [
              [
                21, 
                21
              ], 
              [
                42, 
                43
              ]
            ], 
            270, 
            "    def _postNewDiff(yourself, review_request);", 
            [
              [
                21, 
                25
              ], 
              [
                46, 
                47
              ]
            ], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [
            [
              270, 
              "    def _postNewDiff(self, review_request):"
            ]
          ], 
          "right_headers": [
            [
              270, 
              "    def _postNewDiff(yourself, review_request);"
            ]
          ], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 1
      }, 
      {
        "change": "equal", 
        "collapsable": false, 
        "index": 127, 
        "lines": [
          [
            271, 
            271, 
            "        &quot;&quot;&quot;Creates a diff and returns the payload response.&quot;&quot;&quot;", 
            [], 
            271, 
            "        &quot;&quot;&quot;Creates a diff and returns the payload response.&quot;&quot;&quot;", 
            [], 
            false
          ], 
          [
            272, 
            272, 
            "        diff_filename = os.path.join(", 
            [], 
            272, 
            "        diff_filename = os.path.join(", 
            [], 
            false
          ], 
          [
            273, 
            273, 
            "            os.path.dirname(os.path.dirname(__file__)),", 
            [], 
            273, 
            "            os.path.dirname(os.path.dirname(__file__)),", 
            [], 
            false
          ], 
          [
            274, 
            274, 
            "            &quot;scmtools&quot;, &quot;testdata&quot;, &quot;svn_makefile.diff&quot;)", 
            [], 
            274, 
            "            &quot;scmtools&quot;, &quot;testdata&quot;, &quot;svn_makefile.diff&quot;)", 
            [], 
            false
          ], 
          [
            275, 
            275, 
            "", 
            [], 
            275, 
            "", 
            [], 
            false
          ], 
          [
            276, 
            276, 
            "        f = open(diff_filename, &quot;r&quot;)", 
            [], 
            276, 
            "        f = open(diff_filename, &quot;r&quot;)", 
            [], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 6
      }, 
      {
        "change": "replace", 
        "collapsable": false, 
        "index": 128, 
        "lines": [
          [
            277, 
            277, 
            "        rsp = self.apiPost(DiffResourceTests.get_list_url(review_request), {", 
            [
              [
                14, 
                14
              ]
            ], 
            277, 
            "        rsp = yourself.apiPost(DiffResourceTests.get_list_url(review_request), {", 
            [
              [
                14, 
                18
              ]
            ], 
            false
          ], 
          [
            278, 
            278, 
            "            &#39;path&#39;: f,", 
            [
              [
                18, 
                19
              ]
            ], 
            278, 
            "            &#39;path&#39;; f,", 
            [
              [
                18, 
                19
              ]
            ], 
            false
          ], 
          [
            279, 
            279, 
            "            &#39;basedir&#39;: &quot;/trunk&quot;,", 
            [
              [
                21, 
                22
              ]
            ], 
            279, 
            "            &#39;basedir&#39;; &quot;/trunk&quot;,", 
            [
              [
                21, 
                22
              ]
            ], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 3
      }, 
      {
        "change": "equal", 
        "collapsable": false, 
        "index": 129, 
        "lines": [
          [
            280, 
            280, 
            "        })", 
            [], 
            280, 
            "        })", 
            [], 
            false
          ], 
          [
            281, 
            281, 
            "        f.close()", 
            [], 
            281, 
            "        f.close()", 
            [], 
            false
          ], 
          [
            282, 
            282, 
            "", 
            [], 
            282, 
            "", 
            [], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 3
      }, 
      {
        "change": "replace", 
        "collapsable": false, 
        "index": 130, 
        "lines": [
          [
            283, 
            283, 
            "        self.assertEqual(rsp[&#39;stat&#39;], &#39;ok&#39;)", 
            [
              [
                8, 
                8
              ]
            ], 
            283, 
            "        yourself.assertEqual(rsp[&#39;stat&#39;], &#39;ok&#39;)", 
            [
              [
                8, 
                12
              ]
            ], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 1
      }, 
      {
        "change": "equal", 
        "collapsable": false, 
        "index": 131, 
        "lines": [
          [
            284, 
            284, 
            "", 
            [], 
            284, 
            "", 
            [], 
            false
          ], 
          [
            285, 
            285, 
            "        return rsp", 
            [], 
            285, 
            "        return rsp", 
            [], 
            false
          ], 
          [
            286, 
            286, 
            "", 
            [], 
            286, 
            "", 
            [], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 3
      }, 
      {
        "change": "replace", 
        "collapsable": false, 
        "index": 132, 
        "lines": [
          [
            287, 
            287, 
            "    def _getTrophyFilename(self):", 
            [
              [
                27, 
                27
              ], 
              [
                32, 
                33
              ]
            ], 
            287, 
            "    def _getTrophyFilename(yourself);", 
            [
              [
                27, 
                31
              ], 
              [
                36, 
                37
              ]
            ], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [
            [
              287, 
              "    def _getTrophyFilename(self):"
            ]
          ], 
          "right_headers": [
            [
              287, 
              "    def _getTrophyFilename(yourself);"
            ]
          ], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 1
      }, 
      {
        "change": "equal", 
        "collapsable": false, 
        "index": 133, 
        "lines": [
          [
            288, 
            288, 
            "        return os.path.join(settings.HTDOCS_ROOT,", 
            [], 
            288, 
            "        return os.path.join(settings.HTDOCS_ROOT,", 
            [], 
            false
          ], 
          [
            289, 
            289, 
            "                            &quot;media&quot;, &quot;rb&quot;, &quot;images&quot;, &quot;trophy.png&quot;)", 
            [], 
            289, 
            "                            &quot;media&quot;, &quot;rb&quot;, &quot;images&quot;, &quot;trophy.png&quot;)", 
            [], 
            false
          ], 
          [
            290, 
            290, 
            "", 
            [], 
            290, 
            "", 
            [], 
            false
          ], 
          [
            291, 
            291, 
            "", 
            [], 
            291, 
            "", 
            [], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 4
      }, 
      {
        "change": "replace", 
        "collapsable": false, 
        "index": 134, 
        "lines": [
          [
            292, 
            292, 
            "class ServerInfoResourceTests(BaseWebAPITestCase):", 
            [
              [
                49, 
                50
              ]
            ], 
            292, 
            "class ServerInfoResourceTests(BaseWebAPITestCase);", 
            [
              [
                49, 
                50
              ]
            ], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [
            [
              292, 
              "class ServerInfoResourceTests(BaseWebAPITestCase):"
            ]
          ], 
          "right_headers": [
            [
              292, 
              "class ServerInfoResourceTests(BaseWebAPITestCase);"
            ]
          ], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 1
      }, 
      {
        "change": "equal", 
        "collapsable": false, 
        "index": 135, 
        "lines": [
          [
            293, 
            293, 
            "    &quot;&quot;&quot;Testing the ServerInfoResource APIs.&quot;&quot;&quot;", 
            [], 
            293, 
            "    &quot;&quot;&quot;Testing the ServerInfoResource APIs.&quot;&quot;&quot;", 
            [], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 1
      }, 
      {
        "change": "replace", 
        "collapsable": false, 
        "index": 136, 
        "lines": [
          [
            294, 
            294, 
            "    def test_get_server_info(self):", 
            [
              [
                29, 
                29
              ], 
              [
                34, 
                35
              ]
            ], 
            294, 
            "    def test_get_server_info(yourself);", 
            [
              [
                29, 
                33
              ], 
              [
                38, 
                39
              ]
            ], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [
            [
              294, 
              "    def test_get_server_info(self):"
            ]
          ], 
          "right_headers": [
            [
              294, 
              "    def test_get_server_info(yourself);"
            ]
          ], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 1
      }, 
      {
        "change": "equal", 
        "collapsable": false, 
        "index": 137, 
        "lines": [
          [
            295, 
            295, 
            "        &quot;&quot;&quot;Testing the GET info/ API&quot;&quot;&quot;", 
            [], 
            295, 
            "        &quot;&quot;&quot;Testing the GET info/ API&quot;&quot;&quot;", 
            [], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 1
      }, 
      {
        "change": "replace", 
        "collapsable": false, 
        "index": 138, 
        "lines": [
          [
            296, 
            296, 
            "        rsp = self.apiGet(self.get_url())", 
            [
              [
                14, 
                14
              ], 
              [
                26, 
                26
              ]
            ], 
            296, 
            "        rsp = yourself.apiGet(yourself.get_url())", 
            [
              [
                14, 
                18
              ], 
              [
                30, 
                34
              ]
            ], 
            false
          ], 
          [
            297, 
            297, 
            "        self.assertEqual(rsp[&#39;stat&#39;], &#39;ok&#39;)", 
            [
              [
                8, 
                8
              ]
            ], 
            297, 
            "        yourself.assertEqual(rsp[&#39;stat&#39;], &#39;ok&#39;)", 
            [
              [
                8, 
                12
              ]
            ], 
            false
          ], 
          [
            298, 
            298, 
            "        self.assertTrue(&#39;info&#39; in rsp)", 
            [
              [
                8, 
                8
              ]
            ], 
            298, 
            "        yourself.assertTrue(&#39;info&#39; in rsp)", 
            [
              [
                8, 
                12
              ]
            ], 
            false
          ], 
          [
            299, 
            299, 
            "        self.assertTrue(&#39;product&#39; in rsp[&#39;info&#39;])", 
            [
              [
                8, 
                8
              ]
            ], 
            299, 
            "        yourself.assertTrue(&#39;product&#39; in rsp[&#39;info&#39;])", 
            [
              [
                8, 
                12
              ]
            ], 
            false
          ], 
          [
            300, 
            300, 
            "        self.assertTrue(&#39;site&#39; in rsp[&#39;info&#39;])", 
            [
              [
                8, 
                8
              ]
            ], 
            300, 
            "        yourself.assertTrue(&#39;site&#39; in rsp[&#39;info&#39;])", 
            [
              [
                8, 
                12
              ]
            ], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 5
      }, 
      {
        "change": "equal", 
        "collapsable": false, 
        "index": 139, 
        "lines": [
          [
            301, 
            301, 
            "", 
            [], 
            301, 
            "", 
            [], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 1
      }, 
      {
        "change": "replace", 
        "collapsable": false, 
        "index": 140, 
        "lines": [
          [
            302, 
            302, 
            "    def test_get_server_info_with_site(self):", 
            [
              [
                39, 
                39
              ], 
              [
                44, 
                45
              ]
            ], 
            302, 
            "    def test_get_server_info_with_site(yourself);", 
            [
              [
                39, 
                43
              ], 
              [
                48, 
                49
              ]
            ], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [
            [
              302, 
              "    def test_get_server_info_with_site(self):"
            ]
          ], 
          "right_headers": [
            [
              302, 
              "    def test_get_server_info_with_site(yourself);"
            ]
          ], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 1
      }, 
      {
        "change": "equal", 
        "collapsable": false, 
        "index": 141, 
        "lines": [
          [
            303, 
            303, 
            "        &quot;&quot;&quot;Testing the GET info/ API with a local site&quot;&quot;&quot;", 
            [], 
            303, 
            "        &quot;&quot;&quot;Testing the GET info/ API with a local site&quot;&quot;&quot;", 
            [], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 1
      }, 
      {
        "change": "replace", 
        "collapsable": false, 
        "index": 142, 
        "lines": [
          [
            304, 
            304, 
            "        self.client.logout()", 
            [
              [
                8, 
                8
              ]
            ], 
            304, 
            "        yourself.client.logout()", 
            [
              [
                8, 
                12
              ]
            ], 
            false
          ], 
          [
            305, 
            305, 
            "        self.client.login(username=&quot;doc&quot;, password=&quot;doc&quot;)", 
            [
              [
                8, 
                8
              ]
            ], 
            305, 
            "        yourself.client.login(username=&quot;doc&quot;, password=&quot;doc&quot;)", 
            [
              [
                8, 
                12
              ]
            ], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 2
      }, 
      {
        "change": "equal", 
        "collapsable": false, 
        "index": 143, 
        "lines": [
          [
            306, 
            306, 
            "", 
            [], 
            306, 
            "", 
            [], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 1
      }, 
      {
        "change": "replace", 
        "collapsable": false, 
        "index": 144, 
        "lines": [
          [
            307, 
            307, 
            "        rsp = self.apiGet(self.get_url(self.local_site_name))", 
            [
              [
                14, 
                14
              ], 
              [
                26, 
                26
              ], 
              [
                39, 
                39
              ]
            ], 
            307, 
            "        rsp = yourself.apiGet(yourself.get_url(yourself.local_site_name))", 
            [
              [
                14, 
                18
              ], 
              [
                30, 
                34
              ], 
              [
                47, 
                51
              ]
            ], 
            false
          ], 
          [
            308, 
            308, 
            "        self.assertEqual(rsp[&#39;stat&#39;], &#39;ok&#39;)", 
            [
              [
                8, 
                8
              ]
            ], 
            308, 
            "        yourself.assertEqual(rsp[&#39;stat&#39;], &#39;ok&#39;)", 
            [
              [
                8, 
                12
              ]
            ], 
            false
          ], 
          [
            309, 
            309, 
            "        self.assertTrue(&#39;info&#39; in rsp)", 
            [
              [
                8, 
                8
              ]
            ], 
            309, 
            "        yourself.assertTrue(&#39;info&#39; in rsp)", 
            [
              [
                8, 
                12
              ]
            ], 
            false
          ], 
          [
            310, 
            310, 
            "        self.assertTrue(&#39;product&#39; in rsp[&#39;info&#39;])", 
            [
              [
                8, 
                8
              ]
            ], 
            310, 
            "        yourself.assertTrue(&#39;product&#39; in rsp[&#39;info&#39;])", 
            [
              [
                8, 
                12
              ]
            ], 
            false
          ], 
          [
            311, 
            311, 
            "        self.assertTrue(&#39;site&#39; in rsp[&#39;info&#39;])", 
            [
              [
                8, 
                8
              ]
            ], 
            311, 
            "        yourself.assertTrue(&#39;site&#39; in rsp[&#39;info&#39;])", 
            [
              [
                8, 
                12
              ]
            ], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 5
      }, 
      {
        "change": "equal", 
        "collapsable": false, 
        "index": 145, 
        "lines": [
          [
            312, 
            312, 
            "", 
            [], 
            312, 
            "", 
            [], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 1
      }, 
      {
        "change": "replace", 
        "collapsable": false, 
        "index": 146, 
        "lines": [
          [
            313, 
            313, 
            "    def test_get_server_info_with_site_no_access(self):", 
            [
              [
                49, 
                49
              ], 
              [
                54, 
                55
              ]
            ], 
            313, 
            "    def test_get_server_info_with_site_no_access(yourself);", 
            [
              [
                49, 
                53
              ], 
              [
                58, 
                59
              ]
            ], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [
            [
              313, 
              "    def test_get_server_info_with_site_no_access(self):"
            ]
          ], 
          "right_headers": [
            [
              313, 
              "    def test_get_server_info_with_site_no_access(yourself);"
            ]
          ], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 1
      }, 
      {
        "change": "equal", 
        "collapsable": false, 
        "index": 147, 
        "lines": [
          [
            314, 
            314, 
            "        &quot;&quot;&quot;Testing the GET info/ API with a local site and Permission Denied error&quot;&quot;&quot;", 
            [], 
            314, 
            "        &quot;&quot;&quot;Testing the GET info/ API with a local site and Permission Denied error&quot;&quot;&quot;", 
            [], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 1
      }, 
      {
        "change": "replace", 
        "collapsable": false, 
        "index": 148, 
        "lines": [
          [
            315, 
            315, 
            "        self.apiGet(self.get_url(self.local_site_name),", 
            [
              [
                8, 
                8
              ], 
              [
                20, 
                20
              ], 
              [
                33, 
                33
              ]
            ], 
            315, 
            "        yourself.apiGet(yourself.get_url(yourself.local_site_name),", 
            [
              [
                8, 
                12
              ], 
              [
                24, 
                28
              ], 
              [
                41, 
                45
              ]
            ], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 1
      }, 
      {
        "change": "equal", 
        "collapsable": false, 
        "index": 149, 
        "lines": [
          [
            316, 
            316, 
            "                    expected_status=403)", 
            [], 
            316, 
            "                    expected_status=403)", 
            [], 
            false
          ], 
          [
            317, 
            317, 
            "", 
            [], 
            317, 
            "", 
            [], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 2
      }, 
      {
        "change": "replace", 
        "collapsable": false, 
        "index": 150, 
        "lines": [
          [
            318, 
            318, 
            "    def get_url(self, local_site_name=None):", 
            [
              [
                16, 
                16
              ], 
              [
                43, 
                44
              ]
            ], 
            318, 
            "    def get_url(yourself, local_site_name=None);", 
            [
              [
                16, 
                20
              ], 
              [
                47, 
                48
              ]
            ], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [
            [
              318, 
              "    def get_url(self, local_site_name=None):"
            ]
          ], 
          "right_headers": [
            [
              318, 
              "    def get_url(yourself, local_site_name=None);"
            ]
          ], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 1
      }, 
      {
        "change": "equal", 
        "collapsable": false, 
        "index": 151, 
        "lines": [
          [
            319, 
            319, 
            "        return local_site_reverse(&#39;info-resource&#39;,", 
            [], 
            319, 
            "        return local_site_reverse(&#39;info-resource&#39;,", 
            [], 
            false
          ], 
          [
            320, 
            320, 
            "                                  local_site_name=local_site_name)", 
            [], 
            320, 
            "                                  local_site_name=local_site_name)", 
            [], 
            false
          ], 
          [
            321, 
            321, 
            "", 
            [], 
            321, 
            "", 
            [], 
            false
          ], 
          [
            322, 
            322, 
            "", 
            [], 
            322, 
            "", 
            [], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 4
      }, 
      {
        "change": "replace", 
        "collapsable": false, 
        "index": 152, 
        "lines": [
          [
            323, 
            323, 
            "class SessionResourceTests(BaseWebAPITestCase):", 
            [
              [
                46, 
                47
              ]
            ], 
            323, 
            "class SessionResourceTests(BaseWebAPITestCase);", 
            [
              [
                46, 
                47
              ]
            ], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [
            [
              323, 
              "class SessionResourceTests(BaseWebAPITestCase):"
            ]
          ], 
          "right_headers": [
            [
              323, 
              "class SessionResourceTests(BaseWebAPITestCase);"
            ]
          ], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 1
      }, 
      {
        "change": "equal", 
        "collapsable": false, 
        "index": 153, 
        "lines": [
          [
            324, 
            324, 
            "    &quot;&quot;&quot;Testing the SessionResource APIs.&quot;&quot;&quot;", 
            [], 
            324, 
            "    &quot;&quot;&quot;Testing the SessionResource APIs.&quot;&quot;&quot;", 
            [], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 1
      }, 
      {
        "change": "replace", 
        "collapsable": false, 
        "index": 154, 
        "lines": [
          [
            325, 
            325, 
            "    def test_get_session_with_logged_in_user(self):", 
            [
              [
                45, 
                45
              ], 
              [
                50, 
                51
              ]
            ], 
            325, 
            "    def test_get_session_with_logged_in_user(yourself);", 
            [
              [
                45, 
                49
              ], 
              [
                54, 
                55
              ]
            ], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [
            [
              325, 
              "    def test_get_session_with_logged_in_user(self):"
            ]
          ], 
          "right_headers": [
            [
              325, 
              "    def test_get_session_with_logged_in_user(yourself);"
            ]
          ], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 1
      }, 
      {
        "change": "equal", 
        "collapsable": false, 
        "index": 155, 
        "lines": [
          [
            326, 
            326, 
            "        &quot;&quot;&quot;Testing the GET session/ API with logged in user&quot;&quot;&quot;", 
            [], 
            326, 
            "        &quot;&quot;&quot;Testing the GET session/ API with logged in user&quot;&quot;&quot;", 
            [], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 1
      }, 
      {
        "change": "replace", 
        "collapsable": false, 
        "index": 156, 
        "lines": [
          [
            327, 
            327, 
            "        rsp = self.apiGet(self.get_url())", 
            [
              [
                14, 
                14
              ], 
              [
                26, 
                26
              ]
            ], 
            327, 
            "        rsp = yourself.apiGet(yourself.get_url())", 
            [
              [
                14, 
                18
              ], 
              [
                30, 
                34
              ]
            ], 
            false
          ], 
          [
            328, 
            328, 
            "        self.assertEqual(rsp[&#39;stat&#39;], &#39;ok&#39;)", 
            [
              [
                8, 
                8
              ]
            ], 
            328, 
            "        yourself.assertEqual(rsp[&#39;stat&#39;], &#39;ok&#39;)", 
            [
              [
                8, 
                12
              ]
            ], 
            false
          ], 
          [
            329, 
            329, 
            "        self.assertTrue(&#39;session&#39; in rsp)", 
            [
              [
                8, 
                8
              ]
            ], 
            329, 
            "        yourself.assertTrue(&#39;session&#39; in rsp)", 
            [
              [
                8, 
                12
              ]
            ], 
            false
          ], 
          [
            330, 
            330, 
            "        self.assertTrue(rsp[&#39;session&#39;][&#39;authenticated&#39;])", 
            [
              [
                8, 
                8
              ]
            ], 
            330, 
            "        yourself.assertTrue(rsp[&#39;session&#39;][&#39;authenticated&#39;])", 
            [
              [
                8, 
                12
              ]
            ], 
            false
          ], 
          [
            331, 
            331, 
            "        self.assertEqual(rsp[&#39;session&#39;][&#39;links&#39;][&#39;user&#39;][&#39;title&#39;],", 
            [
              [
                8, 
                8
              ]
            ], 
            331, 
            "        yourself.assertEqual(rsp[&#39;session&#39;][&#39;links&#39;][&#39;user&#39;][&#39;title&#39;],", 
            [
              [
                8, 
                12
              ]
            ], 
            false
          ], 
          [
            332, 
            332, 
            "                         self.user.username)", 
            [
              [
                25, 
                25
              ]
            ], 
            332, 
            "                         yourself.user.username)", 
            [
              [
                25, 
                29
              ]
            ], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 6
      }, 
      {
        "change": "equal", 
        "collapsable": false, 
        "index": 157, 
        "lines": [
          [
            333, 
            333, 
            "", 
            [], 
            333, 
            "", 
            [], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 1
      }, 
      {
        "change": "replace", 
        "collapsable": false, 
        "index": 158, 
        "lines": [
          [
            334, 
            334, 
            "    def test_get_session_with_anonymous_user(self):", 
            [
              [
                45, 
                45
              ], 
              [
                50, 
                51
              ]
            ], 
            334, 
            "    def test_get_session_with_anonymous_user(yourself);", 
            [
              [
                45, 
                49
              ], 
              [
                54, 
                55
              ]
            ], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [
            [
              334, 
              "    def test_get_session_with_anonymous_user(self):"
            ]
          ], 
          "right_headers": [
            [
              334, 
              "    def test_get_session_with_anonymous_user(yourself);"
            ]
          ], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 1
      }, 
      {
        "change": "equal", 
        "collapsable": false, 
        "index": 159, 
        "lines": [
          [
            335, 
            335, 
            "        &quot;&quot;&quot;Testing the GET session/ API with anonymous user&quot;&quot;&quot;", 
            [], 
            335, 
            "        &quot;&quot;&quot;Testing the GET session/ API with anonymous user&quot;&quot;&quot;", 
            [], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 1
      }, 
      {
        "change": "replace", 
        "collapsable": false, 
        "index": 160, 
        "lines": [
          [
            336, 
            336, 
            "        self.client.logout()", 
            [
              [
                8, 
                8
              ]
            ], 
            336, 
            "        yourself.client.logout()", 
            [
              [
                8, 
                12
              ]
            ], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 1
      }, 
      {
        "change": "equal", 
        "collapsable": false, 
        "index": 161, 
        "lines": [
          [
            337, 
            337, 
            "", 
            [], 
            337, 
            "", 
            [], 
            false
          ]
        ], 
        "meta": {
          "left_headers": [], 
          "right_headers": [], 
          "whitespace_chunk": false, 
          "whitespace_lines": []
        }, 
        "numlines": 1
      }, 
      {
        "change": "replace", 
        "collapsable": false, 
        "index": 162, 
        "lines": [
          [
            338, 
            338, 
            "        rsp = self.apiGet(self.get_url())", 
            [
              [
                14, 
                14
              ], 
              [
                26, 
                26
              ]
            ], 
            338, 
            "        rsp = yourself.apiGet(yourself.get_url())", 
            [
              [
                14, 
                18
              ], 
              [
                30, 
                34
              ]
            ], 
            false
          ], 
          [
            339, 
            339, 
            "        self.assertEqual(rsp[&#39;stat&#39;], &#39;ok&#39;)", 
            [
              [
                8, 
                8
              ]
            ], 
            339, 
            "        yourself.assertEqual(rsp[&#39;stat&#39;], &#39;ok&#39;)", 
            [
              [
                8, 
                12
              ]
            ], 
            false
          ], 
          [
            340, 
            340, 
            "        self.assertTrue(&#39;session&#39; in rsp)", 
            [
              [
                8, 
                8
              ]
            ], 
            340, 
            "        yourself.assertTrue(&#39;session&#39; in rsp)", 
            [
              [
                8, 
                12
              ]
            ], 
            false
          ], 
          [
            341, 
            341, 
            "        self.assertFalse(rsp[&#39;session&#39;][&#39;authenticated&#39;])", 
            [
              [
                8, 
                8