| OLD | NEW |
| (Empty) |
| 1 # Copyright 2014 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 infra.services.gnumbd.support import config_ref, git | |
| 6 from infra.services.gnumbd.test import git_test | |
| 7 | |
| 8 class TestConfigRef(git_test.TestBasis): | |
| 9 def writeConfig(self, config_data): | |
| 10 ref = 'refs/metaconfig' | |
| 11 def inner(): | |
| 12 g = self.repo.git | |
| 13 if g('rev-parse', ref).stdout.strip() != ref: | |
| 14 g('checkout', ref) | |
| 15 else: | |
| 16 g('checkout', '--orphan', 'config') | |
| 17 g('rm', '-rf', '.') | |
| 18 with open('config.json', 'w') as f: | |
| 19 f.write(config_data) | |
| 20 g('add', 'config.json') | |
| 21 self.repo.git_commit('a bad config file') | |
| 22 g('update-ref', ref, 'HEAD') | |
| 23 self.repo.run(inner) | |
| 24 | |
| 25 def testNonExist(self): | |
| 26 r = self.mkRepo() | |
| 27 c = config_ref.ConfigRef(git.Ref(r, 'refs/metaconfig')) | |
| 28 self.assertEqual(c.current, c.DEFAULTS) | |
| 29 self.assertEqual(c['interval'], c.DEFAULTS['interval']) | |
| 30 | |
| 31 def testExistsBad(self): | |
| 32 self.writeConfig("not valid config") | |
| 33 r = self.mkRepo() | |
| 34 c = config_ref.ConfigRef(git.Ref(r, 'refs/metaconfig')) | |
| 35 c.evaluate() | |
| 36 self.assertEqual(c.current, c.DEFAULTS) | |
| 37 | |
| 38 self.writeConfig("[]") | |
| 39 self.capture_stdio(r.run, 'fetch') | |
| 40 c.evaluate() | |
| 41 self.assertEqual(c.current, c.DEFAULTS) | |
| 42 | |
| 43 def testExistsGood(self): | |
| 44 self.writeConfig('{"interval": 100}') | |
| 45 r = self.mkRepo() | |
| 46 c = config_ref.ConfigRef(git.Ref(r, 'refs/metaconfig')) | |
| 47 self.assertAlmostEqual(c['interval'], 100.0) | |
| 48 | |
| 49 self.writeConfig('{"interval": "cat"}') | |
| 50 self.capture_stdio(r.run, 'fetch') | |
| 51 c.evaluate() | |
| 52 self.assertAlmostEqual(c['interval'], 100.0) | |
| OLD | NEW |