Пример #1
0
 def test_tarball(self):
     pkg = Package('configure')
     rc, stdout, stderr = self.run_command(EXECUTABLE, 'tarball', pkg.name)
     # Prints nothing to stderr
     self.assertEqual(stderr, '')
     # returns successfully
     self.assertEqual(rc, 0)
     # Prints to stdout
     self.assertEqual(stdout.rstrip(), pkg.tarball_filename)
Пример #2
0
 def run_tarball(self, package_name):
     """
     tarball: Find the tarball filename given a package name
 
     $ sage-package tarball pari
     pari-2.8-1564-gdeac36e.tar.gz
     """
     package = Package(package_name)
     print(package.tarball.filename)
Пример #3
0
 def test_tarball(self):
     pkg = Package('configure')
     tarball = Tarball(pkg.tarball_filename)
     self.assertEqual(tarball, pkg.tarball)
     self.assertEqual(pkg, tarball.package)
     with CapturedOutput() as (stdout, stderr):
         with CapturedLog() as _:
             tarball.download()
     self.assertEqual(stdout.getvalue(), '')
     self.assertTrue(tarball.checksum_verifies())
Пример #4
0
 def update(self):
     package = Package(self.name)
     if package.version == self.version:
         log.info('%s is already at the latest version', self.name)
         return
     log.info('Updating %s: %s -> %s', self.name, package.version,
              self.version)
     update = PackageUpdater(self.name, self.version)
     update.download_upstream(self.url)
     update.fix_checksum()
Пример #5
0
 def tarball(self, package_name):
     """
     Find the tarball filename given a package name
 
     $ sage --package tarball pari
     pari-2.8-1564-gdeac36e.tar.gz
     """
     log.debug('Looking up tarball name for %s', package_name)
     package = Package(package_name)
     print(package.tarball.filename)
Пример #6
0
 def test_download(self):
     pkg = Package('configure')
     with CapturedLog() as _:
         pkg.tarball.download()
     rc, stdout, stderr = self.run_command(EXECUTABLE, 'download', pkg.name)
     # Prints info to stderr
     self.assertTrue(stderr.startswith('Using cached file'))
     # returns successfully
     self.assertEqual(rc, 0)
     # Prints filename to stdout
     self.assertEqual(stdout.rstrip(), pkg.tarball.upstream_fqn)
Пример #7
0
 def test_package(self):
     pkg = Package('pari')
     self.assertTrue(pkg.name, 'pari')
     self.assertTrue(pkg.path.endswith('build/pkgs/pari'))
     self.assertEqual(pkg.tarball_pattern, 'pari-VERSION.tar.gz')
     self.assertEqual(pkg.tarball_filename, pkg.tarball.filename)
     self.assertTrue(pkg.tarball.filename.startswith('pari-') and
                     pkg.tarball.filename.endswith('.tar.gz'))
     self.assertTrue(pkg.tarball.filename.startswith('pari-') and
                     pkg.tarball.filename.endswith('.tar.gz'))
     self.assertTrue(isinstance(pkg.tarball, Tarball))
Пример #8
0
 def update_latest(self, package_name):
     """
     Update a package to the latest version. This modifies the Sage sources. 
     """
     try:
         pypi = PyPiVersion(package_name)
     except PyPiNotFound:
         log.debug('%s is not a pypi package', package_name)
         return
     else:
         pypi.update(Package(package_name))
Пример #9
0
 def test_fix_checksum(self):
     pkg = Package('configure')
     rc, stdout, stderr = self.run_command(EXECUTABLE, 'fix-checksum',
                                           'configure')
     # Prints nothing to stderr
     self.assertEqual(stderr, '')
     # returns successfully
     self.assertEqual(rc, 0)
     # Prints to stdout
     self.assertEqual(
         stdout.rstrip(), 'Checksum of {0} (tarball {1}) unchanged'.format(
             pkg.name, pkg.tarball_filename))
Пример #10
0
 def test_update(self):
     pkg = Package('configure')
     # The confball never has a patchlevel since we are upstream...
     self.assertEqual(pkg.patchlevel, -1)
     rc, stdout, stderr = self.run_command(EXECUTABLE, 'update', pkg.name,
                                           pkg.version)
     # Prints nothing to stderr
     self.assertEqual(stderr, '')
     # returns successfully
     self.assertEqual(rc, 0)
     # Prints nothing to stdout
     self.assertEqual(stdout, '')
Пример #11
0
    def download(self, package_name, allow_upstream=False):
        """
        Download a package

        $ sage --package download pari
        Using cached file /home/vbraun/Code/sage.git/upstream/pari-2.8-2044-g89b0f1e.tar.gz
        /home/vbraun/Code/sage.git/upstream/pari-2.8-2044-g89b0f1e.tar.gz
        """
        log.debug('Downloading %s', package_name)
        package = Package(package_name)
        package.tarball.download(allow_upstream=allow_upstream)
        print(package.tarball.upstream_fqn)
Пример #12
0
    def upload(self, package_name):
        """
        Upload a package to the Sage mirror network

        $ sage --package upload pari
        Uploading /home/vbraun/Code/sage.git/upstream/pari-2.8-2044-g89b0f1e.tar.gz
        """
        package = Package(package_name)
        if not os.path.exists(package.tarball.upstream_fqn):
            log.debug('Skipping %s because there is no local tarbal', package_name)
            return
        log.info('Uploading %s', package.tarball.upstream_fqn)
        fs = FileServer()
        fs.upload(package)
Пример #13
0
 def test_checksum(self):
     pkg = Package('configure')
     tarball = pkg.tarball
     with CapturedOutput() as (stdout, stderr):
         with CapturedLog() as log:
             tarball.download()
     self.assertTrue(tarball.checksum_verifies())
     with open(tarball.upstream_fqn, 'w') as f:
         f.write('foobar')
     self.assertFalse(tarball.checksum_verifies())
     with CapturedOutput() as (stdout, stderr):
         with CapturedLog() as log:
             tarball.download()
     msg = log.messages()
     self.assertTrue(
         ('INFO', 'Attempting to download package {0} from mirrors'.format(
             pkg.tarball_filename)) in msg)
     self.assertEqual(stdout.getvalue(), '')
     self.assertEqual(
         stderr.getvalue(),
         '[......................................................................]\n'
     )
     self.assertTrue(tarball.checksum_verifies())
Пример #14
0
 def _update_version(self, new_version):
     old = Package(self.package_name)
     package_version_txt = os.path.join(old.path, 'package-version.txt')
     with open(package_version_txt, 'w') as f:
         f.write(new_version.strip() + '\n')
Пример #15
0
 def package(self):
     if self.__package is None:
         self.__package = Package(self.package_name)
     return self.__package
Пример #16
0
 def test_all(self):
     pari = Package('pari')
     self.assertTrue(pari in Package.all())