def test_git_recursive_branch(self): """Recursive clone of a branch""" d = downloader(branch='dev', repository='https://github.com/foo/bar') self.assertEqual( d.download_step(recursive=True), r'''mkdir -p /var/tmp && cd /var/tmp && git clone --depth=1 --branch dev --recursive https://github.com/foo/bar bar && cd -''' )
def test_zipfile(self): """Local zipfile, no download""" d = downloader(package='foo.zip') self.assertEqual( d.download_step(), 'mkdir -p /var/tmp && unzip -d /var/tmp /var/tmp/foo.zip') self.assertEqual(d.src_directory, '/var/tmp/foo')
def test_basic_git(self): """Basic git""" d = downloader(repository='https://github.com/foo/bar.git') self.assertEqual( d.download_step(), r'''mkdir -p /var/tmp && cd /var/tmp && git clone --depth=1 https://github.com/foo/bar.git bar && cd -''' ) self.assertEqual(d.src_directory, '/var/tmp/bar')
def test_basic_wget(self): """Basic wget""" d = downloader(url='http://mysite.com/foo.tgz') self.assertEqual( d.download_step(), r'''mkdir -p /var/tmp && wget -q -nc --no-check-certificate -P /var/tmp http://mysite.com/foo.tgz && \ mkdir -p /var/tmp && tar -x -f /var/tmp/foo.tgz -C /var/tmp -z''') self.assertEqual(d.src_directory, '/var/tmp/foo')
def test_bad_url(self): """Unrecognized package format, assumes tar can figure it out""" d = downloader(url='http://mysite.com/foo.Z') self.assertEqual( d.download_step(), r'''mkdir -p /var/tmp && wget -q -nc --no-check-certificate -P /var/tmp http://mysite.com/foo.Z && \ mkdir -p /var/tmp && tar -x -f /var/tmp/foo.Z -C /var/tmp''') self.assertEqual(d.src_directory, None)
def test_tarball(self): """Local tarball, no download""" d = downloader(package='foo.tar.gz') self.assertEqual( d.download_step(), 'mkdir -p /var/tmp && tar -x -f /var/tmp/foo.tar.gz -C /var/tmp -z' ) self.assertEqual(d.src_directory, '/var/tmp/foo')
def test_git_commit_wd(self): """Git commit into an alternative working directory""" d = downloader(commit='deadbeef', repository='https://github.com/foo/bar') self.assertEqual( d.download_step(wd='/tmp/git'), r'''mkdir -p /tmp/git && cd /tmp/git && git clone https://github.com/foo/bar bar && cd - && cd /tmp/git/bar && git checkout deadbeef && cd -''' ) self.assertEqual(d.src_directory, '/tmp/git/bar')
def test_bad_url(self): """Unrecognized package format""" d = downloader(url='http://mysite.com/foo.Z') with self.assertRaises(RuntimeError): d.download_step()
def test_url_and_repository(self): """Both URL and repository specified""" d = downloader(repository='https://github.com/foo/bar', url='http://mysite.com/foo.tgz') with self.assertRaises(RuntimeError): d.download_step()
def test_missing_url(self): """Missing url option""" d = downloader() with self.assertRaises(RuntimeError): d.download_step()
def test_bad_url_noallow(self): """Unrecognzied package format""" d = downloader(url='http://mysite.com/foo.Z') with self.assertRaises(RuntimeError): d.download_step(allow_unknown_filetype=False)