~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_smart_transport.py

  • Committer: Martin Pool
  • Date: 2007-04-24 05:02:04 UTC
  • mfrom: (2449 +trunk)
  • mto: This revision was merged to the branch mainline in revision 2450.
  • Revision ID: mbp@sourcefrog.net-20070424050204-bfkc1qiq0axt5f14
Merge trunk & fix NEWS conflict

Show diffs side-by-side

added added

removed removed

Lines of Context:
42
42
        HTTPServerWithSmarts,
43
43
        SmartRequestHandler,
44
44
        )
 
45
from bzrlib.tests.test_smart import TestCaseWithSmartMedium
45
46
from bzrlib.transport import (
46
47
        get_transport,
47
48
        local,
520
521
        self.assertRaises(errors.ReadingCompleted, request.read_bytes, None)
521
522
 
522
523
 
523
 
class RemoteTransportTests(tests.TestCaseWithTransport):
524
 
 
525
 
    def setUp(self):
526
 
        super(RemoteTransportTests, self).setUp()
527
 
        # We're allowed to set  the transport class here, so that we don't use
528
 
        # the default or a parameterized class, but rather use the
529
 
        # TestCaseWithTransport infrastructure to set up a smart server and
530
 
        # transport.
531
 
        self.transport_server = server.SmartTCPServer_for_testing
 
524
class RemoteTransportTests(TestCaseWithSmartMedium):
532
525
 
533
526
    def test_plausible_url(self):
534
527
        self.assert_(self.get_url().startswith('bzr://'))
540
533
    def test_get_medium_from_transport(self):
541
534
        """Remote transport has a medium always, which it can return."""
542
535
        t = self.get_transport()
543
 
        smart_medium = t.get_smart_medium()
544
 
        self.assertIsInstance(smart_medium, medium.SmartClientMedium)
 
536
        client_medium = t.get_smart_medium()
 
537
        self.assertIsInstance(client_medium, medium.SmartClientMedium)
545
538
 
546
539
 
547
540
class ErrorRaisingProtocol(object):
746
739
        self.assertTrue(server.finished)
747
740
        
748
741
    def test_socket_stream_error_handling(self):
749
 
        # Use plain python StringIO so we can monkey-patch the close method to
750
 
        # not discard the contents.
751
 
        from StringIO import StringIO
752
742
        server_sock, client_sock = self.portable_socket_pair()
753
743
        server = medium.SmartServerSocketStreamMedium(
754
744
            server_sock, None)
760
750
        self.assertTrue(server.finished)
761
751
        
762
752
    def test_pipe_like_stream_keyboard_interrupt_handling(self):
763
 
        # Use plain python StringIO so we can monkey-patch the close method to
764
 
        # not discard the contents.
765
753
        to_server = StringIO('')
766
754
        from_server = StringIO()
767
755
        server = medium.SmartServerPipeStreamMedium(
801
789
                self.assertContainsRe(str(e), 'some random exception')
802
790
            else:
803
791
                self.fail("get did not raise expected error")
 
792
            transport.disconnect()
804
793
        finally:
805
794
            smart_server.stop_background_thread()
806
795
 
1022
1011
 
1023
1012
    def build_handler(self, transport):
1024
1013
        """Returns a handler for the commands in protocol version one."""
1025
 
        return request.SmartServerRequestHandler(transport, request.request_handlers)
 
1014
        return request.SmartServerRequestHandler(transport,
 
1015
                                                 request.request_handlers)
1026
1016
 
1027
1017
    def test_construct_request_handler(self):
1028
1018
        """Constructing a request handler should be easy and set defaults."""
1036
1026
        self.assertEqual(None, handler.response.body)
1037
1027
        
1038
1028
    def test_disable_vfs_handler_classes_via_environment(self):
1039
 
        # VFS handler classes will raise an error from "execute" if BZR_NO_SMART_VFS
1040
 
        # is set.
 
1029
        # VFS handler classes will raise an error from "execute" if
 
1030
        # BZR_NO_SMART_VFS is set.
1041
1031
        handler = vfs.HasRequest(None)
1042
1032
        # set environment variable after construction to make sure it's
1043
1033
        # examined.
1044
 
        # Note that we can safely clobber BZR_NO_SMART_VFS here, because setUp has
1045
 
        # called _captureVar, so it will be restored to the right state
 
1034
        # Note that we can safely clobber BZR_NO_SMART_VFS here, because setUp
 
1035
        # has called _captureVar, so it will be restored to the right state
1046
1036
        # afterwards.
1047
1037
        os.environ['BZR_NO_SMART_VFS'] = ''
1048
1038
        self.assertRaises(errors.DisabledMethod, handler.execute)