view tests/test-url.py @ 13019:42ac864ed394

test-hardlinks: add testcase for repo copied with 'cp -al' This patch adds a case to test-hardlinks.t which demonstrates that hardlinks in the working directory are broken up (using 'hg update'). Motivation for this patch: 'hg help clone' shows copying repositories *and* the working directory using 'cp -al', creating hardlinks in the *working directory* too (not just in the store). Note that we can't use 'cp -al' since for example MacOS X doesn't support these options on cp. I'm thus using the same trick as in test-hardlinks-safety.t for creating hardlinks in the working dir.
author Adrian Buehlmann <adrian@cadifra.com>
date Wed, 17 Nov 2010 16:54:30 +0100
parents 4c50552fc9bc
children 00411a4fa1bb
line wrap: on
line source

import sys

def check(a, b):
    if a != b:
        print (a, b)

def cert(cn):
    return dict(subject=((('commonName', cn),),))

from mercurial.url import _verifycert

# Test non-wildcard certificates
check(_verifycert(cert('example.com'), 'example.com'),
      None)
check(_verifycert(cert('example.com'), 'www.example.com'),
      'certificate is for example.com')
check(_verifycert(cert('www.example.com'), 'example.com'),
      'certificate is for www.example.com')

# Test wildcard certificates
check(_verifycert(cert('*.example.com'), 'www.example.com'),
      None)
check(_verifycert(cert('*.example.com'), 'example.com'),
      'certificate is for *.example.com')
check(_verifycert(cert('*.example.com'), 'w.w.example.com'),
      'certificate is for *.example.com')

# Avoid some pitfalls
check(_verifycert(cert('*.foo'), 'foo'),
      'certificate is for *.foo')
check(_verifycert(cert('*o'), 'foo'),
      'certificate is for *o')

check(_verifycert({'subject': ()},
                  'example.com'),
      'no commonName found in certificate')
check(_verifycert(None, 'example.com'),
      'no certificate received')