Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(49)

Side by Side Diff: chrome/common/extensions/docs/server2/admin_servlets_test.py

Issue 1151283007: Docserver overhaul: Gitiles away from me. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Remove inform_users template to fix presubmit failure (it's now a redirect) Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 #!/usr/bin/env python
2 # Copyright 2015 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file.
5
6 import unittest
7
8 from admin_servlets import ResetCommitServlet
9 from commit_tracker import CommitTracker
10 from object_store_creator import ObjectStoreCreator
11 from servlet import Request
12
13
14 _COMMIT_HISTORY_DATA = (
15 '1234556789abcdef1234556789abcdef12345567',
16 'f00f00f00f00f00f00f00f00f00f00f00f00f00f',
17 '1010101010101010101010101010101010101010',
18 'abcdefabcdefabcdefabcdefabcdefabcdefabcd',
19 '4242424242424242424242424242424242424242',
20 )
21
22
23 class _ResetCommitDelegate(ResetCommitServlet.Delegate):
24 def __init__(self, commit_tracker):
25 self._commit_tracker = commit_tracker
26
27 def CreateCommitTracker(self):
28 return self._commit_tracker
29
30
31 class AdminServletsTest(unittest.TestCase):
32 def setUp(self):
33 object_store_creator = ObjectStoreCreator(start_empty=True)
34 self._commit_tracker = CommitTracker(object_store_creator)
35 for id in _COMMIT_HISTORY_DATA:
36 self._commit_tracker.Set('master', id).Get()
37
38 def _ResetCommit(self, commit_name, commit_id):
39 return ResetCommitServlet(
40 Request.ForTest('%s/%s' % (commit_name, commit_id)),
41 _ResetCommitDelegate(self._commit_tracker)).Get()
42
43 def _AssertBadRequest(self, commit_name, commit_id):
44 response = self._ResetCommit(commit_name, commit_id)
45 self.assertEqual(response.status, 400,
46 'Should have failed to reset to commit %s to %s.' %
47 (commit_name, commit_id))
48
49 def _AssertOk(self, commit_name, commit_id):
50 response = self._ResetCommit(commit_name, commit_id)
51 self.assertEqual(response.status, 200,
52 'Failed to reset commit %s to %s.' % (commit_name, commit_id))
53
54 def testResetCommitServlet(self):
55 # Make sure all the valid commits can be used for reset.
56 for id in _COMMIT_HISTORY_DATA:
57 self._AssertOk('master', id)
58
59 # Non-existent commit should fail to update
60 self._AssertBadRequest('master',
61 'b000000000000000000000000000000000000000')
62
63 # Commit 'master' should still point to the last valid entry
64 self.assertEqual(self._commit_tracker.Get('master').Get(),
65 _COMMIT_HISTORY_DATA[-1])
66
67 # Reset to a valid commit but older
68 self._AssertOk('master', _COMMIT_HISTORY_DATA[0])
69
70 # Commit 'master' should point to the first history entry
71 self.assertEqual(self._commit_tracker.Get('master').Get(),
72 _COMMIT_HISTORY_DATA[0])
73
74 # Add a new entry to the history and validate that it can be used for reset.
75 _NEW_ENTRY = '9999999999999999999999999999999999999999'
76 self._commit_tracker.Set('master', _NEW_ENTRY).Get()
77 self._AssertOk('master', _NEW_ENTRY)
78
79 # Add a bunch (> 50) of entries to ensure that _NEW_ENTRY has been flushed
80 # out of the history.
81 for i in xrange(0, 20):
82 for id in _COMMIT_HISTORY_DATA:
83 self._commit_tracker.Set('master', id).Get()
84
85 # Verify that _NEW_ENTRY is no longer valid for reset.
86 self._AssertBadRequest('master', _NEW_ENTRY)
87
88 if __name__ == '__main__':
89 unittest.main()
OLDNEW
« no previous file with comments | « chrome/common/extensions/docs/server2/admin_servlets.py ('k') | chrome/common/extensions/docs/server2/api_data_source.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698