コード例 #1
0
ファイル: tests.py プロジェクト: tcabrol/PyBabe
class TestFTP(unittest.TestCase):
    def setUp(self):
        self.port = random.choice(range(9000, 11000))
        self.server = FTPStubServer(self.port)
        self.server.run()

    def tearDown(self):
        self.server.stop()

    def test_ftp(self):
        babe = Babe()
        a = babe.pull('tests/test.csv', name='Test')
        a.push(filename='test.csv',
               protocol='ftp',
               host='localhost',
               port=self.port)

    def test_ftpzip(self):
        babe = Babe()
        a = babe.pull('tests/test.csv', name='Test')
        a.push(filename='test.csv',
               compress='test.zip',
               protocol='ftp',
               host='localhost',
               port=self.port)
コード例 #2
0
 def setUp(self):
     self.server = FTPStubServer(0)
     self.server.run()
     self.port = self.server.server.server_address[1]
     self.ftp = FTP()
     self.ftp.set_debuglevel(0)
     self.ftp.connect('localhost', self.port)
     self.ftp.login('user1', 'passwd')
コード例 #3
0
ファイル: test.py プロジェクト: ke4roh/Python-Stub-Server
class FTPTest(TestCase):
    def setUp(self):
        self.random_port = 0
        self.server = FTPStubServer(self.random_port)
        self.server.run()
        self.port = self.server.server.server_address[1]

    def tearDown(self):
        self.server.stop()

    def test_put_test_file(self):
        self.assertFalse(self.server.files("foo.txt"))
        ftp = FTP()
        ftp.set_debuglevel(0)
        ftp.connect('localhost', self.port)
        ftp.login('user1', 'passwd')

        ftp.storlines('STOR foo.txt', StringIO('cant believe its not bitter'))
        ftp.quit()
        ftp.close()
        self.assertTrue(self.server.files("foo.txt"))

    def test_put_2_files_associates_the_correct_content_with_the_correct_filename(self):
        ftp = FTP()
        ftp.connect('localhost', self.port)
        ftp.set_debuglevel(0)
        ftp.login('user2','other_pass')

        ftp.storlines('STOR robot.txt', StringIO("\n".join(["file1 content" for i in range(1024)])))
        ftp.storlines('STOR monster.txt', StringIO("file2 content"))
        ftp.quit()
        ftp.close()
        self.assertEquals("\r\n".join(["file1 content" for i in range(1024)]),
                          self.server.files("robot.txt").strip())
        self.assertEquals("file2 content", self.server.files("monster.txt").strip())

    def test_retrieve_expected_file_returns_file(self):
        expected_content = 'content of my file\nis a complete mystery to me.'
        self.server.add_file('foo.txt', expected_content)
        ftp = FTP()
        ftp.set_debuglevel(2)
        ftp.connect('localhost', self.port)
        ftp.login('chris', 'tarttelin')
        directory_content = []
        ftp.retrlines('LIST', lambda x: directory_content.append(x))
        file_content = []
        ftp.retrlines('RETR foo.txt', lambda x: file_content.append(x))
        ftp.quit()
        ftp.close()
        self.assertTrue('foo.txt' in '\n'.join(directory_content))
        self.assertEquals(expected_content, '\n'.join(file_content))
コード例 #4
0
class FTPTest(TestCase):

    def setUp(self):
        self.port = 6666
        self.server = FTPStubServer(self.port)
        self.server.run()

    def tearDown(self):
        self.server.stop()

    def test_put_test_file(self):
        self.assertFalse(self.server.files("foo.txt"))
        ftp = FTP()
        ftp.set_debuglevel(0)
        ftp.connect('localhost', self.port)
        ftp.login('user1', 'passwd')

        ftp.storlines('STOR foo.txt', StringIO('cant believe its not bitter'))
        ftp.quit()
        ftp.close()
        self.assertTrue(self.server.files("foo.txt"))

    def test_put_2_files_associates_the_correct_content_with_the_correct_filename(self):
        ftp = FTP()
        ftp.connect('localhost', self.port)
        ftp.set_debuglevel(0)
        ftp.login('user2','other_pass')

        ftp.storlines('STOR robot.txt', StringIO("file1 content"*1024))
        ftp.storlines('STOR monster.txt', StringIO("file2 content"))
        ftp.quit()
        ftp.close()
        self.assertEquals("file1 content"*1024, self.server.files("robot.txt").strip())
        self.assertEquals("file2 content", self.server.files("monster.txt").strip())
        
    def test_retrieve_expected_file_returns_file(self):
        expected_content = 'content of my file\nis a complete mystery to me.'
        self.server.add_file('foo.txt', expected_content)
        ftp = FTP()
        ftp.set_debuglevel(2)
        ftp.connect('localhost', self.port)
        ftp.login('chris', 'tarttelin')
        directory_content = []
        ftp.retrlines('LIST', lambda x: directory_content.append(x))
        file_content = []
        ftp.retrlines('RETR foo.txt', lambda x: file_content.append(x))
        ftp.quit()
        ftp.close()
        self.assertTrue('foo.txt' in '\n'.join(directory_content))
        self.assertEquals(expected_content, '\n'.join(file_content))
