Skip to content
Projeler
Gruplar
Parçacıklar
Yardım
Yükleniyor...
Oturum aç / Kaydol
Gezinmeyi değiştir
C
cpython
Proje
Proje
Ayrıntılar
Etkinlik
Cycle Analytics
Depo (repository)
Depo (repository)
Dosyalar
Kayıtlar (commit)
Dallar (branch)
Etiketler
Katkıda bulunanlar
Grafik
Karşılaştır
Grafikler
Konular (issue)
0
Konular (issue)
0
Liste
Pano
Etiketler
Kilometre Taşları
Birleştirme (merge) Talepleri
0
Birleştirme (merge) Talepleri
0
CI / CD
CI / CD
İş akışları (pipeline)
İşler
Zamanlamalar
Grafikler
Paketler
Paketler
Wiki
Wiki
Parçacıklar
Parçacıklar
Üyeler
Üyeler
Collapse sidebar
Close sidebar
Etkinlik
Grafik
Grafikler
Yeni bir konu (issue) oluştur
İşler
Kayıtlar (commit)
Konu (issue) Panoları
Kenar çubuğunu aç
Batuhan Osman TASKAYA
cpython
Commits
0096e262
Kaydet (Commit)
0096e262
authored
Haz 05, 2004
tarafından
Brett Cannon
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
Refactored site.py into functions. Also moved over to using sets.
New regression test suite.
üst
642c8a11
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
202 additions
and
0 deletions
+202
-0
site.py
Lib/site.py
+0
-0
test_site.py
Lib/test/test_site.py
+199
-0
NEWS
Misc/NEWS
+3
-0
No files found.
Lib/site.py
Dosyayı görüntüle @
0096e262
This diff is collapsed.
Click to expand it.
Lib/test/test_site.py
0 → 100644
Dosyayı görüntüle @
0096e262
"""Tests for 'site'.
Tests assume the initial paths in sys.path once the interpreter has begun
executing have not been removed.
"""
import
unittest
from
test.test_support
import
TestSkipped
,
run_unittest
,
TESTFN
import
__builtin__
import
os
import
sys
import
encodings
import
tempfile
# Need to make sure to not import 'site' if someone specified ``-S`` at the
# command-line. Detect this by just making sure 'site' has not been imported
# already.
if
"site"
in
sys
.
modules
:
import
site
else
:
raise
TestSkipped
(
"importation of site.py suppressed"
)
class
HelperFunctionsTests
(
unittest
.
TestCase
):
"""Tests for helper functions.
The setting of the encoding (set using sys.setdefaultencoding) used by
the Unicode implementation is not tested.
"""
def
setUp
(
self
):
"""Save a copy of sys.path"""
self
.
sys_path
=
sys
.
path
[:]
def
tearDown
(
self
):
"""Restore sys.path"""
sys
.
path
=
self
.
sys_path
def
test_makepath
(
self
):
# Test makepath() have an absolute path for its first return value
# and a case-normalized version of the absolute path for its
# second value.
path_parts
=
(
"Beginning"
,
"End"
)
original_dir
=
os
.
path
.
join
(
*
path_parts
)
abs_dir
,
norm_dir
=
site
.
makepath
(
*
path_parts
)
self
.
failUnlessEqual
(
os
.
path
.
abspath
(
original_dir
),
abs_dir
)
if
original_dir
==
os
.
path
.
normcase
(
original_dir
):
self
.
failUnlessEqual
(
abs_dir
,
norm_dir
)
else
:
self
.
failUnlessEqual
(
os
.
path
.
normcase
(
abs_dir
),
norm_dir
)
def
test_init_pathinfo
(
self
):
dir_set
=
site
.
_init_pathinfo
()
for
entry
in
[
site
.
makepath
(
path
)[
1
]
for
path
in
sys
.
path
if
path
and
os
.
path
.
isdir
(
path
)]:
self
.
failUnless
(
entry
in
dir_set
,
"
%
s from sys.path not found in set returned "
"by _init_pathinfo():
%
s"
%
(
entry
,
dir_set
))
def
test_addpackage
(
self
):
# Make sure addpackage() imports if the line starts with 'import',
# otherwise add a directory combined from sitedir and 'name'.
# Must also skip comment lines.
dir_path
,
file_name
,
new_dir
=
createpth
()
try
:
site
.
addpackage
(
dir_path
,
file_name
,
set
())
self
.
failUnless
(
site
.
makepath
(
os
.
path
.
join
(
dir_path
,
new_dir
))[
0
]
in
sys
.
path
)
finally
:
cleanuppth
(
dir_path
,
file_name
,
new_dir
)
def
test_addsitedir
(
self
):
dir_path
,
file_name
,
new_dir
=
createpth
()
try
:
site
.
addsitedir
(
dir_path
,
set
())
self
.
failUnless
(
site
.
makepath
(
os
.
path
.
join
(
dir_path
,
new_dir
))[
0
]
in
sys
.
path
)
finally
:
cleanuppth
(
dir_path
,
file_name
,
new_dir
)
def
createpth
():
"""Create a temporary .pth file at the returned location and return the
directory where it was created, the pth file name, and the directory
specified in the pth file.
Make sure to delete the file when finished.
"""
pth_dirname
=
"__testdir__"
file_name
=
TESTFN
+
".pth"
full_dirname
=
os
.
path
.
dirname
(
os
.
path
.
abspath
(
file_name
))
FILE
=
file
(
os
.
path
.
join
(
full_dirname
,
file_name
),
'w'
)
try
:
print
>>
FILE
,
"#import @bad module name"
print
>>
FILE
,
''
print
>>
FILE
,
"import os"
print
>>
FILE
,
pth_dirname
finally
:
FILE
.
close
()
os
.
mkdir
(
os
.
path
.
join
(
full_dirname
,
pth_dirname
))
return
full_dirname
,
file_name
,
pth_dirname
def
cleanuppth
(
full_dirname
,
file_name
,
pth_dirname
):
"""Clean up what createpth() made"""
os
.
remove
(
os
.
path
.
join
(
full_dirname
,
file_name
))
os
.
rmdir
(
os
.
path
.
join
(
full_dirname
,
pth_dirname
))
class
ImportSideEffectTests
(
unittest
.
TestCase
):
"""Test side-effects from importing 'site'."""
def
setUp
(
self
):
"""Make a copy of sys.path"""
self
.
sys_path
=
sys
.
path
[:]
def
tearDown
(
self
):
"""Restore sys.path"""
sys
.
path
=
self
.
sys_path
def
test_abs__file__
(
self
):
# Make sure all imported modules have their __file__ attribute
# as an absolute path.
# Handled by abs__file__()
site
.
abs__file__
()
for
module
in
sys
.
modules
.
values
():
try
:
self
.
failUnless
(
os
.
path
.
isabs
(
module
.
__file__
))
except
AttributeError
:
continue
def
test_no_duplicate_paths
(
self
):
# No duplicate paths should exist in sys.path
# Handled by removeduppaths()
site
.
removeduppaths
()
seen_paths
=
set
()
for
path
in
sys
.
path
:
self
.
failUnless
(
path
not
in
seen_paths
)
seen_paths
.
add
(
path
)
def
test_add_build_dir
(
self
):
# Test that the build directory's Modules directory is used when it
# should be.
# XXX: implement
pass
def
test_sitepackages
(
self
):
# There should be a path that ends in site-packages
for
path
in
sys
.
path
:
if
path
.
endswith
(
"site-packages"
):
break
else
:
self
.
fail
(
"'site-packages' directory missing'"
)
def
test_setting_quit
(
self
):
# 'quit' and 'exit' should be injected into __builtin__
self
.
failUnless
(
hasattr
(
__builtin__
,
"quit"
))
self
.
failUnless
(
hasattr
(
__builtin__
,
"exit"
))
def
test_setting_copyright
(
self
):
# 'copyright' and 'credits' should be in __builtin__
self
.
failUnless
(
hasattr
(
__builtin__
,
"copyright"
))
self
.
failUnless
(
hasattr
(
__builtin__
,
"credits"
))
def
test_setting_help
(
self
):
# 'help' should be set in __builtin__
self
.
failUnless
(
hasattr
(
__builtin__
,
"help"
))
def
test_aliasing_mbcs
(
self
):
if
sys
.
platform
==
"win32"
:
import
locale
if
locale
.
getdefaultlocale
()[
1
]
.
startswith
(
'cp'
):
for
value
in
encodings
.
aliases
.
aliases
.
itervalues
():
if
value
==
"mbcs"
:
break
else
:
self
.
fail
(
"did not alias mbcs"
)
def
test_setdefaultencoding_removed
(
self
):
# Make sure sys.setdefaultencoding is gone
self
.
failUnless
(
not
hasattr
(
sys
,
"setdefaultencoding"
))
def
test_sitecustomize_executed
(
self
):
# If sitecustomize is available, it should have been imported.
if
not
sys
.
modules
.
has_key
(
"sitecustomize"
):
try
:
import
sitecustomize
except
ImportError
:
pass
else
:
self
.
fail
(
"sitecustomize not imported automatically"
)
def
test_main
():
run_unittest
(
HelperFunctionsTests
,
ImportSideEffectTests
)
if
__name__
==
"__main__"
:
test_main
()
Misc/NEWS
Dosyayı görüntüle @
0096e262
...
...
@@ -322,6 +322,9 @@ Extension modules
Library
-------
-
refactored
site
.
py
into
functions
.
Also
wrote
regression
tests
for
the
module
.
-
asyncore
.
loop
now
has
repeat
count
parameter
that
defaults
to
infinity
.
-
The
distutils
sdist
command
now
ignores
all
.
svn
directories
,
in
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment