Ejemplo n.º 1
0
 def test_env(self):
     env = os.environ.copy()
     env['HELLO'] = 'Hello world'
     process = Process(quiet=True, env=env)
     rc, lines = process.popen('echo ${HELLO}')
     self.assertEqual(rc, 0)
     self.assertEqual(lines, ['Hello world'])
Ejemplo n.º 2
0
 def test_env(self):
     env = os.environ.copy()
     env['HELLO'] = 'Hello world'
     process = Process(quiet=True, env=env)
     rc, lines = process.popen('echo ${HELLO}')
     self.assertEqual(rc, 0)
     self.assertEqual(lines, ['Hello world'])
Ejemplo n.º 3
0
 def test_env(self):
     env = os.environ.copy()
     env['HELLO'] = 'Hello world'
     process = Process(env=env)
     rc = process.system('echo ${HELLO} > output')
     self.assertEqual(rc, 0)
     self.assertEqual(process.pipe('cat output'), 'Hello world')
Ejemplo n.º 4
0
 def test_env(self):
     env = os.environ.copy()
     env['HELLO'] = 'Hello world'
     process = Process(env=env)
     rc = process.system('echo ${HELLO} > output')
     self.assertEqual(rc, 0)
     self.assertEqual(process.pipe('cat output'), 'Hello world')
Ejemplo n.º 5
0
 def clone(self):
     process = Process(quiet=True)
     process.system('git clone testpackage testclone')
     self.clonedir = join(self.tempdir, 'testclone')
     # Park the server on a branch because "Updating the currently
     # checked-out branch may cause confusion."
     self.dirstack.push('testpackage')
     process.system('git checkout -b parking')
     self.dirstack.pop()
Ejemplo n.º 6
0
 def checkout(self, path='trunk', target=None):
     process = Process(quiet=True)
     if target is None:
         self.checkoutdir = join(self.tempdir, self.packagename)
     else:
         self.checkoutdir = join(self.tempdir, target, self.packagename)
     process.system('svn checkout file://%s/%s %s' % (self.repo,
         path, self.checkoutdir))
     os.chdir(self.checkoutdir)
Ejemplo n.º 7
0
 def _fake_clone(self):
     # Fake a checkout, the real thing is too expensive
     process = Process(quiet=True)
     source = self._fake_source
     package = join(dirname(__file__), 'tests', source)
     archive = zipfile.ZipFile(package, 'r')
     archive.extractall()
     os.rename(source[:-4], 'testclone')
     self.dirstack.push('testclone')
     if self.scm.version_info[:2] >= (1, 7):
         url = process.popen('svn info')[1][2][5:]
     else:
         url = process.popen('svn info')[1][1][5:]
     process.system('svn switch --relocate %s file://%s/trunk' % (url, self.packagedir))
     self.dirstack.pop()
     self.clonedir = join(self.tempdir, 'testclone')
Ejemplo n.º 8
0
 def testSwitchRemoteBranch(self):
     scm = Git(Process(quiet=True))
     self.branch(self.packagedir, '2.x')
     self.clone()
     self.assertEqual(scm.get_branch_from_sandbox(self.clonedir), 'master')
     self.assertEqual(scm.switch_branch(self.clonedir, '2.x'), 0)
     self.assertEqual(scm.get_branch_from_sandbox(self.clonedir), '2.x')
Ejemplo n.º 9
0
    def testGetGitifySubversion(self):
        """
        Support git-svn-helpers/gitify style dual git/svn checkouts/clones.
        """
        # Simulate a git-svn-helpers/gitify style dual svn/git checkout/clone
        svn_url = urlparse.urlunsplit(('file', '', self.packagedir, '', ''))
        git_svn_clonedir = self.clonedir + '.git-svn'
        process = Process(quiet=True)
        process.system(
            'git svn clone -s {0} {1}'.format(svn_url, git_svn_clonedir))
        os.rename(
            os.path.join(git_svn_clonedir, '.git'),
            os.path.join(self.clonedir, '.git'))

        scms = SCMFactory()
        self.assertEqual(scms.get_scm_from_url(svn_url).name, 'svn')
        self.assertEqual(scms.get_scm_from_sandbox(self.clonedir).name, 'svn')