コード例 #5
0
ファイル: test.py プロジェクト: tarttelin/Python-Stub-Server
 def setUp(self):
     self.server = FTPStubServer(0)
     self.server.run()
     self.port = self.server.server.server_address[1]
     self.ftp = FTP()
     self.ftp.set_debuglevel(0)
     self.ftp.connect("localhost", self.port)
     self.ftp.login("user1", "passwd")
コード例 #6
0
ファイル: test.py プロジェクト: tarttelin/Python-Stub-Server
 def setUp(self):
     self.server = FTPStubServer(0)
     self.server.run()
     self.port = self.server.server.server_address[1]
     self.ftp = FTP()
     self.ftp.set_debuglevel(0)
     self.ftp.connect('localhost', self.port)
     self.ftp.login('user1', 'passwd')
コード例 #7
0
ファイル: tests.py プロジェクト: tcabrol/PyBabe
class TestFTP(unittest.TestCase):
    def setUp(self):
        self.port = random.choice(range(9000, 11000))
        self.server = FTPStubServer(self.port)
        self.server.run()

    def tearDown(self):
        self.server.stop()

    def test_ftp(self):
        babe = Babe()
        a = babe.pull("tests/test.csv", name="Test")
        a.push(filename="test.csv", protocol="ftp", host="localhost", port=self.port)

    def test_ftpzip(self):
        babe = Babe()
        a = babe.pull("tests/test.csv", name="Test")
        a.push(filename="test.csv", compress="test.zip", protocol="ftp", host="localhost", port=self.port)
コード例 #8
0
 def testImportFtpFile(self):
     file = {'name':'foo', 'content':'foo bar baz qux'}
     ftp = FTPStubServer(0)
     ftp.run()
     try:
         ftp.add_file(**file)
         assignedPort = ftp.server.server_address[1]
         url = 'ftp://*****:*****@localhost:%d/%s' % (assignedPort, file['name'])
         with self.master.readFileStream(self.master.importFile(url)) as readable:
             self.assertEqual(readable.read(), file['content'])
     finally:
         ftp.stop()
コード例 #9
0
ファイル: jobStoreTest.py プロジェクト: brainstorm/toil
 def testImportFtpFile(self):
     file = {'name':'foo', 'content':'foo bar baz qux'}
     ftp = FTPStubServer(0)
     ftp.run()
     try:
         ftp.add_file(**file)
         assignedPort = ftp.server.server_address[1]
         url = 'ftp://*****:*****@localhost:%d/%s' % (assignedPort, file['name'])
         with self.master.readFileStream(self.master.importFile(url)) as readable:
             self.assertEqual(readable.read(), file['content'])
     finally:
         ftp.stop()
コード例 #10
0
ファイル: tests.py プロジェクト: AndrewGomzyakov/ftp
class FTPTests(unittest.TestCase):
    def setUp(self):
        self.server = FTPStubServer(0)
        self.server.run()
        self.port = self.server.server.server_address[1]
        self.ftp = ftp.ftp()
        self.ftp.connect('127.0.0.1', self.port)

    def tearDown(self):
        self.ftp.close()
        self.server.stop()

    def test_connection(self):
        serv_ans = self.ftp.ftp_ans()
        self.assertEqual(serv_ans, "220 (FtpStubServer 0.1a)\r\n")

    def test_login(self):
        self.ftp.ftp_ans()
        serv_ans = self.ftp.login()
        self.assertEqual(
            serv_ans,
            "331 Please specify password.\r\n230 You are now logged in.\r\n")

    def test_list(self):
        self.ftp.ftp_ans()
        self.server.add_file("1.txt", "abracarabra")
        serv_ans = self.ftp.ls()
        self.assertEqual(serv_ans, "1.txt")

    def test_download(self):
        self.ftp.ftp_ans()
        self.server.add_file("1.txt", "abracarabra")
        with unittest.mock.patch.object(self.ftp, 'size', return_value=100):
            self.ftp.download_file("1.txt")
        with open("1.txt", "r") as file:
            ans = file.read()
        self.assertEqual(ans, "abracarabra")

    def test_pasv(self):
        reply = self.ftp.ftp_ans()
        reply = self.ftp.pasv()
        self.assertTrue(reply.startswith("227 Entering Passive Mode."))

    def test_cd(self):
        dir_name = "new_dir"
        self.ftp.cd(dir_name)
        self.assertEqual(self.ftp.send_comand("PWD"),
                         '250 OK. Current directory is "' + dir_name + '"\r\n')
