def testHasSubDirs(self): self._createRepos(['subdirs']) for subdir in ['test', 'test/subdir']: os.system("svn mkdir -m '' file://'%s' >/dev/null" % \ os.path.join(self.svn_dir, 'subdirs', subdir)) r = repository.Repository('subdirs', 'svn') subdirs = r.subdirs('test') expected = [{'has_subdirs': False, 'name': u'subdir'}] self.assertEquals(subdirs, expected)
def testNotificationsEnabled(self): self._createRepos(['foo']) r = repository.Repository('foo', 'svn') # first time, because no file is present self.assertFalse(r.commitEmailsEnabled()) r.enableCommitEmails(enable=True) self.assertTrue(r.commitEmailsEnabled()) # a second time, because now a file is created r.enableCommitEmails(enable=False) self.assertFalse(r.commitEmailsEnabled())
def rewrite_hooks(reponame): if reponame: repositories = [reponame] else: repositories = [x['name'] for x in repository.Repository.list_all() if x['vcs'] == 'git'] for reponame in repositories: repo = repository.Repository(reponame, 'git') setCommitEmailHook(reponame, repo.commitEmailsEnabled()) setTracSyncHook(reponame, repo.tracCommitHookEnabled())
def testSubDirsContents(self): self._createRepos(['subdirs']) for subdir in ['test', 'test/subdir', 'nosubdirs']: os.system("svn mkdir -m '' file://'%s' >/dev/null" % \ os.path.join(self.svn_dir, 'subdirs', subdir)) r = repository.Repository('subdirs', 'svn') result = r.subdirs('') expected_result = [{'has_subdirs': False, 'name': u'nosubdirs'}, \ {'name': u'test', 'has_subdirs': True}] result.sort() expected_result.sort() self.assertEquals(result, expected_result)
def testChangeNotificationsEmptyHook(self): self._createRepos(['foo']) expected_hook = '''#!/bin/sh ### SUBMIN AUTOCONFIG, DO NOT ALTER FOLLOWING LINE ### /usr/bin/python /bin/post-commit.py "%s" "$1" "$2" ''' % self.submin_env hook_fname = os.path.join(self.svn_dir, 'foo', 'hooks', 'post-commit') r = repository.Repository('foo', 'svn') r.enableCommitEmails(enable=True) hook = ''.join(open(hook_fname, 'r').readlines()) self.assertTrue( '### SUBMIN AUTOCONFIG, DO NOT ALTER FOLLOWING LINE ###' in hook) self.assertTrue('mailer.py.conf' in hook)
def testChangeNotificationsExistingHook(self): self._createRepos(['foo']) expected_hook = '''#!/bin/sh # just a comment ''' hook_fname = os.path.join(self.svn_dir, 'foo', 'hooks', 'post-commit') open(hook_fname, 'w').write(expected_hook) r = repository.Repository('foo', 'svn') r.enableCommitEmails(enable=True) hook = ''.join(open(hook_fname, 'r').readlines()) self.assertTrue('# just a comment' in hook) self.assertTrue('mailer.py.conf' in hook) r.enableCommitEmails(enable=False) hook = ''.join(open(hook_fname, 'r').readlines()) self.assertEquals(hook, expected_hook)
def testRemoveRepository(self): self._createRepos(['subdirs']) r = repository.Repository('subdirs', 'svn') r.remove() self.assertRaises(repository.DoesNotExistError, repository.Repository, 'subdirs', 'svn')
def testExistingRepository(self): self._createRepos(['foo']) r = repository.Repository('foo', 'svn') self.assertEquals(r.name, 'foo')