Ejemplo n.º 10
0
 def testCreateExistingTag(self):
     scm = Mercurial(Process(quiet=True))
     self.assertEqual(
         scm.create_tag(self.packagedir, '2.6', 'testpackage', '2.6',
                        False), 0)
     self.assertEqual(scm.tag_exists(self.packagedir, '2.6'), True)
     self.assertRaises(SystemExit, scm.create_tag, self.packagedir, '2.6',
                       'testpackage', '2.6', False)
Ejemplo n.º 11
0
 def testSwitchBranch(self):
     scm = Subversion(Process(quiet=True))
     trunkid = 'file://%s/trunk' % self.packagedir
     branchid = 'file://%s/branches/2.x' % self.packagedir
     self.branch(self.clonedir, branchid)
     self.assertEqual(scm.get_branch_from_sandbox(self.clonedir), trunkid)
     self.assertEqual(scm.switch_branch(self.clonedir, branchid), 0)
     self.assertEqual(scm.get_branch_from_sandbox(self.clonedir), branchid)
Ejemplo n.º 12
0
 def testCreateAndPushRemoteTag(self):
     scm = Mercurial(Process(quiet=True))
     self.clone()
     self.assertEqual(
         scm.create_tag(self.clonedir, '2.6', 'testpackage', '2.6', True),
         0)
     self.assertEqual(scm.tag_exists(self.clonedir, '2.6'), True)
     self.assertEqual(scm.tag_exists(self.packagedir, '2.6'), True)
Ejemplo n.º 13
0
 def testCreateExistingTag(self):
     scm = Subversion(Process(quiet=True))
     tagid = 'file://%s/tags/2.6' % self.packagedir
     self.assertEqual(scm.create_tag(self.clonedir, tagid, 'testpackage', '2.6', False), 0)
     self.assertEqual(scm.tag_exists(self.clonedir, tagid), True)
     # Note: This works! Subversion just copies stuff into a subdirectory...
     self.assertEqual(scm.create_tag(self.clonedir, tagid, 'testpackage', '2.6', False), 0)
     # Note: Only on the third attempt tagging fails
     self.assertRaises(SystemExit, scm.create_tag, self.clonedir, tagid, 'testpackage', '2.6', False)
Ejemplo n.º 14
0
 def testCommitAndPushDirtyRemoteSandbox(self):
     scm = Mercurial(Process(quiet=True))
     self.clone()
     self.modify(self.clonedir)
     self.assertEqual(
         scm.commit_sandbox(self.clonedir, 'testpackage', '2.6', True), 0)
     self.verify(self.clonedir)
     self.update(self.packagedir)
     self.verify(self.packagedir)
Ejemplo n.º 15
0
 def testSwitchRemoteBranch(self):
     scm = Mercurial(Process(quiet=True))
     self.branch(self.packagedir, '2.x')
     self.modify(self.packagedir)
     self.assertEqual(
         scm.commit_sandbox(self.packagedir, 'testpackage', '0.0', True), 0)
     self.clone()
     self.assertEqual(scm.get_branch_from_sandbox(self.clonedir), 'default')
     self.assertEqual(scm.switch_branch(self.clonedir, '2.x'), 0)
     self.assertEqual(scm.get_branch_from_sandbox(self.clonedir), '2.x')
Ejemplo n.º 16
0
 def testAmbiguousSandbox(self):
     scms = SCMFactory()
     process = Process()
     self.dirstack.push(self.packagedir)
     process.system('hg init .')
     process.system('hg add README.txt setup.py testpackage/__init__.py')
     process.system('hg commit -m"Import"')
     self.dirstack.pop()
     self.assertRaises(SystemExit, scms.get_scm, None, self.packagedir)
Ejemplo n.º 17
0
 def setUp(self):
     SubversionSetup.setUp(self)
     process = Process(quiet=True)
     process.system('svn mv -m"Rename" "file://%s/tags" "file://%s/tag"' %
         (self.packagedir, self.packagedir))
     process.system('svn mv -m"Rename" "file://%s/branches" "file://%s/branch"' %
         (self.packagedir, self.packagedir))
