OLD | NEW |
| (Empty) |
1 # Copyright 2015 The Chromium Authors. All rights reserved. | |
2 # Use of this source code is governed by a BSD-style license that can be | |
3 # found in the LICENSE file. | |
4 | |
5 from google.appengine.ext import ndb | |
6 from google.appengine.api import users | |
7 from testing_utils import testing | |
8 | |
9 from model.versioned_config import VersionedConfig | |
10 | |
11 | |
12 class _Config(VersionedConfig): | |
13 a = ndb.IntegerProperty(indexed=False, default=0) | |
14 | |
15 | |
16 class VersionedConfigTest(testing.AppengineTestCase): | |
17 | |
18 def _CreateFirstVersion(self): | |
19 config = _Config.Get() | |
20 config.Update(users.User(email='admin@chromium.org'), True, a=1) | |
21 | |
22 def testGetWhenNoConfigCreatedYet(self): | |
23 config = _Config.Get() | |
24 self.assertIsNotNone(config) | |
25 self.assertEqual(0, config.a) | |
26 | |
27 def testNonAdminCanNotUpdate(self): | |
28 config = _Config.Get() | |
29 with self.assertRaises(Exception): | |
30 config.Update(users.User(email='admin@chromium.org'), False, a=1) | |
31 | |
32 def testUpdateWhenChanged(self): | |
33 self._CreateFirstVersion() | |
34 config = _Config.Get() | |
35 self.assertIsNotNone(config) | |
36 self.assertTrue(config.Update(users.User(email='admin@chromium.org'), True, | |
37 a=2)) | |
38 | |
39 config = _Config.Get() | |
40 self.assertIsNotNone(config) | |
41 self.assertEqual(2, config.version_number) | |
42 self.assertEqual(2, config.a) | |
43 | |
44 def testNotUpdateWhenNotChanged(self): | |
45 self._CreateFirstVersion() | |
46 config = _Config.Get() | |
47 self.assertIsNotNone(config) | |
48 self.assertFalse(config.Update(users.User(email='admin@chromium.org'), True, | |
49 a=1)) | |
50 | |
51 config = _Config.Get() | |
52 self.assertIsNotNone(config) | |
53 self.assertEqual(1, config.version_number) | |
54 self.assertEqual(1, config.a) | |
OLD | NEW |