Ejemplo n.º 1
0
 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/')
Ejemplo n.º 9
0
 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)