Ejemplo n.º 18
0
 def clone(self):
     process = Process(quiet=True)
     process.system('git clone testpackage testclone')
     self.clonedir = join(self.tempdir, 'testclone')
     # Park the server on a branch
     self.dirstack.push('testpackage')
     process.system('git checkout parking')
     self.dirstack.pop()
     # Make sure the clone is on master
     self.dirstack.push('testclone')
     process.system('git checkout master')
     self.dirstack.pop()
Ejemplo n.º 19
0
 def clone(self):
     process = Process(quiet=True)
     process.system('git clone testpackage testclone')
     self.clonedir = join(self.tempdir, 'testclone')
     # Park the server on a branch because "Updating the currently
     # checked-out branch may cause confusion."
     self.dirstack.push('testpackage')
     process.system('git checkout -b parking')
     self.dirstack.pop()
Ejemplo n.º 20
0
    def testGitManifest(self):
        st = Setuptools(Process(quiet=True, env=get_env()))
        archive = st.run_dist(self.packagedir, [],
                              'sdist', ['--formats=zip'],
                              ff='git')
        self.assertEqual(
            get_manifest(archive), """\
README.txt
setup.py
testpackage/__init__.py
testpackage/git_only.c
testpackage/git_only.py
testpackage/git_only.txt
testpackage.egg-info/PKG-INFO
testpackage.egg-info/SOURCES.txt
testpackage.egg-info/dependency_links.txt
testpackage.egg-info/not-zip-safe
testpackage.egg-info/requires.txt
testpackage.egg-info/top_level.txt""")
Ejemplo n.º 21
0
 def testUpdateWithRevisionPin(self):
     from mr.developer.develop import CmdCheckout
     from mr.developer.develop import CmdUpdate
     process = Process()
     repository = os.path.join(self.tempdir, 'repository')
     rc, lines = process.popen(
         "svnadmin create {0}".format(repository))
     assert rc == 0
     checkout = os.path.join(self.tempdir, 'checkout')
     rc, lines = process.popen(
         "svn checkout file://{0} {1}".format(repository, checkout),
         echo=False)
     assert rc == 0
     foo = os.path.join(checkout, 'foo')
     self.mkfile(foo, 'foo')
     rc, lines = process.popen(
         "svn add {0}".format(foo),
         echo=False)
     assert rc == 0
     rc, lines = process.popen(
         "svn commit {0} -m foo".format(foo),
         echo=False)
     assert rc == 0
     bar = os.path.join(checkout, 'bar')
     self.mkfile(bar, 'bar')
     rc, lines = process.popen(
         "svn add {0}".format(bar),
         echo=False)
     assert rc == 0
     rc, lines = process.popen(
         "svn commit {0} -m bar".format(bar),
         echo=False)
     assert rc == 0
     src = os.path.join(self.tempdir, 'src')
     develop = MockDevelop()
     develop.sources = {
         'egg': Source(
             kind='svn',
             name='egg',
             url='file://{0}@1'.format(repository),
             path=os.path.join(src, 'egg'))}
     CmdCheckout(develop)(develop.parser.parse_args(['co', 'egg']))
     assert set(os.listdir(os.path.join(src, 'egg'))) == set(('.svn', 'foo'))
     CmdUpdate(develop)(develop.parser.parse_args(['up', 'egg']))
     assert set(os.listdir(os.path.join(src, 'egg'))) == set(('.svn', 'foo'))
Ejemplo n.º 22
0
 def _fake_clone(self):
     # Fake a checkout, the real thing is too expensive
     process = Process(quiet=True)
     source = self._fake_source
     package = join(dirname(__file__), 'tests', source)
     archive = zipfile.ZipFile(package, 'r')
     archive.extractall()
     os.rename(source[:-4], 'testclone')
     self.dirstack.push('testclone')
     if self.scm.version_info[:2] >= (1, 7):
         url = process.popen('svn info')[1][2][5:]
     else:
         url = process.popen('svn info')[1][1][5:]
     process.system('svn switch --relocate %s file://%s/trunk' %
                    (url, self.packagedir))
     self.dirstack.pop()
     self.clonedir = join(self.tempdir, 'testclone')
Ejemplo n.º 23
0
 def testBadPush(self):
     scm = Mercurial(Process(quiet=True))
     self.clone()
     self.destroy()
     self.assertRaises(SystemExit, scm.commit_sandbox, self.clonedir,
                       'testpackage', '2.6', True)
