view tests/test_svn_pre_commit_hooks.py @ 1451:945700dac237

tests: use hostname instead of localhost The test_push_command test was failing on our machines because the machines are ipv6 but expose ipv4 on the 127.0.0.1 loopback interface. This caused the svnserve process to listen via ipv4, but the connecting process would attempt to connect on ipv6 and fail. Using the hostname causes it to listen using the primary network interface, which matches the interface that is used when the connecting client resolves the hostname. So the test now passes.
author Durham Goode <durham@fb.com>
date Tue, 07 Jun 2016 14:35:30 -0700
parents d741f536f23a
children cff81f35b31e
line wrap: on
line source

import os
import sys
import test_util
import unittest

from mercurial import hg
from mercurial import commands
from mercurial import util


class TestSvnPreCommitHooks(test_util.TestBase):
    def setUp(self):
        super(TestSvnPreCommitHooks, self).setUp()
        self.repo_path = self.load_and_fetch('single_rev.svndump')[1]
        # creating pre-commit hook that doesn't allow any commit
        hook_file_name = os.path.join(
			self.repo_path, 'hooks', 'pre-commit'
        )
        hook_file = open(hook_file_name, 'w')
        hook_file.write(
        	'#!/bin/sh\n'
        	'echo "Commits are not allowed" >&2; exit 1;\n'
        )
        hook_file.close()
        os.chmod(hook_file_name, 0755)

    def test_push_with_pre_commit_hooks(self):
        changes = [('narf/a', 'narf/a', 'ohai',),
                   ]
        self.commitchanges(changes)
        self.assertRaises(util.Abort, self.pushrevisions)