Index: infra/services/gnumbd/test/data_test.py |
diff --git a/infra/services/gnumbd/test/data_test.py b/infra/services/gnumbd/test/data_test.py |
deleted file mode 100644 |
index a5f1e6a0b6863472c602c362e9fa14b9135e69f2..0000000000000000000000000000000000000000 |
--- a/infra/services/gnumbd/test/data_test.py |
+++ /dev/null |
@@ -1,442 +0,0 @@ |
-# Copyright 2014 The Chromium Authors. All rights reserved. |
-# Use of this source code is governed by a BSD-style license that can be |
-# found in the LICENSE file. |
- |
-import collections |
-import textwrap |
-import unittest |
- |
-from infra.services.gnumbd.support import data |
- |
-class TestCommitTimestamp(unittest.TestCase): |
- def testBasic(self): |
- TS = '1399330903 -0700' |
- t = data.CommitTimestamp.from_raw(TS) |
- self.assertEqual(1399330903, t.secs) |
- self.assertEqual(7, t.hours) |
- self.assertEqual(0, t.mins) |
- self.assertEqual('-', t.sign) |
- self.assertEqual('-0700', t.tz_str) |
- self.assertEqual(TS, str(t)) |
- self.assertEqual("CommitTimestamp(1399330903, '-', 7, 0)", repr(t)) |
- |
- def testError(self): |
- with self.assertRaises(Exception): |
- data.CommitTimestamp.from_raw(' 1000 +0700') |
- with self.assertRaises(Exception): |
- data.CommitTimestamp.from_raw('1000 +0700 ') |
- with self.assertRaises(Exception): |
- data.CommitTimestamp.from_raw('1000 +0700') |
- with self.assertRaises(Exception): |
- data.CommitTimestamp.from_raw('cat -0700') |
- with self.assertRaises(Exception): |
- data.CommitTimestamp.from_raw('1000 =0700') |
- with self.assertRaises(Exception): |
- data.CommitTimestamp.from_raw('1000 +x100') |
- with self.assertRaises(Exception): |
- data.CommitTimestamp.from_raw('1000 +010x') |
- |
- def testEquality(self): |
- TS = '1399330903 -0700' |
- t = data.CommitTimestamp.from_raw(TS) |
- self.assertEqual(t, t) |
- self.assertIs(t, t) |
- |
- t2 = data.CommitTimestamp.from_raw(TS) |
- self.assertEqual(t, t2) |
- self.assertIsNot(t, t2) |
- |
- self.assertNotEqual(t, t.alter(sign='+')) |
- |
- def testToDict(self): |
- TS = '1399330903 -0700' |
- t = data.CommitTimestamp.from_raw(TS) |
- self.assertEqual(t.to_dict(), { |
- 'secs': 1399330903, 'sign': '-', 'hours': 7, 'mins': 0}) |
- |
- def testAlter(self): |
- TS = '1399330903 -0700' |
- t = data.CommitTimestamp.from_raw(TS) |
- self.assertEqual(str(t.alter(hours=20, sign='+')), '1399330903 +2000') |
- |
- |
-class TestCommitUser(unittest.TestCase): |
- def testBasic(self): |
- USER = 'Bob Boberton <bob@chromium.org> 1399330903 -0700' |
- u = data.CommitUser.from_raw(USER) |
- self.assertEqual(u.email, 'bob@chromium.org') |
- self.assertEqual(u.user, 'Bob Boberton') |
- self.assertEqual(u.timestamp, data.CommitTimestamp(1399330903, '-', 7, 0)) |
- self.assertEqual(str(u), USER) |
- self.assertEqual( |
- repr(u), ( |
- "CommitUser('Bob Boberton', 'bob@chromium.org', " |
- "CommitTimestamp(1399330903, '-', 7, 0))" |
- ) |
- ) |
- |
- USER = 'Bob Boberton < bob@chromium.org> 1399330903 -0700' |
- u = data.CommitUser.from_raw(USER) |
- self.assertEqual(u.email, ' bob@chromium.org') |
- self.assertEqual(u.user, 'Bob Boberton ') |
- self.assertEqual(str(u), USER) |
- |
- def testError(self): |
- with self.assertRaises(Exception): |
- USER = 'Bob Boberton <bob@chromium.org> 1399330903 -0700' |
- data.CommitUser.from_raw(USER) |
- with self.assertRaises(Exception): |
- USER = 'Bob Boberton <bob@chromium.org 1399330903 -0700' |
- data.CommitUser.from_raw(USER) |
- with self.assertRaises(Exception): |
- USER = 'Bob Boberton bob@chromium.org> 1399330903 -0700' |
- data.CommitUser.from_raw(USER) |
- with self.assertRaises(Exception): |
- USER = ' <bob@chromium.org> 1399330903 -0700' |
- data.CommitUser.from_raw(USER) |
- with self.assertRaises(Exception): |
- USER = '<bob@chromium.org> 1399330903 -0700' |
- data.CommitUser.from_raw(USER) |
- with self.assertRaises(Exception): |
- USER = 'Bob <> 1399330903 -0700' |
- data.CommitUser.from_raw(USER) |
- |
- def testToDict(self): |
- USER = 'Bob Boberton <bob@chromium.org> 1399330903 -0700' |
- u = data.CommitUser.from_raw(USER) |
- self.assertEqual(u.to_dict(), { |
- 'user': 'Bob Boberton', 'email': 'bob@chromium.org', |
- 'timestamp': data.CommitTimestamp(1399330903, '-', 7, 0)}) |
- |
- def testEquality(self): |
- USER = 'Bob Boberton <bob@chromium.org> 1399330903 -0700' |
- u = data.CommitUser.from_raw(USER) |
- self.assertEqual(u, u) |
- self.assertIs(u, u) |
- |
- u2 = data.CommitUser.from_raw(USER) |
- self.assertEqual(u, u2) |
- self.assertIsNot(u, u2) |
- |
- self.assertNotEqual(u, u.alter(user='Catty Catterson')) |
- |
- def testAlter(self): |
- USER = 'Bob Boberton <bob@chromium.org> 1399330903 -0700' |
- u = data.CommitUser.from_raw(USER) |
- self.assertEqual(u, u.alter(user='Bob Boberton')) |
- |
- USER = 'Bob Boberton <roberton@chromium.org> 1399330903 -0700' |
- u2 = data.CommitUser.from_raw(USER) |
- nu = u2.alter(email='bob@chromium.org') |
- self.assertEqual(u, nu) |
- |
- self.assertEqual(u2.alter(timestamp=u2.timestamp.alter(secs=100)).timestamp, |
- data.CommitTimestamp.from_raw('100 -0700')) |
- |
- |
-class TestCommitData(unittest.TestCase): |
- def testBasic(self): |
- COMMIT = textwrap.dedent("""\ |
- tree b966f77e58b8a3cf7c02dd0271a4d636c0857af4 |
- parent 1b346cb5145e1fe4c074611e335d8ac96e18c686 |
- parent ab8d80f57839fb03674c0fc69ff5ccf2145fa6e2 |
- author Bob Boberton <bob@chromium.org> 1399330903 -0700 |
- committer Jane January <jane@chromium.org> 1399330903 -0700 |
- |
- Cool commit message |
- """) |
- self.maxDiff = 10000 |
- d = data.CommitData.from_raw(COMMIT) |
- self.assertEqual(d.to_dict(), { |
- 'tree': 'b966f77e58b8a3cf7c02dd0271a4d636c0857af4', |
- 'parents': ('1b346cb5145e1fe4c074611e335d8ac96e18c686', |
- 'ab8d80f57839fb03674c0fc69ff5ccf2145fa6e2'), |
- 'author': data.CommitUser( |
- 'Bob Boberton', 'bob@chromium.org', |
- data.CommitTimestamp(1399330903, '-', 7, 0)), |
- 'committer': data.CommitUser( |
- 'Jane January', 'jane@chromium.org', |
- data.CommitTimestamp(1399330903, '-', 7, 0)), |
- 'message_lines': ('Cool commit message',), |
- 'footer_lines': (), |
- 'other_header_lines': () |
- }) |
- self.assertEqual( |
- repr(d), |
- "CommitData('b966f77e58b8a3cf7c02dd0271a4d636c0857af4', " |
- "('1b346cb5145e1fe4c074611e335d8ac96e18c686', " |
- "'ab8d80f57839fb03674c0fc69ff5ccf2145fa6e2'), " |
- "CommitUser('Bob Boberton', 'bob@chromium.org', " |
- "CommitTimestamp(1399330903, '-', 7, 0)), " |
- "CommitUser('Jane January', 'jane@chromium.org', " |
- "CommitTimestamp(1399330903, '-', 7, 0)), (), " |
- "('Cool commit message',), ())" |
- ) |
- self.assertEqual(str(d), COMMIT) |
- |
- def testFooters(self): |
- COMMIT = textwrap.dedent("""\ |
- tree b966f77e58b8a3cf7c02dd0271a4d636c0857af4 |
- author Bob Boberton <bob@chromium.org> 1399330903 -0700 |
- committer Jane January <jane@chromium.org> 1399330903 -0700 |
- |
- Cool commit message |
- with: misleading footers |
- |
- Xenophobe: False |
- Cool-Footer: 100 |
- Double-Awesome: 100 |
- Cool-Footer: Redux |
- """) |
- d = data.CommitData.from_raw(COMMIT) |
- self.assertEqual(d, d) |
- self.assertNotEqual(d, {}) |
- self.assertDictContainsSubset({ |
- 'tree': 'b966f77e58b8a3cf7c02dd0271a4d636c0857af4', |
- 'author': data.CommitUser( |
- 'Bob Boberton', 'bob@chromium.org', |
- data.CommitTimestamp(1399330903, '-', 7, 0)), |
- 'committer': data.CommitUser( |
- 'Jane January', 'jane@chromium.org', |
- data.CommitTimestamp(1399330903, '-', 7, 0)) |
- }, d.to_dict()) |
- self.assertSequenceEqual( |
- d.message_lines, ['Cool commit message', 'with: misleading footers']) |
- self.assertSequenceEqual( |
- d.footer_lines, |
- [('Xenophobe', 'False'), ('Cool-Footer', '100'), |
- ('Double-Awesome', '100'), ('Cool-Footer', 'Redux')]) |
- self.assertEqual(d.footers, { |
- 'Cool-Footer': ('100', 'Redux'), |
- 'Double-Awesome': ('100',), |
- 'Xenophobe': ('False',), |
- }) |
- self.assertSequenceEqual(['Xenophobe', 'Cool-Footer', 'Double-Awesome'], |
- d.footers.keys()) |
- self.assertEqual(str(d), COMMIT) |
- |
- def testMisleadingFooters(self): |
- COMMIT = textwrap.dedent("""\ |
- tree b966f77e58b8a3cf7c02dd0271a4d636c0857af4 |
- author Bob Boberton <bob@chromium.org> 1399330903 -0700 |
- committer Jane January <jane@chromium.org> 1399330903 -0700 |
- |
- Cool commit message |
- with: misleading footers |
- """) |
- d = data.CommitData.from_raw(COMMIT) |
- self.assertDictContainsSubset({ |
- 'tree': 'b966f77e58b8a3cf7c02dd0271a4d636c0857af4', |
- 'author': data.CommitUser( |
- 'Bob Boberton', 'bob@chromium.org', |
- data.CommitTimestamp(1399330903, '-', 7, 0)), |
- 'committer': data.CommitUser( |
- 'Jane January', 'jane@chromium.org', |
- data.CommitTimestamp(1399330903, '-', 7, 0)), |
- }, d.to_dict()) |
- self.assertSequenceEqual( |
- d.message_lines, ['Cool commit message', 'with: misleading footers']) |
- self.assertSequenceEqual( |
- d.footer_lines, []) |
- self.assertEqual(d.footers, {}) |
- |
- def testAlter(self): |
- TREE1 = "tree b966f77e58b8a3cf7c02dd0271a4d636c0857af4\n" |
- |
- TREE2 = "tree deadbeefdeadbeefdeadbeefdeadbeefdeadbeef\n" |
- |
- POSTFIX = textwrap.dedent("""\ |
- author Bob Boberton <bob@chromium.org> 1399330903 -0700 |
- committer Jane January <jane@chromium.org> 1399330903 -0700 |
- |
- Cool commit message |
- with: misleading footers |
- """) |
- |
- d = data.CommitData.from_raw(TREE1 + POSTFIX) |
- d2 = data.CommitData.from_raw(TREE2 + POSTFIX) |
- |
- self.assertEqual( |
- d.alter(tree='deadbeefdeadbeefdeadbeefdeadbeefdeadbeef'), d2) |
- |
- HEADERS = textwrap.dedent("""\ |
- tree b966f77e58b8a3cf7c02dd0271a4d636c0857af4 |
- author Bob Boberton <bob@chromium.org> 1399330903 -0700 |
- committer Jane January <jane@chromium.org> 1399330903 -0700 |
- meep happytimes |
- |
- Cool commit message |
- with: misleading footers |
- """) |
- self.assertEqual(str(d.alter(other_headers={'meep': ['happytimes']})), |
- HEADERS) |
- |
- def testAlterReorder(self): |
- PREFIX = textwrap.dedent("""\ |
- tree b966f77e58b8a3cf7c02dd0271a4d636c0857af4 |
- author Bob Boberton <bob@chromium.org> 1399330903 -0700 |
- committer Jane January <jane@chromium.org> 1399330903 -0700 |
- |
- Cool commit message |
- with: misleading footers |
- |
- """) |
- COMMIT = PREFIX + textwrap.dedent("""\ |
- Xenophobe: False |
- Cool-Footer: 100 |
- Double-Awesome: 100 |
- Cool-Footer: Redux |
- """) |
- NEW_COMMIT = PREFIX + textwrap.dedent("""\ |
- Xenophobe: False |
- Cool-Footer: 100 |
- Cool-Footer: Redux |
- Double-Awesome: 100 |
- """) |
- d = data.CommitData.from_raw(COMMIT) |
- nd = data.CommitData.from_raw(NEW_COMMIT) |
- self.assertEqual(d, d) |
- self.assertNotEqual(d, nd) |
- |
- def testAlterAdd(self): |
- PREFIX = textwrap.dedent("""\ |
- tree b966f77e58b8a3cf7c02dd0271a4d636c0857af4 |
- author Bob Boberton <bob@chromium.org> 1399330903 -0700 |
- committer Jane January <jane@chromium.org> 1399330903 -0700 |
- |
- Cool commit message |
- with: misleading footers |
- |
- """) |
- COMMIT = PREFIX + textwrap.dedent("""\ |
- Xenophobe: False |
- Cool-Footer: 100 |
- Double-Awesome: 100 |
- Cool-Footer: Redux |
- """) |
- NEW_COMMIT = PREFIX + textwrap.dedent("""\ |
- Cool-Footer: 100 |
- Cool-Footer: Redux |
- Double-Awesome: 100 |
- Fungus: neat! |
- """) |
- d = data.CommitData.from_raw(COMMIT) |
- nd = data.CommitData.from_raw(NEW_COMMIT) |
- |
- f = {'Fungus': ('neat!',)} |
- f['Xenophobe'] = None |
- self.assertEqual(d.alter(footers=f), nd) |
- |
- def testAlterDel(self): |
- PREFIX = textwrap.dedent("""\ |
- tree b966f77e58b8a3cf7c02dd0271a4d636c0857af4 |
- author Bob Boberton <bob@chromium.org> 1399330903 -0700 |
- committer Jane January <jane@chromium.org> 1399330903 -0700 |
- |
- Cool commit message |
- with: misleading footers |
- |
- """) |
- COMMIT = PREFIX + textwrap.dedent("""\ |
- Xenophobe: False |
- Cool-Footer: 100 |
- Double-Awesome: 100 |
- Cool-Footer: Redux |
- """) |
- NEW_COMMIT = PREFIX[:-1] |
- d = data.CommitData.from_raw(COMMIT) |
- nd = data.CommitData.from_raw(NEW_COMMIT) |
- to_nuke = {k: None for k in d.footers} |
- to_nuke['Non-exist'] = None |
- self.assertEqual(d.alter(footers=to_nuke), nd) |
- |
- def testAlterAppend(self): |
- PREFIX = textwrap.dedent("""\ |
- tree b966f77e58b8a3cf7c02dd0271a4d636c0857af4 |
- author Bob Boberton <bob@chromium.org> 1399330903 -0700 |
- committer Jane January <jane@chromium.org> 1399330903 -0700 |
- |
- Cool commit message |
- with: misleading footers |
- |
- """) |
- COMMIT = PREFIX + textwrap.dedent("""\ |
- Xenophobe: False |
- Cool-Footer: 100 |
- Double-Awesome: 100 |
- Cool-Footer: Redux |
- """) |
- NEW_COMMIT = PREFIX + textwrap.dedent("""\ |
- Xenophobe: False |
- Cool-Footer: 100 |
- Cool-Footer: Redux |
- Cool-Footer: Sweet |
- Double-Awesome: 100 |
- """) |
- d = data.CommitData.from_raw(COMMIT) |
- nd = data.CommitData.from_raw(NEW_COMMIT) |
- self.assertEqual( |
- d.alter( |
- footers={'Cool-Footer': d.footers['Cool-Footer'] + ('Sweet',)} |
- ), |
- nd) |
- |
- def testOtherHeaders(self): |
- COMMIT = textwrap.dedent("""\ |
- tree b966f77e58b8a3cf7c02dd0271a4d636c0857af4 |
- parent 1b346cb5145e1fe4c074611e335d8ac96e18c686 |
- author Bob Boberton <bob@chromium.org> 1399330903 -0700 |
- committer Jane January <jane@chromium.org> 1399330903 -0700 |
- generation 300 |
- apple-sauce cat food |
- generation 100 |
- |
- Cool commit message |
- with: misleading footers |
- """) |
- c = data.CommitData.from_raw(COMMIT) |
- expect = collections.OrderedDict() |
- expect['generation'] = ('300', '100') |
- expect['apple-sauce'] = ('cat food',) |
- self.assertEqual(c.other_headers, expect) |
- self.assertEqual(str(c), COMMIT) |
- |
- # Error cases |
- def testDupTree(self): |
- COMMIT = textwrap.dedent("""\ |
- tree b966f77e58b8a3cf7c02dd0271a4d636c0857af4 |
- tree b966f77e58b8a3cf7c02dd0271a4d636c0857af4 |
- parent 1b346cb5145e1fe4c074611e335d8ac96e18c686 |
- author Bob Boberton <bob@chromium.org> 1399330903 -0700 |
- committer Jane January <jane@chromium.org> 1399330903 -0700 |
- |
- Cool commit message |
- with: misleading footers |
- """) |
- with self.assertRaises(data.UnexpectedHeader): |
- data.CommitData.from_raw(COMMIT) |
- |
- def testDupUser(self): |
- COMMIT = textwrap.dedent("""\ |
- tree b966f77e58b8a3cf7c02dd0271a4d636c0857af4 |
- parent 1b346cb5145e1fe4c074611e335d8ac96e18c686 |
- author Bob Boberton <bob@chromium.org> 1399330903 -0700 |
- author Bob Boberton <bob@chromium.org> 1399330903 -0700 |
- committer Jane January <jane@chromium.org> 1399330903 -0700 |
- |
- Cool commit message |
- with: misleading footers |
- """) |
- with self.assertRaises(data.UnexpectedHeader): |
- data.CommitData.from_raw(COMMIT) |
- |
- def testPartial(self): |
- COMMIT = textwrap.dedent("""\ |
- tree deadbeefdeadbeefdeadbeefdeadbeefdeadbeef |
- """) |
- with self.assertRaises(data.PartialCommit): |
- data.CommitData.from_raw(COMMIT) |
- |
- def testEmpty(self): |
- with self.assertRaises(data.PartialCommit): |
- data.CommitData.from_raw('') |