from dynrepos2 import Repository, Dir, File def get_repo(): return Repository('svn+ssh://codespeak.net/svn', verbose=True) def test_walk_pypy_repo(): repo = get_repo() assert repo.getrev() > 50000 dir1 = repo.revisions[51292] assert dir1.rev == 51292 assert dir1.prev is repo.revisions[51291] dir2 = dir1.entries['pypy'] assert dir2.rev == 51291 keys = dir2.entries.keys() keys.sort() assert keys == ['branch', 'build', 'ct', 'dist', 'eu-tracking', 'extradoc', 'funding', 'release', 'tag', 'testresult', 'www'] dir3 = dir2.prev assert dir3.rev == 51290 dir4 = (dir3.entries['dist'] .entries['pypy'] .entries['translator'] .entries['llvm']) assert 'node.py' in dir4.entries.keys() assert dir4.rev == 51290 file4 = dir4.entries['node.py'] assert file4.rev == 51290 assert isinstance(dir4, Dir) assert isinstance(file4, File) file5 = file4.prev assert file5.rev == 50061 assert file5 is not (repo.revisions[50061] .entries['pypy'] .entries['dist'] .entries['pypy'] .entries['translator'] .entries['llvm'] .entries['node.py']) assert file5 is (repo.revisions[51255] .entries['pypy'] .entries['branch'] .entries['asmgcroot'] .entries['pypy'] .entries['translator'] .entries['llvm'] .entries['node.py'])