def test_clone(self): repo = SM.Repository( name='testsvn', fs_path='/tmp/', url_path = '/test/', tool = 'svn', status = 'creating') repo_path = pkg_resources.resource_filename( 'forgesvn', 'tests/data/testsvn') dirname = os.path.join(repo.fs_path, repo.name) if os.path.exists(dirname): shutil.rmtree(dirname) repo.init() repo._impl.clone_from('file://' + repo_path, copy_hooks=True) assert len(repo.log()) assert os.path.exists('/tmp/testsvn/hooks/pre-revprop-change') assert os.access('/tmp/testsvn/hooks/pre-revprop-change', os.X_OK) with open('/tmp/testsvn/hooks/pre-revprop-change') as f: c = f.read() self.assertEqual(c, 'pre-revprop-change\n') assert os.path.exists('/tmp/testsvn/hooks/post-revprop-change') assert os.access('/tmp/testsvn/hooks/post-revprop-change', os.X_OK) with open('/tmp/testsvn/hooks/post-revprop-change') as f: c = f.read() self.assertEqual(c, 'post-revprop-change\n') assert os.path.exists('/tmp/testsvn/hooks/post-commit-user') assert os.access('/tmp/testsvn/hooks/post-commit-user', os.X_OK) with open('/tmp/testsvn/hooks/post-commit-user') as f: c = f.read() self.assertEqual(c, 'post-commit\n') assert os.path.exists('/tmp/testsvn/hooks/post-commit') assert os.access('/tmp/testsvn/hooks/post-commit', os.X_OK) with open('/tmp/testsvn/hooks/post-commit') as f: c = f.read() self.assertIn('curl -s http://localhost//auth/refresh_repo/p/test/src/\n', c) self.assertIn('exec $DIR/post-commit-user "$@"\n', c) shutil.rmtree(dirname)
def test_clone(self, post_event): repo = SM.Repository(name='testsvn', fs_path=g.tmpdir + '/', url_path='/test/', tool='svn', status='creating') repo_path = pkg_resources.resource_filename('forgesvn', 'tests/data/testsvn') dirname = os.path.join(repo.fs_path, repo.name) if os.path.exists(dirname): shutil.rmtree(dirname) repo.init() repo._impl.clone_from('file://' + repo_path) assert not os.path.exists( os.path.join(g.tmpdir, 'testsvn/hooks/pre-revprop-change')) assert os.path.exists( os.path.join(g.tmpdir, 'testsvn/hooks/post-commit')) assert os.access(os.path.join(g.tmpdir, 'testsvn/hooks/post-commit'), os.X_OK) with open(os.path.join(g.tmpdir, 'testsvn/hooks/post-commit')) as f: c = f.read() self.assertIn( 'curl -s http://localhost/auth/refresh_repo/p/test/src/\n', c) self.assertIn('exec $DIR/post-commit-user "$@"\n', c) repo.refresh(notify=False) assert len(list(repo.log())) shutil.rmtree(dirname)
def setup_with_tools(self): setup_global_objects() h.set_context('test', 'src', neighborhood='Projects') repo_dir = pkg_resources.resource_filename('forgesvn', 'tests/data/') self.repo = SM.Repository(name='testsvn', fs_path=repo_dir, url_path='/test/', tool='svn', status='creating') self.repo.refresh() self.svn_tags = SM.Repository(name='testsvn-trunk-tags-branches', fs_path=repo_dir, url_path='/test/', tool='svn', status='creating') self.svn_tags.refresh() ThreadLocalORMSession.flush_all() ThreadLocalORMSession.close_all()
def test_init(self): repo = SM.Repository(name='testsvn', fs_path=g.tmpdir + '/', url_path='/test/', tool='svn', status='creating') dirname = os.path.join(repo.fs_path, repo.name) if os.path.exists(dirname): shutil.rmtree(dirname) repo.init() shutil.rmtree(dirname)
def test_is_empty(self): assert not self.repo.is_empty() with TempDirectory() as d: repo2 = SM.Repository(name='test', fs_path=d.path, url_path='/test/', tool='svn', status='creating') repo2.init() assert repo2.is_empty() repo2.refresh() ThreadLocalORMSession.flush_all() assert repo2.is_empty()
def setup_with_tools(self): setup_global_objects() h.set_context('test', 'src', neighborhood='Projects') repo_dir = pkg_resources.resource_filename('forgesvn', 'tests/data/') self.repo = SM.Repository(name='testsvn', fs_path=repo_dir, url_path='/test/', tool='svn', status='creating') self.repo.refresh() self.rev = M.repo.Commit.query.get(_id=self.repo.heads[0]['object_id']) self.rev.repo = self.repo ThreadLocalORMSession.flush_all() ThreadLocalORMSession.close_all()
def test_clone(self): repo = SM.Repository(name='testsvn', fs_path='/tmp/', url_path='/test/', tool='svn', status='creating') repo_path = pkg_resources.resource_filename('forgesvn', 'tests/data/testsvn') dirname = os.path.join(repo.fs_path, repo.name) if os.path.exists(dirname): shutil.rmtree(dirname) repo.init() repo._impl.clone_from('file://' + repo_path) assert len(repo.log()) shutil.rmtree(dirname)
def test_notification_email(self): setup_global_objects() h.set_context('test', 'src', neighborhood='Projects') repo_dir = pkg_resources.resource_filename('forgesvn', 'tests/data/') self.repo = SM.Repository(name='testsvn', fs_path=repo_dir, url_path='/test/', tool='svn', status='creating') self.repo.refresh() ThreadLocalORMSession.flush_all() send_notifications(self.repo, [self.repo.rev_to_commit_id(1)]) ThreadLocalORMSession.flush_all() n = M.Notification.query.find( dict(subject='[test:src] [r1] - rick446: Create readme')).first() assert n assert_equal(n.text, 'Create readme http://localhost/p/test/src/1/')
def test_notification_email(self): setup_global_objects() h.set_context('test', 'src', neighborhood='Projects') repo_dir = pkg_resources.resource_filename('forgesvn', 'tests/data/') self.repo = SM.Repository(name='testsvn', fs_path=repo_dir, url_path='/test/', tool='svn', status='creating') self.repo.refresh() ThreadLocalORMSession.flush_all() send_notifications(self.repo, [self.repo.rev_to_commit_id(1)]) ThreadLocalORMSession.flush_all() n = M.Notification.query.find({ u'subject': u'[test:src] New commit by rick446' }).first() assert n assert_in(u'By rick446', n.text) assert_in(u'Create readme', n.text)