コード例 #11
0
ファイル: tests.py プロジェクト: tcabrol/PyBabe
 def setUp(self):
     self.port = random.choice(range(9000, 11000))
     self.server = FTPStubServer(self.port)
     self.server.run()
コード例 #12
0
ファイル: test.py プロジェクト: tarttelin/Python-Stub-Server
class FTPTest(TestCase):
    def setUp(self):
        self.server = FTPStubServer(0)
        self.server.run()
        self.port = self.server.server.server_address[1]
        self.ftp = FTP()
        self.ftp.set_debuglevel(0)
        self.ftp.connect('localhost', self.port)
        self.ftp.login('user1', 'passwd')

    def tearDown(self):
        self.ftp.quit()
        self.ftp.close()
        self.server.stop()

    def test_change_directory(self):
        self.ftp.cwd('newdir')
        self.assertEqual(self.ftp.pwd(), 'newdir')

    def test_make_directory(self):
        prev_dir = self.ftp.pwd()
        self.ftp.mkd('newdir/newdir')
        self.assertEqual(self.ftp.pwd(), prev_dir)

    def test_put_test_file(self):
        self.assertFalse(self.server.files("foo.txt"))
        self.ftp.storlines('STOR foo.txt', BytesIO(b'cant believe its not bitter'))
        self.assertTrue(self.server.files("foo.txt"))

    def test_put_2_files_associates_the_correct_content_with_the_correct_filename(self):
        data = "\n".join(["file1 content" for i in range(1024)])
        self.ftp.storlines('STOR robot.txt', BytesIO(data.encode('utf-8')))
        self.ftp.storlines('STOR monster.txt', BytesIO(b'file2 content'))
        self.assertEqual("\r\n".join(["file1 content" for i in range(1024)]),
                          self.server.files("robot.txt").strip())
        self.assertEqual("file2 content", self.server.files("monster.txt").strip())

    def test_list_2_files(self):
        self.lines = []
        def accumulate(line):
            self.lines.append(line)

        self.ftp.storlines('STOR palladium.csv', BytesIO(b'data'))
        self.ftp.storlines('STOR vanadiyam.pdf', BytesIO(b'more data'))
        self.ftp.retrlines('LIST', accumulate)
        self.assertEqual(sorted(self.lines), sorted(['vanadiyam.pdf', 'palladium.csv']))

    def test_nlst_2_files(self):
        self.lines = []
        def accumulate(line):
            self.lines.append(line)

        self.ftp.storlines('STOR palladium.csv', BytesIO(b'data'))
        self.ftp.storlines('STOR vanadiyam.pdf', BytesIO(b'more data'))
        self.ftp.retrlines('NLST', accumulate)
        self.assertEqual(sorted(self.lines), sorted(['vanadiyam.pdf', 'palladium.csv']))

    def test_retrieve_expected_file_returns_file(self):
        expected_content = 'content of my file\nis a complete mystery to me.'
        self.server.add_file('foo.txt', expected_content)
        directory_content = []
        self.ftp.retrlines('LIST', lambda x: directory_content.append(x))
        file_content = []
        self.ftp.retrlines('RETR foo.txt', lambda x: file_content.append(x))
        self.assertTrue('foo.txt' in '\n'.join(directory_content))
        self.assertEqual(expected_content, '\n'.join(file_content))
コード例 #13
0
ファイル: test.py プロジェクト: ke4roh/Python-Stub-Server
 def setUp(self):
     self.random_port = 0
     self.server = FTPStubServer(self.random_port)
     self.server.run()
     self.port = self.server.server.server_address[1]
