📄 svn_fs.py
字号:
self.assertEqual(datetime(2005,4,1,13,24,58,0,utc), node.last_modified) def test_get_node_specific_rev(self): node = self.repos.get_node('/dir1', 4) self.assertEqual('dir1', node.name) self.assertEqual('/dir1', node.path) self.assertEqual(Node.DIRECTORY, node.kind) self.assertEqual(4, node.rev) self.assertEqual(datetime(2005,4,1,15,42,35,0,utc), node.last_modified) node = self.repos.get_node('/README.txt', 2) self.assertEqual('README.txt', node.name) self.assertEqual('/README.txt', node.path) self.assertEqual(Node.FILE, node.kind) self.assertEqual(2, node.rev) self.assertEqual(datetime(2005,4,1,13,12,18,0,utc), node.last_modified) def test_get_dir_entries(self): node = self.repos.get_node('/') entries = node.get_entries() self.assertEqual('dir1', entries.next().name) self.assertEqual('mpp_proc', entries.next().name) self.assertEqual('v2', entries.next().name) self.assertEqual('README3.txt', entries.next().name) self.assertEqual(u'R\xe9sum\xe9.txt', entries.next().name) self.assertEqual('README.txt', entries.next().name) self.assertRaises(StopIteration, entries.next) def test_get_file_entries(self): node = self.repos.get_node('/README.txt') entries = node.get_entries() self.assertRaises(StopIteration, entries.next) def test_get_dir_content(self): node = self.repos.get_node('/dir1') self.assertEqual(None, node.content_length) self.assertEqual(None, node.content_type) self.assertEqual(None, node.get_content()) def test_get_file_content(self): node = self.repos.get_node('/README.txt') self.assertEqual(8, node.content_length) self.assertEqual('text/plain', node.content_type) self.assertEqual('A test.\n', node.get_content().read()) def test_get_dir_properties(self): f = self.repos.get_node('/dir1') props = f.get_properties() self.assertEqual(0, len(props)) def test_get_file_properties(self): f = self.repos.get_node('/README.txt') props = f.get_properties() self.assertEqual('native', props['svn:eol-style']) self.assertEqual('text/plain', props['svn:mime-type']) # Revision Log / node history def test_get_node_history(self): node = self.repos.get_node('/README3.txt') history = node.get_history() self.assertEqual(('README3.txt', 14, 'copy'), history.next()) self.assertEqual(('README2.txt', 6, 'copy'), history.next()) self.assertEqual(('README.txt', 3, 'edit'), history.next()) self.assertEqual(('README.txt', 2, 'add'), history.next()) self.assertRaises(StopIteration, history.next) def test_get_node_history_follow_copy(self): node = self.repos.get_node('dir1/dir3', ) history = node.get_history() self.assertEqual(('dir1/dir3', 5, 'copy'), history.next()) self.assertEqual(('dir3', 4, 'add'), history.next()) self.assertRaises(StopIteration, history.next) # Revision Log / path history def test_get_path_history(self): history = self.repos.get_path_history('dir3', None) self.assertEqual(('dir3', 5, 'delete'), history.next()) self.assertEqual(('dir3', 4, 'add'), history.next()) self.assertRaises(StopIteration, history.next) def test_get_path_history_copied_file(self): history = self.repos.get_path_history('README3.txt', None) self.assertEqual(('README3.txt', 14, 'copy'), history.next()) self.assertEqual(('README2.txt', 6, 'unknown'), history.next()) self.assertRaises(StopIteration, history.next) def test_get_path_history_copied_dir(self): history = self.repos.get_path_history('dir1/dir3', None) self.assertEqual(('dir1/dir3', 5, 'copy'), history.next()) self.assertEqual(('dir3', 4, 'unknown'), history.next()) self.assertRaises(StopIteration, history.next) 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(4) self.assertEqual(4, chgset.rev) self.assertEqual('More directories.', chgset.message) self.assertEqual('john', chgset.author) self.assertEqual(datetime(2005,4,1,15,42,35,0,utc), chgset.date) changes = chgset.get_changes() self.assertEqual(('dir1', Node.DIRECTORY, 'add', None, -1), changes.next()) self.assertEqual(('dir2', Node.DIRECTORY, 'add', None, -1), changes.next()) self.assertEqual(('dir3', Node.DIRECTORY, '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(('README.txt', Node.FILE, Changeset.EDIT, '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(('dir1/dir2', Node.DIRECTORY, Changeset.MOVE, 'dir2', 4), changes.next()) self.assertEqual(('dir1/dir3', Node.DIRECTORY, Changeset.MOVE, '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(('README2.txt', Node.FILE, Changeset.COPY, '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, '/', 6), changes.next()) self.assertRaises(StopIteration, changes.next) def test_changeset_copy_from_outside_and_delete(self): chgset = self.repos.get_changeset(21) self.assertEqual(21, chgset.rev) self.assertEqual('copy from outside of the scope + delete', chgset.message) changes = chgset.get_changes() self.assertEqual(('v2', 'dir', Changeset.ADD, None, -1), changes.next()) self.assertRaises(StopIteration, changes.next)class RecentPathScopedRepositoryTestCase(unittest.TestCase): def setUp(self): self.repos = SubversionRepository(REPOS_PATH + '/trunk/dir1', None, logger_factory('test')) def tearDown(self): self.repos = None def test_rev_navigation(self): self.assertEqual(False, self.repos.has_node('/', 1)) self.assertEqual(False, self.repos.has_node('/', 2)) self.assertEqual(False, self.repos.has_node('/', 3)) self.assertEqual(True, self.repos.has_node('/', 4)) # We can't make this work anymore because of #5213. # self.assertEqual(4, self.repos.oldest_rev) self.assertEqual(1, self.repos.oldest_rev) # should really be 4... self.assertEqual(None, self.repos.previous_rev(4))class NonSelfContainedScopedTestCase(unittest.TestCase): def setUp(self): self.repos = SubversionRepository(REPOS_PATH + '/tags/v1', None, logger_factory('test')) def tearDown(self): self.repos = None def test_mixed_changeset(self): chgset = self.repos.get_changeset(7) self.assertEqual(7, chgset.rev) changes = chgset.get_changes() self.assertEqual(('/', Node.DIRECTORY, Changeset.ADD, None, -1), changes.next()) self.assertRaises(TracError, lambda: self.repos.get_node(None, 6))class AnotherNonSelfContainedScopedTestCase(unittest.TestCase): def setUp(self): self.repos = SubversionRepository(REPOS_PATH + '/branches', None, logger_factory('test')) def tearDown(self): self.repos = None def test_mixed_changeset_with_edit(self): chgset = self.repos.get_changeset(9) self.assertEqual(9, chgset.rev) changes = chgset.get_changes() self.assertEqual(('v1x/README.txt', Node.FILE, Changeset.EDIT, 'v1x/README.txt', 8), changes.next())def suite(): global has_svn suite = unittest.TestSuite() if has_svn: suite.addTest(unittest.makeSuite(SubversionRepositoryTestCase, 'test', suiteClass=SubversionRepositoryTestSetup)) suite.addTest(unittest.makeSuite(ScopedSubversionRepositoryTestCase, 'test', suiteClass=SubversionRepositoryTestSetup)) suite.addTest(unittest.makeSuite(RecentPathScopedRepositoryTestCase, 'test', suiteClass=SubversionRepositoryTestSetup)) suite.addTest(unittest.makeSuite(NonSelfContainedScopedTestCase, 'test', suiteClass=SubversionRepositoryTestSetup)) suite.addTest(unittest.makeSuite(AnotherNonSelfContainedScopedTestCase, 'test', suiteClass=SubversionRepositoryTestSetup)) else: print "SKIP: versioncontrol/tests/svn_fs.py (no svn bindings)" return suiteif __name__ == '__main__': runner = unittest.TextTestRunner() runner.run(suite())
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -