Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
S
setuptools
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Jérome Perrin
setuptools
Commits
a7e5648b
Commit
a7e5648b
authored
Dec 24, 2014
by
Jason R. Coombs
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Removed svn support from setuptools. Ref #313.
parent
21f75391
Changes
8
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
9 additions
and
1272 deletions
+9
-1272
setup.py
setup.py
+0
-3
setuptools/command/egg_info.py
setuptools/command/egg_info.py
+7
-1
setuptools/command/sdist.py
setuptools/command/sdist.py
+0
-57
setuptools/svn_utils.py
setuptools/svn_utils.py
+0
-585
setuptools/tests/environment.py
setuptools/tests/environment.py
+0
-58
setuptools/tests/test_egg_info.py
setuptools/tests/test_egg_info.py
+1
-190
setuptools/tests/test_sdist.py
setuptools/tests/test_sdist.py
+1
-133
setuptools/tests/test_svn.py
setuptools/tests/test_svn.py
+0
-245
No files found.
setup.py
View file @
a7e5648b
...
...
@@ -172,9 +172,6 @@ setup_params = dict(
],
"console_scripts"
:
console_scripts
,
"setuptools.file_finders"
:
[
"svn_cvs = setuptools.command.sdist:_default_revctrl"
],
"setuptools.installation"
:
[
'eggsecutable = setuptools.command.easy_install:bootstrap'
],
},
...
...
setuptools/command/egg_info.py
View file @
a7e5648b
...
...
@@ -11,10 +11,14 @@ import os
import
re
import
sys
try
:
from
setuptools_svn
import
svn_utils
except
ImportError
:
pass
from
setuptools
import
Command
from
setuptools.command.sdist
import
sdist
from
setuptools.compat
import
basestring
,
PY3
,
StringIO
from
setuptools
import
svn_utils
from
setuptools.command.sdist
import
walk_revctrl
from
pkg_resources
import
(
parse_requirements
,
safe_name
,
parse_version
,
...
...
@@ -190,6 +194,8 @@ class egg_info(Command):
@
staticmethod
def
get_svn_revision
():
if
'svn_utils'
not
in
globals
():
return
"0"
return
str
(
svn_utils
.
SvnInfo
.
load
(
os
.
curdir
).
get_revision
())
def
find_sources
(
self
):
...
...
setuptools/command/sdist.py
View file @
a7e5648b
from
glob
import
glob
from
distutils.util
import
convert_path
from
distutils
import
log
import
distutils.command.sdist
as
orig
import
os
import
re
import
sys
from
setuptools
import
svn_utils
from
setuptools.compat
import
PY3
from
setuptools.utils
import
cs_path_exists
...
...
@@ -22,60 +19,6 @@ def walk_revctrl(dirname=''):
yield
item
# TODO will need test case
class
re_finder
(
object
):
"""
Finder that locates files based on entries in a file matched by a
regular expression.
"""
def
__init__
(
self
,
path
,
pattern
,
postproc
=
lambda
x
:
x
):
self
.
pattern
=
pattern
self
.
postproc
=
postproc
self
.
entries_path
=
convert_path
(
path
)
def
_finder
(
self
,
dirname
,
filename
):
f
=
open
(
filename
,
'rU'
)
try
:
data
=
f
.
read
()
finally
:
f
.
close
()
for
match
in
self
.
pattern
.
finditer
(
data
):
path
=
match
.
group
(
1
)
# postproc was formerly used when the svn finder
# was an re_finder for calling unescape
path
=
self
.
postproc
(
path
)
yield
svn_utils
.
joinpath
(
dirname
,
path
)
def
find
(
self
,
dirname
=
''
):
path
=
svn_utils
.
joinpath
(
dirname
,
self
.
entries_path
)
if
not
os
.
path
.
isfile
(
path
):
# entries file doesn't exist
return
for
path
in
self
.
_finder
(
dirname
,
path
):
if
os
.
path
.
isfile
(
path
):
yield
path
elif
os
.
path
.
isdir
(
path
):
for
item
in
self
.
find
(
path
):
yield
item
__call__
=
find
def
_default_revctrl
(
dirname
=
''
):
'Primary svn_cvs entry point'
for
finder
in
finders
:
for
item
in
finder
(
dirname
):
yield
item
finders
=
[
re_finder
(
'CVS/Entries'
,
re
.
compile
(
r"^\
w?/([^/]+)/
", re.M)),
svn_utils.svn_finder,
]
class
sdist
(
orig
.
sdist
):
"""Smart sdist that finds anything supported by revision control"""
...
...
setuptools/svn_utils.py
deleted
100644 → 0
View file @
21f75391
This diff is collapsed.
Click to expand it.
setuptools/tests/environment.py
View file @
a7e5648b
import
os
import
zipfile
import
sys
import
tempfile
import
unittest
import
shutil
import
stat
import
unicodedata
from
subprocess
import
Popen
as
_Popen
,
PIPE
as
_PIPE
def
_remove_dir
(
target
):
#on windows this seems to a problem
for
dir_path
,
dirs
,
files
in
os
.
walk
(
target
):
os
.
chmod
(
dir_path
,
stat
.
S_IWRITE
)
for
filename
in
files
:
os
.
chmod
(
os
.
path
.
join
(
dir_path
,
filename
),
stat
.
S_IWRITE
)
shutil
.
rmtree
(
target
)
class
ZippedEnvironment
(
unittest
.
TestCase
):
datafile
=
None
dataname
=
None
old_cwd
=
None
def
setUp
(
self
):
if
self
.
datafile
is
None
or
self
.
dataname
is
None
:
return
if
not
os
.
path
.
isfile
(
self
.
datafile
):
self
.
old_cwd
=
None
return
self
.
old_cwd
=
os
.
getcwd
()
self
.
temp_dir
=
tempfile
.
mkdtemp
()
zip_file
,
source
,
target
=
[
None
,
None
,
None
]
try
:
zip_file
=
zipfile
.
ZipFile
(
self
.
datafile
)
for
files
in
zip_file
.
namelist
():
zip_file
.
extract
(
files
,
self
.
temp_dir
)
finally
:
if
zip_file
:
zip_file
.
close
()
del
zip_file
os
.
chdir
(
os
.
path
.
join
(
self
.
temp_dir
,
self
.
dataname
))
def
tearDown
(
self
):
#Assume setUp was never completed
if
self
.
dataname
is
None
or
self
.
datafile
is
None
:
return
try
:
if
self
.
old_cwd
:
os
.
chdir
(
self
.
old_cwd
)
_remove_dir
(
self
.
temp_dir
)
except
OSError
:
#sigh?
pass
def
_which_dirs
(
cmd
):
result
=
set
()
for
path
in
os
.
environ
.
get
(
'PATH'
,
''
).
split
(
os
.
pathsep
):
...
...
setuptools/tests/test_egg_info.py
View file @
a7e5648b
import
distutils.core
import
os
import
sys
import
tempfile
import
shutil
import
stat
import
unittest
import
pkg_resources
import
warnings
from
setuptools.command
import
egg_info
from
setuptools
import
svn_utils
from
setuptools.tests
import
environment
,
test_svn
from
setuptools.tests.py26compat
import
skipIf
ENTRIES_V10
=
pkg_resources
.
resource_string
(
__name__
,
'entries-v10'
)
"An entries file generated with svn 1.6.17 against the legacy Setuptools repo"
from
.
import
environment
class
TestEggInfo
(
unittest
.
TestCase
):
def
setUp
(
self
):
self
.
test_dir
=
tempfile
.
mkdtemp
()
os
.
mkdir
(
os
.
path
.
join
(
self
.
test_dir
,
'.svn'
))
self
.
old_cwd
=
os
.
getcwd
()
os
.
chdir
(
self
.
test_dir
)
...
...
@@ -31,12 +19,6 @@ class TestEggInfo(unittest.TestCase):
os
.
chdir
(
self
.
old_cwd
)
shutil
.
rmtree
(
self
.
test_dir
)
def
_write_entries
(
self
,
entries
):
fn
=
os
.
path
.
join
(
self
.
test_dir
,
'.svn'
,
'entries'
)
entries_f
=
open
(
fn
,
'wb'
)
entries_f
.
write
(
entries
)
entries_f
.
close
()
def
_create_project
(
self
):
with
open
(
'setup.py'
,
'w'
)
as
f
:
f
.
write
(
'from setuptools import setup
\
n
'
)
...
...
@@ -51,52 +33,6 @@ class TestEggInfo(unittest.TestCase):
f
.
write
(
'def run():
\
n
'
)
f
.
write
(
" print('hello')
\
n
"
)
@
skipIf
(
not
test_svn
.
_svn_check
,
"No SVN to text, in the first place"
)
def
test_version_10_format
(
self
):
"""
"""
#keeping this set for 1.6 is a good check on the get_svn_revision
#to ensure I return using svnversion what would had been returned
version_str
=
svn_utils
.
SvnInfo
.
get_svn_version
()
version
=
[
int
(
x
)
for
x
in
version_str
.
split
(
'.'
)[:
2
]]
if
version
!=
[
1
,
6
]:
if
hasattr
(
self
,
'skipTest'
):
self
.
skipTest
(
''
)
else
:
sys
.
stderr
.
write
(
'
\
n
Skipping due to SVN Version
\
n
'
)
return
self
.
_write_entries
(
ENTRIES_V10
)
rev
=
egg_info
.
egg_info
.
get_svn_revision
()
self
.
assertEqual
(
rev
,
'89000'
)
def
test_version_10_format_legacy_parser
(
self
):
"""
"""
path_variable
=
None
for
env
in
os
.
environ
:
if
env
.
lower
()
==
'path'
:
path_variable
=
env
if
path_variable
:
old_path
=
os
.
environ
[
path_variable
]
os
.
environ
[
path_variable
]
=
''
#catch_warnings not available until py26
warning_filters
=
warnings
.
filters
warnings
.
filters
=
warning_filters
[:]
try
:
warnings
.
simplefilter
(
"ignore"
,
DeprecationWarning
)
self
.
_write_entries
(
ENTRIES_V10
)
rev
=
egg_info
.
egg_info
.
get_svn_revision
()
finally
:
#restore the warning filters
warnings
.
filters
=
warning_filters
#restore the os path
if
path_variable
:
os
.
environ
[
path_variable
]
=
old_path
self
.
assertEqual
(
rev
,
'89000'
)
def
test_egg_base_installed_egg_info
(
self
):
self
.
_create_project
()
temp_dir
=
tempfile
.
mkdtemp
(
prefix
=
'setuptools-test.'
)
...
...
@@ -139,130 +75,5 @@ class TestEggInfo(unittest.TestCase):
shutil
.
rmtree
(
temp_dir
)
DUMMY_SOURCE_TXT
=
"""CHANGES.txt
CONTRIBUTORS.txt
HISTORY.txt
LICENSE
MANIFEST.in
README.txt
setup.py
dummy/__init__.py
dummy/test.txt
dummy.egg-info/PKG-INFO
dummy.egg-info/SOURCES.txt
dummy.egg-info/dependency_links.txt
dummy.egg-info/top_level.txt"""
class
TestSvnDummy
(
environment
.
ZippedEnvironment
):
def
setUp
(
self
):
version
=
svn_utils
.
SvnInfo
.
get_svn_version
()
if
not
version
:
# None or Empty
return
None
self
.
base_version
=
tuple
([
int
(
x
)
for
x
in
version
.
split
(
'.'
)][:
2
])
if
not
self
.
base_version
:
raise
ValueError
(
'No SVN tools installed'
)
elif
self
.
base_version
<
(
1
,
3
):
raise
ValueError
(
'Insufficient SVN Version %s'
%
version
)
elif
self
.
base_version
>=
(
1
,
9
):
#trying the latest version
self
.
base_version
=
(
1
,
8
)
self
.
dataname
=
"dummy%i%i"
%
self
.
base_version
self
.
datafile
=
os
.
path
.
join
(
'setuptools'
,
'tests'
,
'svn_data'
,
self
.
dataname
+
".zip"
)
super
(
TestSvnDummy
,
self
).
setUp
()
@
skipIf
(
not
test_svn
.
_svn_check
,
"No SVN to text, in the first place"
)
def
test_sources
(
self
):
code
,
data
=
environment
.
run_setup_py
([
"sdist"
],
pypath
=
self
.
old_cwd
,
data_stream
=
1
)
if
code
:
raise
AssertionError
(
data
)
sources
=
os
.
path
.
join
(
'dummy.egg-info'
,
'SOURCES.txt'
)
infile
=
open
(
sources
,
'r'
)
try
:
read_contents
=
infile
.
read
()
finally
:
infile
.
close
()
del
infile
self
.
assertEqual
(
DUMMY_SOURCE_TXT
,
read_contents
)
return
data
@
skipIf
(
not
test_svn
.
_svn_check
,
"No SVN to text, in the first place"
)
def
test_svn_tags
(
self
):
code
,
data
=
environment
.
run_setup_py
([
"egg_info"
,
"--tag-svn-revision"
],
pypath
=
self
.
old_cwd
,
data_stream
=
1
)
if
code
:
raise
AssertionError
(
data
)
pkginfo
=
os
.
path
.
join
(
'dummy.egg-info'
,
'PKG-INFO'
)
infile
=
open
(
pkginfo
,
'r'
)
try
:
read_contents
=
infile
.
readlines
()
finally
:
infile
.
close
()
del
infile
self
.
assertTrue
(
"Version: 0.1.1.post1
\
n
"
in
read_contents
)
@
skipIf
(
not
test_svn
.
_svn_check
,
"No SVN to text, in the first place"
)
def
test_no_tags
(
self
):
code
,
data
=
environment
.
run_setup_py
([
"egg_info"
],
pypath
=
self
.
old_cwd
,
data_stream
=
1
)
if
code
:
raise
AssertionError
(
data
)
pkginfo
=
os
.
path
.
join
(
'dummy.egg-info'
,
'PKG-INFO'
)
infile
=
open
(
pkginfo
,
'r'
)
try
:
read_contents
=
infile
.
readlines
()
finally
:
infile
.
close
()
del
infile
self
.
assertTrue
(
"Version: 0.1.1
\
n
"
in
read_contents
)
class
TestSvnDummyLegacy
(
environment
.
ZippedEnvironment
):
def
setUp
(
self
):
self
.
base_version
=
(
1
,
6
)
self
.
dataname
=
"dummy%i%i"
%
self
.
base_version
self
.
datafile
=
os
.
path
.
join
(
'setuptools'
,
'tests'
,
'svn_data'
,
self
.
dataname
+
".zip"
)
super
(
TestSvnDummyLegacy
,
self
).
setUp
()
def
test_sources
(
self
):
code
,
data
=
environment
.
run_setup_py
([
"sdist"
],
pypath
=
self
.
old_cwd
,
path
=
""
,
data_stream
=
1
)
if
code
:
raise
AssertionError
(
data
)
sources
=
os
.
path
.
join
(
'dummy.egg-info'
,
'SOURCES.txt'
)
infile
=
open
(
sources
,
'r'
)
try
:
read_contents
=
infile
.
read
()
finally
:
infile
.
close
()
del
infile
self
.
assertEqual
(
DUMMY_SOURCE_TXT
,
read_contents
)
return
data
def
test_suite
():
return
unittest
.
defaultTestLoader
.
loadTestsFromName
(
__name__
)
setuptools/tests/test_sdist.py
View file @
a7e5648b
...
...
@@ -8,16 +8,13 @@ import sys
import
tempfile
import
unittest
import
unicodedata
import
re
import
contextlib
from
setuptools.tests
import
environment
,
test_svn
from
setuptools.tests.py26compat
import
skipIf
from
setuptools.compat
import
StringIO
,
unicode
,
PY3
,
PY2
from
setuptools.command.sdist
import
sdist
,
walk_revctrl
from
setuptools.command.sdist
import
sdist
from
setuptools.command.egg_info
import
manifest_maker
from
setuptools.dist
import
Distribution
from
setuptools
import
svn_utils
SETUP_ATTRS
=
{
'name'
:
'sdist_test'
,
...
...
@@ -418,135 +415,6 @@ class TestSdistTest(unittest.TestCase):
except
UnicodeDecodeError
:
self
.
assertFalse
(
filename
in
cmd
.
filelist
.
files
)
class
TestDummyOutput
(
environment
.
ZippedEnvironment
):
def
setUp
(
self
):
self
.
datafile
=
os
.
path
.
join
(
'setuptools'
,
'tests'
,
'svn_data'
,
"dummy.zip"
)
self
.
dataname
=
"dummy"
super
(
TestDummyOutput
,
self
).
setUp
()
def
_run
(
self
):
code
,
data
=
environment
.
run_setup_py
([
"sdist"
],
pypath
=
self
.
old_cwd
,
data_stream
=
0
)
if
code
:
info
=
"DIR: "
+
os
.
path
.
abspath
(
'.'
)
info
+=
"
\
n
SDIST RETURNED: %i
\
n
\
n
"
%
code
info
+=
data
raise
AssertionError
(
info
)
datalines
=
data
.
splitlines
()
possible
=
(
"running sdist"
,
"running egg_info"
,
"creating dummy
\
.egg-i
n
fo"
,
"writing dummy
\
.egg-i
n
fo"
,
"writing top-level names to dummy
\
.egg-i
n
fo"
,
"writing dependency_links to dummy
\
.egg-i
n
fo"
,
"writing manifest file 'dummy
\
.egg-i
n
fo"
,
"reading manifest file 'dummy
\
.egg-i
n
fo"
,
"reading manifest template 'MANIFEST
\
.i
n
'"
,
"writing manifest file 'dummy
\
.egg-i
n
fo"
,
"creating dummy-0.1.1"
,
"making hard links in dummy-0
\
.
1
\
.
1
"
,
"copying files to dummy-0
\
.
1
\
.
1
"
,
"copying
\
S+ -> dummy-
0
\
.
1
\
.
1
"
,
"copying dummy"
,
"copying dummy
\
.egg-i
n
fo"
,
"hard linking
\
S+ -> dummy-
0
\
.
1
\
.
1
"
,
"hard linking dummy"
,
"hard linking dummy
\
.egg-i
n
fo"
,
"Writing dummy-0
\
.
1
\
.
1
"
,
"creating dist"
,
"creating 'dist"
,
"Creating tar archive"
,
"running check"
,
"adding 'dummy-0
\
.
1
\
.
1
"
,
"tar .+ dist/dummy-0
\
.
1
\
.
1
\
.
t
ar dummy-0
\
.
1
\
.
1
"
,
"gzip .+ dist/dummy-0
\
.
1
\
.
1
\
.
t
ar"
,
"removing 'dummy-0
\
.
1
\
.
1
'
\
\
(and everything under it
\
\
)"
,
)
print
(
" DIR: "
+
os
.
path
.
abspath
(
'.'
))
for
line
in
datalines
:
found
=
False
for
pattern
in
possible
:
if
re
.
match
(
pattern
,
line
):
print
(
" READ: "
+
line
)
found
=
True
break
if
not
found
:
raise
AssertionError
(
"Unexpexected: %s
\
n
-in-
\
n
%s"
%
(
line
,
data
))
return
data
def
test_sources
(
self
):
self
.
_run
()
class
TestSvn
(
environment
.
ZippedEnvironment
):
def
setUp
(
self
):
version
=
svn_utils
.
SvnInfo
.
get_svn_version
()
if
not
version
:
# None or Empty
return
self
.
base_version
=
tuple
([
int
(
x
)
for
x
in
version
.
split
(
'.'
)][:
2
])
if
not
self
.
base_version
:
raise
ValueError
(
'No SVN tools installed'
)
elif
self
.
base_version
<
(
1
,
3
):
raise
ValueError
(
'Insufficient SVN Version %s'
%
version
)
elif
self
.
base_version
>=
(
1
,
9
):
# trying the latest version
self
.
base_version
=
(
1
,
8
)
self
.
dataname
=
"svn%i%i_example"
%
self
.
base_version
self
.
datafile
=
os
.
path
.
join
(
'setuptools'
,
'tests'
,
'svn_data'
,
self
.
dataname
+
".zip"
)
super
(
TestSvn
,
self
).
setUp
()
@
skipIf
(
not
test_svn
.
_svn_check
,
"No SVN to text, in the first place"
)
def
test_walksvn
(
self
):
if
self
.
base_version
>=
(
1
,
6
):
folder2
=
'third party2'
folder3
=
'third party3'
else
:
folder2
=
'third_party2'
folder3
=
'third_party3'
# TODO is this right
expected
=
set
([
os
.
path
.
join
(
'a file'
),
os
.
path
.
join
(
folder2
,
'Changes.txt'
),
os
.
path
.
join
(
folder2
,
'MD5SUMS'
),
os
.
path
.
join
(
folder2
,
'README.txt'
),
os
.
path
.
join
(
folder3
,
'Changes.txt'
),
os
.
path
.
join
(
folder3
,
'MD5SUMS'
),
os
.
path
.
join
(
folder3
,
'README.txt'
),
os
.
path
.
join
(
folder3
,
'TODO.txt'
),
os
.
path
.
join
(
folder3
,
'fin'
),
os
.
path
.
join
(
'third_party'
,
'README.txt'
),
os
.
path
.
join
(
'folder'
,
folder2
,
'Changes.txt'
),
os
.
path
.
join
(
'folder'
,
folder2
,
'MD5SUMS'
),
os
.
path
.
join
(
'folder'
,
folder2
,
'WatashiNiYomimasu.txt'
),
os
.
path
.
join
(
'folder'
,
folder3
,
'Changes.txt'
),
os
.
path
.
join
(
'folder'
,
folder3
,
'fin'
),
os
.
path
.
join
(
'folder'
,
folder3
,
'MD5SUMS'
),
os
.
path
.
join
(
'folder'
,
folder3
,
'oops'
),
os
.
path
.
join
(
'folder'
,
folder3
,
'WatashiNiYomimasu.txt'
),
os
.
path
.
join
(
'folder'
,
folder3
,
'ZuMachen.txt'
),
os
.
path
.
join
(
'folder'
,
'third_party'
,
'WatashiNiYomimasu.txt'
),
os
.
path
.
join
(
'folder'
,
'lalala.txt'
),
os
.
path
.
join
(
'folder'
,
'quest.txt'
),
# The example will have a deleted file
# (or should) but shouldn't return it
])
self
.
assertEqual
(
set
(
x
for
x
in
walk_revctrl
()),
expected
)
def
test_suite
():
return
unittest
.
defaultTestLoader
.
loadTestsFromName
(
__name__
)
setuptools/tests/test_svn.py
deleted
100644 → 0
View file @
21f75391
# -*- coding: utf-8 -*-
"""svn tests"""
import
io
import
os
import
subprocess
import
sys
import
unittest
from
setuptools.tests
import
environment
from
setuptools.compat
import
unicode
,
unichr
from
setuptools
import
svn_utils
from
setuptools.tests.py26compat
import
skipIf
def
_do_svn_check
():
try
:
subprocess
.
check_call
([
"svn"
,
"--version"
],
shell
=
(
sys
.
platform
==
'win32'
))
return
True
except
(
OSError
,
subprocess
.
CalledProcessError
):
return
False
_svn_check
=
_do_svn_check
()
class
TestSvnVersion
(
unittest
.
TestCase
):
def
test_no_svn_found
(
self
):
path_variable
=
None
for
env
in
os
.
environ
:
if
env
.
lower
()
==
'path'
:
path_variable
=
env
if
path_variable
is
None
:
try
:
self
.
skipTest
(
'Cannot figure out how to modify path'
)
except
AttributeError
:
# PY26 doesn't have this
return
old_path
=
os
.
environ
[
path_variable
]
os
.
environ
[
path_variable
]
=
''
try
:
version
=
svn_utils
.
SvnInfo
.
get_svn_version
()
self
.
assertEqual
(
version
,
''
)
finally
:
os
.
environ
[
path_variable
]
=
old_path
@
skipIf
(
not
_svn_check
,
"No SVN to text, in the first place"
)
def
test_svn_should_exist
(
self
):
version
=
svn_utils
.
SvnInfo
.
get_svn_version
()
self
.
assertNotEqual
(
version
,
''
)
def
_read_utf8_file
(
path
):
fileobj
=
None
try
:
fileobj
=
io
.
open
(
path
,
'r'
,
encoding
=
'utf-8'
)
data
=
fileobj
.
read
()
return
data
finally
:
if
fileobj
:
fileobj
.
close
()
class
ParserInfoXML
(
unittest
.
TestCase
):
def
parse_tester
(
self
,
svn_name
,
ext_spaces
):
path
=
os
.
path
.
join
(
'setuptools'
,
'tests'
,
'svn_data'
,
svn_name
+
'_info.xml'
)
#Remember these are pre-generated to test XML parsing
# so these paths might not valid on your system
example_base
=
"%s_example"
%
svn_name
data
=
_read_utf8_file
(
path
)
expected
=
set
([
(
"
\
\
"
.
join
((
example_base
,
'a file'
)),
'file'
),
(
"
\
\
"
.
join
((
example_base
,
'folder'
)),
'dir'
),
(
"
\
\
"
.
join
((
example_base
,
'folder'
,
'lalala.txt'
)),
'file'
),
(
"
\
\
"
.
join
((
example_base
,
'folder'
,
'quest.txt'
)),
'file'
),
])
self
.
assertEqual
(
set
(
x
for
x
in
svn_utils
.
parse_dir_entries
(
data
)),
expected
)
def
test_svn13
(
self
):
self
.
parse_tester
(
'svn13'
,
False
)
def
test_svn14
(
self
):
self
.
parse_tester
(
'svn14'
,
False
)
def
test_svn15
(
self
):
self
.
parse_tester
(
'svn15'
,
False
)
def
test_svn16
(
self
):
self
.
parse_tester
(
'svn16'
,
True
)
def
test_svn17
(
self
):
self
.
parse_tester
(
'svn17'
,
True
)
def
test_svn18
(
self
):
self
.
parse_tester
(
'svn18'
,
True
)
class
ParserExternalXML
(
unittest
.
TestCase
):
def
parse_tester
(
self
,
svn_name
,
ext_spaces
):
path
=
os
.
path
.
join
(
'setuptools'
,
'tests'
,
'svn_data'
,
svn_name
+
'_ext_list.xml'
)
example_base
=
svn_name
+
'_example'
data
=
_read_utf8_file
(
path
)
if
ext_spaces
:
folder2
=
'third party2'
folder3
=
'third party3'
else
:
folder2
=
'third_party2'
folder3
=
'third_party3'
expected
=
set
([
os
.
sep
.
join
((
example_base
,
folder2
)),
os
.
sep
.
join
((
example_base
,
folder3
)),
# folder is third_party大介
os
.
sep
.
join
((
example_base
,
unicode
(
'third_party'
)
+
unichr
(
0x5927
)
+
unichr
(
0x4ecb
))),
os
.
sep
.
join
((
example_base
,
'folder'
,
folder2
)),
os
.
sep
.
join
((
example_base
,
'folder'
,
folder3
)),
os
.
sep
.
join
((
example_base
,
'folder'
,
unicode
(
'third_party'
)
+
unichr
(
0x5927
)
+
unichr
(
0x4ecb
))),
])
expected
=
set
(
os
.
path
.
normpath
(
x
)
for
x
in
expected
)
dir_base
=
os
.
sep
.
join
((
'C:'
,
'development'
,
'svn_example'
))
self
.
assertEqual
(
set
(
x
for
x
in
svn_utils
.
parse_externals_xml
(
data
,
dir_base
)),
expected
)
def
test_svn15
(
self
):
self
.
parse_tester
(
'svn15'
,
False
)
def
test_svn16
(
self
):
self
.
parse_tester
(
'svn16'
,
True
)
def
test_svn17
(
self
):
self
.
parse_tester
(
'svn17'
,
True
)
def
test_svn18
(
self
):
self
.
parse_tester
(
'svn18'
,
True
)
class
ParseExternal
(
unittest
.
TestCase
):
def
parse_tester
(
self
,
svn_name
,
ext_spaces
):
path
=
os
.
path
.
join
(
'setuptools'
,
'tests'
,
'svn_data'
,
svn_name
+
'_ext_list.txt'
)
data
=
_read_utf8_file
(
path
)
if
ext_spaces
:
expected
=
set
([
'third party2'
,
'third party3'
,
'third party3b'
,
'third_party'
])
else
:
expected
=
set
([
'third_party2'
,
'third_party3'
,
'third_party'
])
self
.
assertEqual
(
set
(
x
for
x
in
svn_utils
.
parse_external_prop
(
data
)),
expected
)
def
test_svn13
(
self
):
self
.
parse_tester
(
'svn13'
,
False
)
def
test_svn14
(
self
):
self
.
parse_tester
(
'svn14'
,
False
)
def
test_svn15
(
self
):
self
.
parse_tester
(
'svn15'
,
False
)
def
test_svn16
(
self
):
self
.
parse_tester
(
'svn16'
,
True
)
def
test_svn17
(
self
):
self
.
parse_tester
(
'svn17'
,
True
)
def
test_svn18
(
self
):
self
.
parse_tester
(
'svn18'
,
True
)
class
TestSvn
(
environment
.
ZippedEnvironment
):
def
setUp
(
self
):
version
=
svn_utils
.
SvnInfo
.
get_svn_version
()
if
not
version
:
# empty or null
self
.
dataname
=
None
self
.
datafile
=
None
return
self
.
base_version
=
tuple
([
int
(
x
)
for
x
in
version
.
split
(
'.'
)[:
2
]])
if
self
.
base_version
<
(
1
,
3
):
raise
ValueError
(
'Insufficient SVN Version %s'
%
version
)
elif
self
.
base_version
>=
(
1
,
9
):
#trying the latest version
self
.
base_version
=
(
1
,
8
)
self
.
dataname
=
"svn%i%i_example"
%
self
.
base_version
self
.
datafile
=
os
.
path
.
join
(
'setuptools'
,
'tests'
,
'svn_data'
,
self
.
dataname
+
".zip"
)
super
(
TestSvn
,
self
).
setUp
()
@
skipIf
(
not
_svn_check
,
"No SVN to text, in the first place"
)
def
test_revision
(
self
):
rev
=
svn_utils
.
SvnInfo
.
load
(
'.'
).
get_revision
()
self
.
assertEqual
(
rev
,
6
)
@
skipIf
(
not
_svn_check
,
"No SVN to text, in the first place"
)
def
test_entries
(
self
):
expected
=
set
([
(
os
.
path
.
join
(
'a file'
),
'file'
),
(
os
.
path
.
join
(
'folder'
),
'dir'
),
(
os
.
path
.
join
(
'folder'
,
'lalala.txt'
),
'file'
),
(
os
.
path
.
join
(
'folder'
,
'quest.txt'
),
'file'
),
#The example will have a deleted file (or should)
#but shouldn't return it
])
info
=
svn_utils
.
SvnInfo
.
load
(
'.'
)
self
.
assertEqual
(
set
(
x
for
x
in
info
.
entries
),
expected
)
@
skipIf
(
not
_svn_check
,
"No SVN to text, in the first place"
)
def
test_externals
(
self
):
if
self
.
base_version
>=
(
1
,
6
):
folder2
=
'third party2'
folder3
=
'third party3'
else
:
folder2
=
'third_party2'
folder3
=
'third_party3'
expected
=
set
([
os
.
path
.
join
(
folder2
),
os
.
path
.
join
(
folder3
),
os
.
path
.
join
(
'third_party'
),
os
.
path
.
join
(
'folder'
,
folder2
),
os
.
path
.
join
(
'folder'
,
folder3
),
os
.
path
.
join
(
'folder'
,
'third_party'
),
])
info
=
svn_utils
.
SvnInfo
.
load
(
'.'
)
self
.
assertEqual
(
set
([
x
for
x
in
info
.
externals
]),
expected
)
def
test_suite
():
return
unittest
.
defaultTestLoader
.
loadTestsFromName
(
__name__
)
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