Exemple #1
0
    def test_duration_timeout(self):
        client = Client()
        file = io.BytesIO()

        with self.assertRaises(DurationTimeout), client.session() as session:
            yield From(
                session.fetch(Request(self.get_url('/hidden/sleep.txt'))))
            yield From(session.read_content(file, duration_timeout=0.1))
Exemple #2
0
    def test_login_no_password_required(self):
        client = Client()
        file = io.BytesIO()

        with client.session() as session:
            request = Request(self.get_url('/example (copy).txt'))
            request.username = '******'
            yield From(session.fetch(request))
            yield From(session.read_content(file))
Exemple #3
0
    def test_duration_timeout(self):
        client = Client()
        file = io.BytesIO()

        with self.assertRaises(DurationTimeout), client.session() as session:
            yield From(
                session.fetch(Request(self.get_url('/hidden/sleep.txt')))
            )
            yield From(session.read_content(file, duration_timeout=0.1))
Exemple #4
0
    def test_login_no_password_required(self):
        client = Client()
        file = io.BytesIO()

        with client.session() as session:
            request = Request(self.get_url('/example (copy).txt'))
            request.username = '******'
            yield From(session.fetch(request))
            yield From(session.read_content(file))
Exemple #5
0
    def test_fetch_no_file(self):
        client = Client()
        file = io.BytesIO()

        with client.session() as session:
            try:
                yield From(session.fetch(Request(self.get_url('/asdf.txt'))))
                yield From(session.read_content(file))
            except FTPServerError as error:
                self.assertEqual(550, error.reply_code)
            else:
                self.fail()  # pragma: no cover
Exemple #6
0
    def test_fetch_file(self):
        client = Client()
        file = io.BytesIO()

        with client.session() as session:
            response = yield From(
                session.fetch(Request(self.get_url('/example (copy).txt'))))
            yield From(session.read_content(file))

        self.assertEqual(
            'The real treasure is in Smaug’s heart 💗.\n'.encode('utf-8'),
            response.body.content())
Exemple #7
0
    def test_fetch_file_restart_not_supported(self):
        client = Client()
        file = io.BytesIO()

        with client.session() as session:
            request = Request(self.get_url('/example (copy).txt'))
            request.set_continue(99999)  # Magic value in the test server
            response = yield From(session.fetch(request))
            self.assertFalse(response.restart_value)
            yield From(session.read_content(file))

        self.assertEqual(
            'The real treasure is in Smaug’s heart 💗.\n'.encode('utf-8'),
            response.body.content())
Exemple #8
0
    def test_fetch_file_restart(self):
        client = Client()
        file = io.BytesIO()

        with client.session() as session:
            request = Request(self.get_url('/example (copy).txt'))
            request.set_continue(10)
            response = yield From(session.fetch(request))
            self.assertEqual(10, response.restart_value)
            yield From(session.read_content(file))

        self.assertEqual(
            'reasure is in Smaug’s heart 💗.\n'.encode('utf-8'),
            response.body.content())
Exemple #9
0
    def test_fetch_no_file(self):
        client = Client()
        file = io.BytesIO()

        with client.session() as session:
            try:
                yield From(
                    session.fetch(Request(self.get_url('/asdf.txt')))
                    )
                yield From(session.read_content(file))
            except FTPServerError as error:
                self.assertEqual(550, error.reply_code)
            else:
                self.fail()  # pragma: no cover
Exemple #10
0
    def test_fetch_file(self):
        client = Client()
        file = io.BytesIO()

        with client.session() as session:
            response = yield From(
                session.fetch(Request(self.get_url('/example (copy).txt')))
                )
            yield From(session.read_content(file))

        self.assertEqual(
            'The real treasure is in Smaug’s heart 💗.\n'.encode('utf-8'),
            response.body.content()
        )
Exemple #11
0
    def test_fetch_listing(self):
        client = Client()
        file = io.BytesIO()
        with client.session() as session:
            response = yield From(
                session.fetch_file_listing(Request(self.get_url('/'))))
            yield From(session.read_listing_content(file))

        print(response.body.content())
        self.assertEqual(5, len(response.files))
        self.assertEqual('junk', response.files[0].name)
        self.assertEqual('example1', response.files[1].name)
        self.assertEqual('example2💎', response.files[2].name)
        self.assertEqual('example (copy).txt', response.files[3].name)
        self.assertEqual('readme.txt', response.files[4].name)
Exemple #12
0
    def test_fetch_file_restart_not_supported(self):
        client = Client()
        file = io.BytesIO()

        with client.session() as session:
            request = Request(self.get_url('/example (copy).txt'))
            request.set_continue(99999)  # Magic value in the test server
            response = yield From(session.fetch(request))
            self.assertFalse(response.restart_value)
            yield From(session.read_content(file))

        self.assertEqual(
            'The real treasure is in Smaug’s heart 💗.\n'.encode('utf-8'),
            response.body.content()
        )
Exemple #13
0
    def test_fetch_file_restart(self):
        client = Client()
        file = io.BytesIO()

        with client.session() as session:
            request = Request(self.get_url('/example (copy).txt'))
            request.set_continue(10)
            response = yield From(session.fetch(request))
            self.assertEqual(10, response.restart_value)
            yield From(session.read_content(file))

        self.assertEqual(
            'reasure is in Smaug’s heart 💗.\n'.encode('utf-8'),
            response.body.content()
        )
Exemple #14
0
    def test_fetch_listing(self):
        client = Client()
        file = io.BytesIO()
        with client.session() as session:
            response = yield From(
                session.fetch_file_listing(Request(self.get_url('/')))
            )
            yield From(session.read_listing_content(file))

        print(response.body.content())
        self.assertEqual(5, len(response.files))
        self.assertEqual('junk', response.files[0].name)
        self.assertEqual('example1', response.files[1].name)
        self.assertEqual('example2💎', response.files[2].name)
        self.assertEqual('example (copy).txt', response.files[3].name)
        self.assertEqual('readme.txt', response.files[4].name)
Exemple #15
0
    def test_fetch_bad_pasv_addr(self):
        client = Client()
        file = io.BytesIO()

        with client.session() as session:
            original_func = session._log_in

            @trollius.coroutine
            def override_func():
                yield From(original_func())
                yield From(session._control_stream.write_command(Command('EVIL_BAD_PASV_ADDR')))
                print('Evil awaits')

            session._log_in = override_func

            with self.assertRaises(ProtocolError):
                yield From(
                    session.fetch(Request(self.get_url('/example (copy).txt')))
                )
Exemple #16
0
    def test_fetch_bad_pasv_addr(self):
        client = Client()
        file = io.BytesIO()

        with client.session() as session:
            original_func = session._log_in

            @trollius.coroutine
            def override_func():
                yield From(original_func())
                yield From(
                    session._control_stream.write_command(
                        Command('EVIL_BAD_PASV_ADDR')))
                print('Evil awaits')

            session._log_in = override_func

            with self.assertRaises(ProtocolError):
                yield From(
                    session.fetch(Request(
                        self.get_url('/example (copy).txt'))))