Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
sagemath
GitHub Repository: sagemath/sage
Path: blob/develop/build/test/test_tarball.py
4052 views
1
# -*- coding: utf-8 -*-
2
"""
3
Test Sage Third-Party Tarball Handling
4
"""
5
6
# ****************************************************************************
7
# Copyright (C) 2015 Volker Braun <[email protected]>
8
#
9
# This program is free software: you can redistribute it and/or modify
10
# it under the terms of the GNU General Public License as published by
11
# the Free Software Foundation, either version 2 of the License, or
12
# (at your option) any later version.
13
# https://www.gnu.org/licenses/
14
# ****************************************************************************
15
16
import unittest
17
import logging
18
19
from sage_bootstrap.package import Package
20
from sage_bootstrap.tarball import Tarball
21
22
from .capture import CapturedLog, CapturedOutput
23
24
25
log = logging.getLogger()
26
27
28
class TarballTestCase(unittest.TestCase):
29
30
def test_tarball(self):
31
pkg = Package('configure')
32
tarball = Tarball(pkg.tarball_filename)
33
self.assertEqual(tarball, pkg.tarball)
34
self.assertEqual(pkg, tarball.package)
35
with CapturedOutput() as (stdout, stderr):
36
with CapturedLog() as _:
37
tarball.download()
38
self.assertEqual(stdout.getvalue(), '')
39
self.assertTrue(tarball.checksum_verifies())
40
41
def test_checksum(self):
42
pkg = Package('configure')
43
tarball = pkg.tarball
44
with CapturedOutput() as (stdout, stderr):
45
with CapturedLog() as log:
46
tarball.download()
47
self.assertTrue(tarball.checksum_verifies())
48
with open(tarball.upstream_fqn, 'w') as f:
49
f.write('foobar')
50
self.assertFalse(tarball.checksum_verifies())
51
with CapturedOutput() as (stdout, stderr):
52
with CapturedLog() as log:
53
tarball.download()
54
msg = log.messages()
55
self.assertTrue(
56
('INFO', 'Attempting to download package {0} from mirrors'.format(pkg.tarball_filename)) in msg)
57
self.assertEqual(stdout.getvalue(), '')
58
self.assertEqual(stderr.getvalue(),
59
'[......................................................................]\n')
60
self.assertTrue(tarball.checksum_verifies())
61
62