コード例 #14
0
ファイル: test.py プロジェクト: tarttelin/Python-Stub-Server
class FTPTest(TestCase):
    def setUp(self):
        self.server = FTPStubServer(0)
        self.server.run()
        self.port = self.server.server.server_address[1]
        self.ftp = FTP()
        self.ftp.set_debuglevel(0)
        self.ftp.connect("localhost", self.port)
        self.ftp.login("user1", "passwd")

    def tearDown(self):
        self.ftp.quit()
        self.ftp.close()
        self.server.stop()

    def test_change_directory(self):
        self.ftp.cwd("newdir")
        self.assertEqual(self.ftp.pwd(), "newdir")

    def test_put_test_file(self):
        self.assertFalse(self.server.files("foo.txt"))
        self.ftp.storlines("STOR foo.txt", BytesIO(b"cant believe its not bitter"))
        self.assertTrue(self.server.files("foo.txt"))

    def test_put_2_files_associates_the_correct_content_with_the_correct_filename(self):
        data = "\n".join(["file1 content" for i in range(1024)])
        self.ftp.storlines("STOR robot.txt", BytesIO(data.encode("utf-8")))
        self.ftp.storlines("STOR monster.txt", BytesIO(b"file2 content"))
        self.assertEqual("\r\n".join(["file1 content" for i in range(1024)]), self.server.files("robot.txt").strip())
        self.assertEqual("file2 content", self.server.files("monster.txt").strip())

    def test_list_2_files(self):
        self.lines = []

        def accumulate(line):
            self.lines.append(line)

        self.ftp.storlines("STOR palladium.csv", BytesIO(b"data"))
        self.ftp.storlines("STOR vanadiyam.pdf", BytesIO(b"more data"))
        self.ftp.retrlines("LIST", accumulate)
        self.assertEqual(sorted(self.lines), sorted(["vanadiyam.pdf", "palladium.csv"]))

    def test_nlst_2_files(self):
        self.lines = []

        def accumulate(line):
            self.lines.append(line)

        self.ftp.storlines("STOR palladium.csv", BytesIO(b"data"))
        self.ftp.storlines("STOR vanadiyam.pdf", BytesIO(b"more data"))
        self.ftp.retrlines("NLST", accumulate)
        self.assertEqual(sorted(self.lines), sorted(["vanadiyam.pdf", "palladium.csv"]))

    def test_retrieve_expected_file_returns_file(self):
        expected_content = "content of my file\nis a complete mystery to me."
        self.server.add_file("foo.txt", expected_content)
        directory_content = []
        self.ftp.retrlines("LIST", lambda x: directory_content.append(x))
        file_content = []
        self.ftp.retrlines("RETR foo.txt", lambda x: file_content.append(x))
        self.assertTrue("foo.txt" in "\n".join(directory_content))
        self.assertEqual(expected_content, "\n".join(file_content))
コード例 #15
0
ファイル: tests.py プロジェクト: tcabrol/PyBabe
 def setUp(self):
     self.port = random.choice(range(9000, 11000))
     self.server = FTPStubServer(self.port)
     self.server.run()
コード例 #16
0
ファイル: tests.py プロジェクト: AndrewGomzyakov/ftp
 def setUp(self):
     self.server = FTPStubServer(0)
     self.server.run()
     self.port = self.server.server.server_address[1]
     self.ftp = ftp.ftp()
     self.ftp.connect('127.0.0.1', self.port)
コード例 #17
0
class FTPTest(TestCase):
    def setUp(self):
        self.server = FTPStubServer(0)
        self.server.run()
        self.port = self.server.server.server_address[1]
        self.ftp = FTP()
        self.ftp.set_debuglevel(0)
        self.ftp.connect('localhost', self.port)
        self.ftp.login('user1', 'passwd')

    def tearDown(self):
        self.ftp.quit()
        self.ftp.close()
        self.server.stop()

    def test_change_directory(self):
        self.ftp.cwd('newdir')
        self.assertEqual(self.ftp.pwd(), 'newdir')

    def test_make_directory(self):
        prev_dir = self.ftp.pwd()
        self.ftp.mkd('newdir/newdir')
        self.assertEqual(self.ftp.pwd(), prev_dir)

    def test_put_test_file(self):
        self.assertFalse(self.server.files("foo.txt"))
        self.ftp.storlines('STOR foo.txt',
                           BytesIO(b'cant believe its not bitter'))
        self.assertTrue(self.server.files("foo.txt"))

    def test_put_2_files_associates_the_correct_content_with_the_correct_filename(
            self):
        data = "\n".join(["file1 content" for i in range(1024)])
        self.ftp.storlines('STOR robot.txt', BytesIO(data.encode('utf-8')))
        self.ftp.storlines('STOR monster.txt', BytesIO(b'file2 content'))
        self.assertEqual("\r\n".join(["file1 content" for i in range(1024)]),
                         self.server.files("robot.txt").strip())
        self.assertEqual("file2 content",
                         self.server.files("monster.txt").strip())

    def test_list_2_files(self):
        self.lines = []

        def accumulate(line):
            self.lines.append(line)

        self.ftp.storlines('STOR palladium.csv', BytesIO(b'data'))
        self.ftp.storlines('STOR vanadiyam.pdf', BytesIO(b'more data'))
        self.ftp.retrlines('LIST', accumulate)
        self.assertEqual(sorted(self.lines),
                         sorted(['vanadiyam.pdf', 'palladium.csv']))

    def test_nlst_2_files(self):
        self.lines = []

        def accumulate(line):
            self.lines.append(line)

        self.ftp.storlines('STOR palladium.csv', BytesIO(b'data'))
        self.ftp.storlines('STOR vanadiyam.pdf', BytesIO(b'more data'))
        self.ftp.retrlines('NLST', accumulate)
        self.assertEqual(sorted(self.lines),
                         sorted(['vanadiyam.pdf', 'palladium.csv']))

    def test_retrieve_expected_file_returns_file(self):
        expected_content = 'content of my file\nis a complete mystery to me.'
        self.server.add_file('foo.txt', expected_content)
        directory_content = []
        self.ftp.retrlines('LIST', lambda x: directory_content.append(x))
        file_content = []
        self.ftp.retrlines('RETR foo.txt', lambda x: file_content.append(x))
        self.assertTrue('foo.txt' in '\n'.join(directory_content))
        self.assertEqual(expected_content, '\n'.join(file_content))
