1
+
1
2
import os
2
3
import sys
3
4
import tempfile
4
5
import shutil
5
6
import unittest
6
7
7
8
import pkg_resources
9
+ import warnings
8
10
from setuptools .command import egg_info
11
+ from setuptools .tests import environment
9
12
from setuptools import svn_utils
10
13
11
14
ENTRIES_V10 = pkg_resources .resource_string (__name__ , 'entries-v10' )
12
15
"An entries file generated with svn 1.6.17 against the legacy Setuptools repo"
13
16
17
+
14
18
class TestEggInfo (unittest .TestCase ):
15
19
16
20
def setUp (self ):
@@ -37,7 +41,7 @@ def test_version_10_format(self):
37
41
#to ensure I return using svnversion what would had been returned
38
42
version_str = svn_utils .SvnInfo .get_svn_version ()
39
43
version = [int (x ) for x in version_str .split ('.' )[:2 ]]
40
- if version != [1 ,6 ]:
44
+ if version != [1 , 6 ]:
41
45
if hasattr (self , 'skipTest' ):
42
46
self .skipTest ('' )
43
47
else :
@@ -61,14 +65,104 @@ def test_version_10_format_legacy_parser(self):
61
65
62
66
old_path = os .environ [path_variable ]
63
67
os .environ [path_variable ] = ''
68
+ #catch_warnings not available until py26
69
+ warning_filters = warnings .filters
70
+ warnings .filters = warning_filters [:]
64
71
try :
72
+ warnings .simplefilter ("ignore" , DeprecationWarning )
65
73
self ._write_entries (ENTRIES_V10 )
66
74
rev = egg_info .egg_info .get_svn_revision ()
67
75
finally :
76
+ #restore the warning filters
77
+ warnings .filters = warning_filters
78
+ #restore the os path
68
79
os .environ [path_variable ] = old_path
69
80
70
81
self .assertEqual (rev , '89000' )
71
82
83
+ DUMMY_SOURCE_TXT = """CHANGES.txt
84
+ CONTRIBUTORS.txt
85
+ HISTORY.txt
86
+ LICENSE
87
+ MANIFEST.in
88
+ README.txt
89
+ setup.py
90
+ dummy/__init__.py
91
+ dummy/test.txt
92
+ dummy.egg-info/PKG-INFO
93
+ dummy.egg-info/SOURCES.txt
94
+ dummy.egg-info/dependency_links.txt
95
+ dummy.egg-info/top_level.txt"""
96
+
97
+
98
+ class TestSvnDummy (environment .ZippedEnvironment ):
99
+
100
+ def setUp (self ):
101
+ version = svn_utils .SvnInfo .get_svn_version ()
102
+ self .base_version = tuple ([int (x ) for x in version .split ('.' )][:2 ])
103
+
104
+ if not self .base_version :
105
+ raise ValueError ('No SVN tools installed' )
106
+ elif self .base_version < (1 , 3 ):
107
+ raise ValueError ('Insufficient SVN Version %s' % version )
108
+ elif self .base_version >= (1 , 9 ):
109
+ #trying the latest version
110
+ self .base_version = (1 , 8 )
111
+
112
+ self .dataname = "dummy%i%i" % self .base_version
113
+ self .datafile = os .path .join ('setuptools' , 'tests' ,
114
+ 'svn_data' , self .dataname + ".zip" )
115
+ super (TestSvnDummy , self ).setUp ()
116
+
117
+ def test_sources (self ):
118
+ code , data = environment .run_setup_py (["sdist" ],
119
+ pypath = self .old_cwd ,
120
+ data_stream = 1 )
121
+ if code :
122
+ raise AssertionError (data )
123
+
124
+ sources = os .path .join ('dummy.egg-info' , 'SOURCES.txt' )
125
+ infile = open (sources , 'r' )
126
+ try :
127
+ read_contents = infile .read ()
128
+ finally :
129
+ infile .close ()
130
+ del infile
131
+
132
+ self .assertEqual (DUMMY_SOURCE_TXT , read_contents )
133
+
134
+ return data
135
+
136
+
137
+ class TestSvnDummyLegacy (environment .ZippedEnvironment ):
138
+
139
+ def setUp (self ):
140
+ self .base_version = (1 , 6 )
141
+ self .dataname = "dummy%i%i" % self .base_version
142
+ self .datafile = os .path .join ('setuptools' , 'tests' ,
143
+ 'svn_data' , self .dataname + ".zip" )
144
+ super (TestSvnDummyLegacy , self ).setUp ()
145
+
146
+ def test_sources (self ):
147
+ code , data = environment .run_setup_py (["sdist" ],
148
+ pypath = self .old_cwd ,
149
+ path = "" ,
150
+ data_stream = 1 )
151
+ if code :
152
+ raise AssertionError (data )
153
+
154
+ sources = os .path .join ('dummy.egg-info' , 'SOURCES.txt' )
155
+ infile = open (sources , 'r' )
156
+ try :
157
+ read_contents = infile .read ()
158
+ finally :
159
+ infile .close ()
160
+ del infile
161
+
162
+ self .assertEqual (DUMMY_SOURCE_TXT , read_contents )
163
+
164
+ return data
165
+
72
166
73
167
def test_suite ():
74
168
return unittest .defaultTestLoader .loadTestsFromName (__name__ )
0 commit comments