Ejemplo n.º 24
0
 def testBadServer(self):
     scm = Mercurial(Process(quiet=True))
     self.destroy()
     self.assertRaises(SystemExit, scm.clone_url, self.packagedir,
                       'testclone')
Ejemplo n.º 25
0
 def testCommitCleanSandbox(self):
     scm = Mercurial(Process(quiet=True))
     self.assertEqual(
         scm.commit_sandbox(self.packagedir, 'testpackage', '2.6', False),
         0)
Ejemplo n.º 26
0
 def testCommitAndPushCleanRemoteSandbox(self):
     scm = Mercurial(Process(quiet=True))
     self.clone()
     self.assertEqual(
         scm.commit_sandbox(self.clonedir, 'testpackage', '2.6', True), 0)
Ejemplo n.º 27
0
 def testBadSandbox(self):
     scm = Subversion(Process(quiet=True))
     tagid = 'file://%s/tags/2.6' % self.packagedir
     self.destroy(self.clonedir)
     self.assertRaises(SystemExit, scm.create_tag, self.clonedir, tagid, 'testpackage', '2.6', False)
Ejemplo n.º 28
0
 def testBadSandbox(self):
     scm = Mercurial(Process(quiet=True))
     self.destroy()
     self.assertRaises(SystemExit, scm.get_branch_from_sandbox,
                       self.packagedir)
Ejemplo n.º 29
0
 def tag(self, dir, tagid):
     process = Process(quiet=True)
     process.system('svn cp -m"Tag" file://%s/trunk %s' % (self.packagedir, tagid))
     process.system('svn co %s testtag' % tagid)
     self.tagdir = join(self.tempdir, 'testtag')
Ejemplo n.º 30
0
 def test_quiet(self):
     process = Process(quiet=True)
     value = process.pipe('echo "Hello world"')
     self.assertEqual(value, 'Hello world')
Ejemplo n.º 31
0
 def update(self, dir):
     process = Process(quiet=True)
     process.system('git checkout master')
Ejemplo n.º 32
0
 def branch(self, dir, branchid):
     process = Process(quiet=True)
     process.system('svn cp -m"Branch" file://%s/trunk %s' % (self.packagedir, branchid))
     process.system('svn co %s testbranch' % branchid)
     self.branchdir = join(self.tempdir, 'testbranch')
Ejemplo n.º 33
0
 def remove(self, dir):
     process = Process(quiet=True)
     process.system('git rm setup.py')
Ejemplo n.º 34
0
 def clone(self):
     process = Process(quiet=True)
     process.system('hg clone testpackage testclone')
     self.clonedir = join(self.tempdir, 'testclone')
Ejemplo n.º 35
0
 def branch(self, dir, branchid):
     process = Process(quiet=True)
     process.system('hg branch %s' % branchid)
Ejemplo n.º 36
0
 def testSwitchUnknownBranch(self):
     scm = Mercurial(Process(quiet=True))
     self.assertRaises(SystemExit, scm.switch_branch, self.packagedir,
                       '2.x')
Ejemplo n.º 37
0
 def __init__(self, rc=None, lines=None, func=None):
     Process.__init__(self, quiet=True)
     self.rc = rc or 0
     self.lines = lines or []
     self.func = func
Ejemplo n.º 38
0
 def tag(self, dir, tagid):
     process = Process(quiet=True)
     process.system('hg tag %s' % tagid)
     process.system('hg update %s' % tagid)
Ejemplo n.º 39
0
 def modifyprop(self, dir):
     process = Process(quiet=True)
     process.system('svn propset svn:format "text/x-python" setup.py')
Ejemplo n.º 40
0
 def testCreateAndPushTag(self):
     scm = Subversion(Process(quiet=True))
     tagid = 'file://%s/tags/2.6' % self.packagedir
     self.assertEqual(scm.create_tag(self.clonedir, tagid, 'testpackage', '2.6', True), 0)
     self.assertEqual(scm.tag_exists(self.clonedir, tagid), True)
Ejemplo n.º 41
0
 def testBadSandbox(self):
     scm = Mercurial(Process(quiet=True))
     self.destroy()
     self.assertRaises(SystemExit, scm.check_tag_exists, self.packagedir,
                       '2.6')