コード例 #18
0
 def setUp(self):
     self.port = 6666
     self.server = FTPStubServer(self.port)
     self.server.run()
コード例 #19
0
ファイル: test.py プロジェクト: bkreed/Python-Stub-Server
 def setUp(self):
     self.port = 6666
     self.server = FTPStubServer(self.port)
     self.server.run()
コード例 #20
0
ファイル: test_ftp.py プロジェクト: Ollisteka/FTP_client
 def setUp(self):
     self.server = FTPStubServer(0)
     self.server.run()
     self.port = self.server.server.server_address[1]
     self.ftp = FTP()
     self.ftp.connect('localhost', self.port)
コード例 #21
0
ファイル: test_ftp.py プロジェクト: Ollisteka/FTP_client
class TestWithStubServer(unittest.TestCase):
    def setUp(self):
        self.server = FTPStubServer(0)
        self.server.run()
        self.port = self.server.server.server_address[1]
        self.ftp = FTP()
        self.ftp.connect('localhost', self.port)

    def tearDown(self):
        self.ftp.ftp_quit()
        self.server.stop()

    def test_list(self):
        fileA = "A.png"
        fileB = "B.png"
        self.server.add_file(fileA, "")
        self.server.add_file(fileB, "asd")
        listing = self.ftp.ftp_list()
        self.assertEqual(listing, fileA + '\n' + fileB)

    # Sockets unclosed
    def test_retr(self):
        fileB = "B.png"
        self.server.add_file(fileB, "asd")
        temp = tempfile.NamedTemporaryFile(delete=False)
        with mock.patch.object(self.ftp, 'ftp_size', return_value=12345):
            self.ftp.ftp_retr(fileB, temp.name, download_func=download_batch)
        with open(temp.name, 'r') as file:
            data = file.read()
        self.assertEqual(data, "asd")
        temp.close()

    def test_pasv(self):
        reply = self.ftp.ftp_pasv()
        self.assertEqual(reply.startswith('227 Entering Passive Mode'), True)

    def test_cwd_pwd(self):

        dir_name = "new_dir"
        expected = '257 "' + dir_name + '" is your current location' + '\r\n'
        self.ftp.ftp_cwd(dir_name)
        self.assertEqual(self.ftp.ftp_pwd(), expected)

    def test_welcome(self):
        value = '220 (FtpStubServer 0.1a)\r\n'
        self.assertEqual(self.ftp.welcome, value)

    # def test_error(self):
    #     text = '530 Please login with USER and PASS'
    #     with mock.patch.object(self.ftp, '_FTP__get_full_reply',
    #                            return_value=text):
    #         with self.assertRaises(PermanentError):
    #             self.ftp.ftp_list()

    def test_extract_file_name(self):
        fn = self.ftp._FTP__get_filename(os.path.join("C", "test.txt"))
        self.assertEqual("test.txt", fn)
        with self.assertRaises(Exception):
            path = self.ftp._FTP__get_filename(os.getcwd())

    def test_size(self):
        size = "123"
        response = "213 " + size
        with mock.patch.object(self.ftp, 'send', return_value=response):
            self.assertEqual(size, self.ftp.ftp_size("asd"))

    def test_type(self):
        self.ftp.ftp_type("A")
        self.assertFalse(self.ftp.binary)
        self.ftp.ftp_type("I")
        self.assertTrue(self.ftp.binary)
        with self.assertRaises(Exception):
            self.ftp.ftp_type("E")