~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/ftp_server/__init__.py

  • Committer: Vincent Ladeuil
  • Date: 2009-03-01 10:02:00 UTC
  • mto: (4167.1.1 integration)
  • mto: This revision was merged to the branch mainline in revision 4168.
  • Revision ID: v.ladeuil+lp@free.fr-20090301100200-1qdmf362uw5q35s0
Start supporting pyftpdlib as an ftp test server.

* bzrlib/transport/ftp/__init__.py:
(FtpTransport._setmode): Report mode bits in octal.

* bzrlib/transport/__init__.py:
Don't register GSSAPI ftp transports if kerberos can't be
imported, this avoids useless repeated messages in log as the
import repeatedly fail.

* bzrlib/tests/test_transport_implementations.py:
(TransportTests.test_has): Fix too long lines.
(TransportTests.test_connect_twice_is_same_content): Fig bogus
test. transport.base is *not* usable, it miss the password for
authenticated urls. This was passing only because no test server
use authentication by default *except* medusa for which we had a
dummy authorizer with no password check.

* bzrlib/tests/ftp_server/pyftpdlib_based.py: 
First shot at an ftp test server running is a separate thread.

* bzrlib/tests/ftp_server/__init__.py: 
Add support for pyftpdlib based ftp test server.
(_FTPServerFeature._probe): One of medusa or pyftpdlib is needed.

Show diffs side-by-side

added added

removed removed

Lines of Context:
30
30
    medusa_available = False
31
31
 
32
32
 
 
33
try:
 
34
    from bzrlib.tests.ftp_server import pyftpdlib_based
 
35
    pyftpdlib_available = True
 
36
except ImportError:
 
37
    pyftpdlib_available = False
 
38
 
 
39
 
33
40
class _FTPServerFeature(tests.Feature):
34
41
    """Some tests want an FTP Server, check if one is available.
35
42
 
38
45
    """
39
46
 
40
47
    def _probe(self):
41
 
        return medusa_available
 
48
        return medusa_available or pyftpdlib_available
42
49
 
43
50
    def feature_name(self):
44
51
        return 'FTPServer'
50
57
class UnavailableFTPServer(object):
51
58
    """Dummy ftp test server.
52
59
 
53
 
    
54
60
    This allows the test suite report the number of tests needing that
55
61
    feature. We raise UnavailableFeature from methods before the test server is
56
62
    being used. Doing so in the setUp method has bad side-effects (tearDown is
72
78
 
73
79
if medusa_available:
74
80
    FTPServer = medusa_based.FTPServer
 
81
elif pyftpdlib_available:
 
82
    FTPServer = pyftpdlib_based.FTPServer
75
83
else:
76
84
    FTPServer = UnavailableFTPServer