Ejemplo n.º 42
0
 def testBadSandbox(self):
     scm = Subversion(Process(quiet=True))
     self.destroy(self.clonedir)
     self.assertRaises(SystemExit, scm.get_root_from_sandbox, self.clonedir)
Ejemplo n.º 43
0
 def test_bad_cmd(self):
     process = Process()
     value = process.pipe('$ "Hello world"')
     self.assertEqual(value, '')
Ejemplo n.º 44
0
 def testBadSandbox(self):
     scm = Mercurial(Process(quiet=True))
     self.destroy()
     self.assertRaises(SystemExit, scm.is_unclean_sandbox, self.packagedir)
Ejemplo n.º 45
0
 def test_simple(self):
     process = Process()
     value = process.pipe('echo "Hello world"')
     self.assertEqual(value, 'Hello world')
Ejemplo n.º 46
0
 def testCommitAndPushDirtyLocalSandbox(self):
     scm = Mercurial(Process(quiet=True))
     self.modify(self.packagedir)
     self.assertEqual(
         scm.commit_sandbox(self.packagedir, 'testpackage', '2.6', True), 0)
Ejemplo n.º 47
0
 def clone(self):
     process = Process(quiet=True)
     process.system('svn checkout file://%s/trunk testclone' % self.packagedir)
     self.clonedir = join(self.tempdir, 'testclone')
Ejemplo n.º 48
0
 def test_quiet(self):
     process = Process(quiet=True)
     rc = process.system('echo "Hello world"')
     self.assertEqual(rc, 0)
Ejemplo n.º 49
0
 def testBadSandbox(self):
     scm = Subversion(Process(quiet=True))
     branchid = 'file://%s/branches/2.x' % self.packagedir
     self.destroy(self.clonedir)
     self.assertRaises(SystemExit, scm.switch_branch, self.clonedir, branchid)
Ejemplo n.º 50
0
 def testCloneUrl(self):
     scm = Mercurial(Process(quiet=True))
     self.assertEqual(scm.clone_url(self.packagedir, 'testclone'), 0)
     self.assertEqual(isdir('testclone'), True)
Ejemplo n.º 51
0
 def testBadRepository(self):
     scm = Subversion(Process(quiet=True))
     tagid = 'file://%s/tags/2.6' % self.packagedir
     self.destroy(self.packagedir)
     self.assertRaises(SystemExit, scm.check_tag_exists, self.clonedir, tagid)
Ejemplo n.º 52
0
 def test_simple(self):
     process = Process()
     rc = process.system('echo "Hello world" > output')
     self.assertEqual(rc, 0)
     self.assertEqual(process.pipe('cat output'), 'Hello world')
Ejemplo n.º 53
0
 def test_bad_cmd(self):
     process = Process()
     rc = process.system('$ "Hello world" 2> output')
     self.assertEqual(rc, 127)
Ejemplo n.º 54
0
 def testBadSandbox(self):
     scm = Mercurial(Process(quiet=True))
     self.destroy()
     self.assertRaises(SystemExit, scm.switch_branch, self.packagedir,
                       '2.x')
Ejemplo n.º 55
0
 def update(self, dir):
     process = Process(quiet=True)
     process.system('hg update')
Ejemplo n.º 56
0
 def tag(self, dir, tagid):
     process = Process(quiet=True)
     process.system('git tag %s' % tagid)
     process.system('git checkout %s' % tagid)
Ejemplo n.º 57
0
 def test_env(self):
     env = os.environ.copy()
     env['HELLO'] = 'Hello world'
     process = Process(quiet=True, env=env)
     value = process.pipe('echo ${HELLO}')
     self.assertEqual(value, 'Hello world')
Ejemplo n.º 58
0
 def testBadSandbox(self):
     scm = Mercurial(Process(quiet=True))
     self.destroy()
     self.assertRaises(SystemExit, scm.create_tag, self.packagedir, '2.6',
                       'testpackage', '2.6', False)
Ejemplo n.º 59
0
 def branch(self, dir, branchid):
     process = Process(quiet=True)
     process.system('git branch %s' % branchid)
     process.system('git checkout %s' % branchid)