summaryrefslogtreecommitdiff
path: root/morphlib/sourcemanager_tests.py
diff options
context:
space:
mode:
Diffstat (limited to 'morphlib/sourcemanager_tests.py')
-rw-r--r--morphlib/sourcemanager_tests.py193
1 files changed, 0 insertions, 193 deletions
diff --git a/morphlib/sourcemanager_tests.py b/morphlib/sourcemanager_tests.py
deleted file mode 100644
index eb18dcc3..00000000
--- a/morphlib/sourcemanager_tests.py
+++ /dev/null
@@ -1,193 +0,0 @@
-# Copyright (C) 2012 Codethink Limited
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License along
-# with this program; if not, write to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-
-import glob
-import unittest
-import tempfile
-import shutil
-import os
-import subprocess
-import urlparse
-
-import morphlib
-
-
-class DummyApp(object):
-
- def __init__(self):
- self.settings = {
- 'git-base-url': ['.',],
- 'bundle-server': None,
- 'cachedir': '/foo/bar/baz',
- 'ignore-submodules': False
- }
- self.msg = lambda msg: None
-
-
-class SourceManagerTests(unittest.TestCase):
-
- def setUp(self):
- self.temprepodir = tempfile.mkdtemp()
- env = os.environ
- env["DATADIR"]=self.temprepodir
- subprocess.call("./tests/show-dependencies.setup", shell=True, env=env)
- self.temprepo = self.temprepodir + '/test-repo/'
- bundle_name = morphlib.sourcemanager.quote_url(self.temprepo) + '.bndl'
- with open('/dev/null', 'w') as f:
- subprocess.check_call("git bundle create %s/%s master" %
- (self.temprepodir, bundle_name),
- stderr=f, shell=True, cwd=self.temprepo)
-
- def tearDown(self):
- shutil.rmtree(self.temprepodir)
-
- def test_uses_provided_cache_dir(self):
- app = DummyApp()
-
- tempdir = '/bla/bla/bla'
- s = morphlib.sourcemanager.SourceManager(app, tempdir)
- self.assertEqual(s.cache_dir, tempdir)
-
- def test_uses_cachedir_gits_if_no_cache_dir_provided(self):
- app = DummyApp()
-
- s = morphlib.sourcemanager.SourceManager(app)
- self.assertEqual(s.cache_dir,
- os.path.join(app.settings['cachedir'], 'gits'))
-
- def test_resolves_sha1_treeish_for_test_repo_correctly(self):
- tempdir = tempfile.mkdtemp()
-
- s = morphlib.sourcemanager.SourceManager(DummyApp(), tempdir)
- t = s.get_treeish(self.temprepo,
- 'e28a23812eadf2fce6583b8819b9c5dbd36b9fb9')
- self.assertEquals(t.sha1, 'e28a23812eadf2fce6583b8819b9c5dbd36b9fb9')
-
- shutil.rmtree(tempdir)
-
- def test_resolves_sha1_treeish_for_test_repo_correctly_twice(self):
- tempdir = tempfile.mkdtemp()
-
- # try two times with different source manager objects
- s = morphlib.sourcemanager.SourceManager(DummyApp(), tempdir)
- t = s.get_treeish(self.temprepo,
- 'e28a23812eadf2fce6583b8819b9c5dbd36b9fb9')
- self.assertEquals(t.sha1, 'e28a23812eadf2fce6583b8819b9c5dbd36b9fb9')
- s = morphlib.sourcemanager.SourceManager(DummyApp(), tempdir)
- t = s.get_treeish(self.temprepo,
- 'e28a23812eadf2fce6583b8819b9c5dbd36b9fb9')
- self.assertEquals(t.sha1, 'e28a23812eadf2fce6583b8819b9c5dbd36b9fb9')
-
- # try two times with the same source manager object
- s = morphlib.sourcemanager.SourceManager(DummyApp(), tempdir)
- t = s.get_treeish(self.temprepo,
- 'e28a23812eadf2fce6583b8819b9c5dbd36b9fb9')
- self.assertEquals(t.sha1, 'e28a23812eadf2fce6583b8819b9c5dbd36b9fb9')
- t = s.get_treeish(self.temprepo,
- 'e28a23812eadf2fce6583b8819b9c5dbd36b9fb9')
- self.assertEquals(t.sha1, 'e28a23812eadf2fce6583b8819b9c5dbd36b9fb9')
-
- shutil.rmtree(tempdir)
-
- def test_resolves_ref_treeish_for_test_repo_correctly(self):
- tempdir = tempfile.mkdtemp()
-
- s = morphlib.sourcemanager.SourceManager(DummyApp(), tempdir)
- t = s.get_treeish(self.temprepo, 'master')
- self.assertEquals(t.ref, 'refs/remotes/origin/master')
-
- shutil.rmtree(tempdir)
-
- def test_resolves_ref_treeish_for_test_repo_without_submodules(self):
- tempdir = tempfile.mkdtemp()
-
- s = morphlib.sourcemanager.SourceManager(DummyApp(), tempdir)
- t = s.get_treeish(self.temprepo, 'master')
- self.assertEquals(len(t.submodules), 0)
-
- shutil.rmtree(tempdir)
-
- def test_resolves_sha1_treeish_for_test_repo_correctly_from_bundle(self):
- tempdir = tempfile.mkdtemp()
- bundle_server_loc = self.temprepodir
-
- app = DummyApp()
- app.settings['bundle-server'] = 'file://' + bundle_server_loc
-
- s = morphlib.sourcemanager.SourceManager(app, tempdir)
-
- def wget(url, filename):
- bundle_file = os.path.join(self.temprepodir,
- os.path.basename(filename))
- shutil.copy(bundle_file, s.cache_dir)
-
- s._wget = wget
-
- t = s.get_treeish(self.temprepo,
- 'e28a23812eadf2fce6583b8819b9c5dbd36b9fb9')
- self.assertEquals(t.sha1, 'e28a23812eadf2fce6583b8819b9c5dbd36b9fb9')
-
- shutil.rmtree(tempdir)
-
- def test_fails_to_resolves_sha1_treeish_for_non_existent_repo(self):
- tempdir = tempfile.mkdtemp()
- app = DummyApp()
-
- s = morphlib.sourcemanager.SourceManager(app, tempdir)
-
- def wget(url, filename):
- bundle_file = os.path.join(self.temprepodir,
- os.path.basename(filename))
- shutil.copy(bundle_file, s.cache_dir)
-
- s._wget = wget
- self.assertRaises(morphlib.sourcemanager.RepositoryFetchError,
- s.get_treeish, 'asdf',
- 'e28a23812eadf2fce6583b8819b9c5dbd36b9fb9')
-
- shutil.rmtree(tempdir)
-
- def test_fails_to_resolves_sha1_treeish_for_non_existent_repo_bundle(self):
- tempdir = tempfile.mkdtemp()
- app = DummyApp()
- app.settings['bundle-server'] = 'file://' + self.temprepodir
-
- s = morphlib.sourcemanager.SourceManager(app, tempdir)
-
- def wget(url, filename):
- bundle_file = os.path.join(self.temprepodir,
- os.path.basename(filename))
- shutil.copy(bundle_file, s.cache_dir)
-
- s._wget = wget
- self.assertRaises(morphlib.sourcemanager.RepositoryFetchError,
- s.get_treeish, 'asdf',
- 'e28a23812eadf2fce6583b8819b9c5dbd36b9fb9')
-
- shutil.rmtree(tempdir)
-
- def test_get_sha1_treeish_for_self_multiple_base(self):
-
- tempdir = tempfile.mkdtemp()
- app = DummyApp()
- app.settings['git-base-url'] = ['.', '/somewhere/else']
-
- s = morphlib.sourcemanager.SourceManager(app, tempdir)
- t = s.get_treeish(self.temprepo,
- 'e28a23812eadf2fce6583b8819b9c5dbd36b9fb9')
- self.assertEquals(t.sha1, 'e28a23812eadf2fce6583b8819b9c5dbd36b9fb9')
-
- shutil.rmtree(tempdir)