blob: c4e333efd7a49fa857d36123fb74925f43f78d61 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
"""Tests of coverage/python.py"""
import os
import sys
from coverage import env
from coverage.python import get_zip_bytes, source_for_file
from tests.coveragetest import CoverageTest
class GetZipBytesTest(CoverageTest):
"""Tests of `get_zip_bytes`."""
run_in_temp_dir = False
def test_get_encoded_zip_files(self):
# See igor.py, do_zipmods, for the text of these files.
zip_file = "tests/zipmods.zip"
sys.path.append(zip_file) # So we can import the files.
for encoding in ["utf8", "gb2312", "hebrew", "shift_jis", "cp1252"]:
filename = zip_file + "/encoded_" + encoding + ".py"
filename = filename.replace("/", os.sep)
zip_data = get_zip_bytes(filename)
zip_text = zip_data.decode(encoding)
self.assertIn('All OK', zip_text)
# Run the code to see that we really got it encoded properly.
__import__("encoded_"+encoding)
def test_source_for_file(tmpdir):
path = tmpdir.join("a.py")
src = str(path)
assert src == source_for_file(src)
assert src == source_for_file(src + 'c')
assert src == source_for_file(src + 'o')
unknown = src + 'FOO'
assert unknown == source_for_file(unknown)
#
# On windows if a pyw exists, it is an acceptable source
#
windows = env.WINDOWS
env.WINDOWS = True
path_windows = tmpdir.ensure("a.pyw")
assert str(path_windows) == source_for_file(src + 'c')
#
# If both pyw and py exist, py is preferred
#
path.ensure(file=True)
assert src == source_for_file(src + 'c')
env.WINDOWS = windows
jython_src = "a"
assert jython_src + ".py" == source_for_file(jython_src + "$py.class")
|