?? svn_fs.py
字號:
def test_get_path_history_copied_dir(self): history = self.repos.get_path_history('/branches/v1x', None) self.assertEqual(('branches/v1x', 12, 'copy'), history.next()) self.assertEqual(('tags/v1.1', 10, 'unknown'), history.next()) self.assertEqual(('branches/v1x', 11, 'delete'), history.next()) self.assertEqual(('branches/v1x', 9, 'edit'), history.next()) self.assertEqual(('branches/v1x', 8, 'copy'), history.next()) self.assertEqual(('tags/v1', 7, 'unknown'), history.next()) self.assertRaises(StopIteration, history.next) # Diffs def _cmp_diff(self, expected, got): if expected[0]: old = self.repos.get_node(*expected[0]) self.assertEqual((old.path, old.rev), (got[0].path, got[0].rev)) if expected[1]: new = self.repos.get_node(*expected[1]) self.assertEqual((new.path, new.rev), (got[1].path, got[1].rev)) self.assertEqual(expected[2], (got[2], got[3])) def test_diff_file_different_revs(self): diffs = self.repos.get_changes('trunk/README.txt', 2, 'trunk/README.txt', 3) self._cmp_diff((('trunk/README.txt', 2), ('trunk/README.txt', 3), (Node.FILE, Changeset.EDIT)), diffs.next()) self.assertRaises(StopIteration, diffs.next) def test_diff_file_different_files(self): diffs = self.repos.get_changes('branches/v1x/README.txt', 12, 'branches/v1x/README2.txt', 12) self._cmp_diff((('branches/v1x/README.txt', 12), ('branches/v1x/README2.txt', 12), (Node.FILE, Changeset.EDIT)), diffs.next()) self.assertRaises(StopIteration, diffs.next) def test_diff_file_no_change(self): diffs = self.repos.get_changes('trunk/README.txt', 7, 'tags/v1/README.txt', 7) self.assertRaises(StopIteration, diffs.next) def test_diff_dir_different_revs(self): diffs = self.repos.get_changes('trunk', 4, 'trunk', 8) self._cmp_diff((None, ('trunk/dir1/dir2', 8), (Node.DIRECTORY, Changeset.ADD)), diffs.next()) self._cmp_diff((None, ('trunk/dir1/dir3', 8), (Node.DIRECTORY, Changeset.ADD)), diffs.next()) self._cmp_diff((None, ('trunk/README2.txt', 6), (Node.FILE, Changeset.ADD)), diffs.next()) self._cmp_diff((('trunk/dir2', 4), None, (Node.DIRECTORY, Changeset.DELETE)), diffs.next()) self._cmp_diff((('trunk/dir3', 4), None, (Node.DIRECTORY, Changeset.DELETE)), diffs.next()) self.assertRaises(StopIteration, diffs.next) def test_diff_dir_different_dirs(self): diffs = self.repos.get_changes('trunk', 1, 'branches/v1x', 12) self._cmp_diff((None, ('branches/v1x/dir1', 12), (Node.DIRECTORY, Changeset.ADD)), diffs.next()) self._cmp_diff((None, ('branches/v1x/dir1/dir2', 12), (Node.DIRECTORY, Changeset.ADD)), diffs.next()) self._cmp_diff((None, ('branches/v1x/dir1/dir3', 12), (Node.DIRECTORY, Changeset.ADD)), diffs.next()) self._cmp_diff((None, ('branches/v1x/README.txt', 12), (Node.FILE, Changeset.ADD)), diffs.next()) self._cmp_diff((None, ('branches/v1x/README2.txt', 12), (Node.FILE, Changeset.ADD)), diffs.next()) self.assertRaises(StopIteration, diffs.next) def test_diff_dir_no_change(self): diffs = self.repos.get_changes('trunk', 7, 'tags/v1', 7) self.assertRaises(StopIteration, diffs.next) # Changesets def test_changeset_repos_creation(self): chgset = self.repos.get_changeset(0) self.assertEqual(0, chgset.rev) self.assertEqual('', chgset.message) self.assertEqual('', chgset.author) self.assertEqual(datetime(2005,4,1,9,57,41,0,utc), chgset.date) self.assertRaises(StopIteration, chgset.get_changes().next) def test_changeset_added_dirs(self): chgset = self.repos.get_changeset(1) self.assertEqual(1, chgset.rev) self.assertEqual('Initial directory layout.', chgset.message) self.assertEqual('john', chgset.author) self.assertEqual(datetime(2005,4,1,10,0,52,0,utc), chgset.date) changes = chgset.get_changes() self.assertEqual(('branches', Node.DIRECTORY, Changeset.ADD, None, -1), changes.next()) self.assertEqual(('tags', Node.DIRECTORY, Changeset.ADD, None, -1), changes.next()) self.assertEqual(('trunk', Node.DIRECTORY, Changeset.ADD, None, -1), changes.next()) self.assertRaises(StopIteration, changes.next) def test_changeset_file_edit(self): chgset = self.repos.get_changeset(3) self.assertEqual(3, chgset.rev) self.assertEqual('Fixed README.\n', chgset.message) self.assertEqual('kate', chgset.author) self.assertEqual(datetime(2005,4,1,13,24,58,0,utc), chgset.date) changes = chgset.get_changes() self.assertEqual(('trunk/README.txt', Node.FILE, Changeset.EDIT, 'trunk/README.txt', 2), changes.next()) self.assertRaises(StopIteration, changes.next) def test_changeset_dir_moves(self): chgset = self.repos.get_changeset(5) self.assertEqual(5, chgset.rev) self.assertEqual('Moved directories.', chgset.message) self.assertEqual('kate', chgset.author) self.assertEqual(datetime(2005,4,1,16,25,39,0,utc), chgset.date) changes = chgset.get_changes() self.assertEqual(('trunk/dir1/dir2', Node.DIRECTORY, Changeset.MOVE, 'trunk/dir2', 4), changes.next()) self.assertEqual(('trunk/dir1/dir3', Node.DIRECTORY, Changeset.MOVE, 'trunk/dir3', 4), changes.next()) self.assertRaises(StopIteration, changes.next) def test_changeset_file_copy(self): chgset = self.repos.get_changeset(6) self.assertEqual(6, chgset.rev) self.assertEqual('More things to read', chgset.message) self.assertEqual('john', chgset.author) self.assertEqual(datetime(2005,4,1,18,56,46,0,utc), chgset.date) changes = chgset.get_changes() self.assertEqual(('trunk/README2.txt', Node.FILE, Changeset.COPY, 'trunk/README.txt', 3), changes.next()) self.assertRaises(StopIteration, changes.next) def test_changeset_root_propset(self): chgset = self.repos.get_changeset(13) self.assertEqual(13, chgset.rev) self.assertEqual('Setting property on the repository_dir root', chgset.message) changes = chgset.get_changes() self.assertEqual(('/', Node.DIRECTORY, Changeset.EDIT, '/', 12), changes.next()) self.assertEqual(('trunk', Node.DIRECTORY, Changeset.EDIT, 'trunk', 6), changes.next()) self.assertRaises(StopIteration, changes.next) def test_changeset_base_path_rev(self): chgset = self.repos.get_changeset(9) self.assertEqual(9, chgset.rev) changes = chgset.get_changes() self.assertEqual(('branches/v1x/README.txt', Node.FILE, Changeset.EDIT, 'trunk/README.txt', 3), changes.next()) self.assertRaises(StopIteration, changes.next) def test_changeset_rename_and_edit(self): chgset = self.repos.get_changeset(14) self.assertEqual(14, chgset.rev) changes = chgset.get_changes() self.assertEqual(('trunk/README3.txt', Node.FILE, Changeset.MOVE, 'trunk/README2.txt', 13), changes.next()) self.assertRaises(StopIteration, changes.next) def test_changeset_edit_after_wc2wc_copy__original_deleted(self): chgset = self.repos.get_changeset(16) self.assertEqual(16, chgset.rev) changes = chgset.get_changes() self.assertEqual(('branches/v2', Node.DIRECTORY, Changeset.COPY, 'tags/v1.1', 14), changes.next()) self.assertEqual(('branches/v2/README2.txt', Node.FILE, Changeset.EDIT, 'trunk/README2.txt', 6), changes.next()) self.assertRaises(StopIteration, changes.next) def test_fancy_rename_double_delete(self): chgset = self.repos.get_changeset(19) self.assertEqual(19, chgset.rev) changes = chgset.get_changes() self.assertEqual(('trunk/Xprimary_proc/Xprimary_pkg.vhd', Node.FILE, Changeset.DELETE, 'trunk/Xprimary_proc/Xprimary_pkg.vhd', 18), changes.next()) self.assertEqual(('trunk/mpp_proc', Node.DIRECTORY, Changeset.COPY, 'trunk/Xprimary_proc', 18), changes.next()) self.assertEqual(('trunk/mpp_proc/Xprimary_proc', Node.DIRECTORY, Changeset.MOVE, 'trunk/Xprimary_proc', 18), changes.next()) self.assertRaises(StopIteration, changes.next) def test_changeset_utf_8(self): chgset = self.repos.get_changeset(20) self.assertEqual(20, chgset.rev) self.assertEqual(u'Chez moi 莽a marche\n', chgset.message) self.assertEqual(u'Jonas Borgstr枚m', chgset.author)class ScopedSubversionRepositoryTestCase(unittest.TestCase): def setUp(self): self.repos = SubversionRepository(REPOS_PATH + '/trunk', None, logger_factory('test')) def tearDown(self): self.repos = None def test_repos_normalize_path(self): self.assertEqual('/', self.repos.normalize_path('/')) self.assertEqual('/', self.repos.normalize_path('')) self.assertEqual('/', self.repos.normalize_path(None)) self.assertEqual('dir1', self.repos.normalize_path('dir1')) self.assertEqual('dir1', self.repos.normalize_path('/dir1')) self.assertEqual('dir1', self.repos.normalize_path('dir1/')) self.assertEqual('dir1', self.repos.normalize_path('/dir1/')) def test_repos_normalize_rev(self): self.assertEqual(HEAD, self.repos.normalize_rev('latest')) self.assertEqual(HEAD, self.repos.normalize_rev('head')) self.assertEqual(HEAD, self.repos.normalize_rev('')) self.assertEqual(HEAD, self.repos.normalize_rev(None)) self.assertEqual(5, self.repos.normalize_rev('5')) self.assertEqual(5, self.repos.normalize_rev(5)) def test_rev_navigation(self): self.assertEqual(1, self.repos.oldest_rev) self.assertEqual(None, self.repos.previous_rev(0)) self.assertEqual(1, self.repos.previous_rev(2)) self.assertEqual(HEAD, self.repos.youngest_rev) self.assertEqual(2, self.repos.next_rev(1)) self.assertEqual(3, self.repos.next_rev(2)) # ... self.assertEqual(None, self.repos.next_rev(HEAD)) def test_has_node(self): self.assertEqual(False, self.repos.has_node('/dir1', 3)) self.assertEqual(True, self.repos.has_node('/dir1', 4)) def test_get_node(self): node = self.repos.get_node('/dir1') self.assertEqual('dir1', node.name) self.assertEqual('/dir1', node.path) self.assertEqual(Node.DIRECTORY, node.kind) self.assertEqual(5, node.rev) self.assertEqual(datetime(2005,4,1,16,25,39,0,utc), node.last_modified) node = self.repos.get_node('/README.txt') self.assertEqual('README.txt', node.name) self.assertEqual('/README.txt', node.path) self.assertEqual(Node.FILE, node.kind) self.assertEqual(3, node.rev)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -