Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Now using remote ftp server, improved metadata

  • Loading branch information...
commit cdfb6f8a5b3be7150db59009754191de262fea8d 1 parent 4e887c7
@sergi authored
View
2  .npmignore
@@ -1,3 +1,5 @@
coverage.html
*.un~
lib-cov
+reports
+.c9revisions
View
3  .travis.yml
@@ -7,6 +7,3 @@ node_js:
before_script:
- "npm install --dev"
-install:
- - sudo pip install pyftpdlib --use-mirrors
- - sudo pip install PyOpenSSL --use-mirrors
View
3  package.json
@@ -22,7 +22,8 @@
"mocha": "~1.10.0",
"istanbul": "~0.1.36",
"mocha-istanbul": "~0.2.0",
- "sinon": "~1.7.2"
+ "sinon": "~1.7.2",
+ "ftp-test-server": "~0.0.1"
},
"main": "./jsftp.js",
"engines": {
View
75 test/basic_ftpd.py
@@ -1,75 +0,0 @@
-#!/usr/bin/env python
-# $Id: basic_ftpd.py 977 2012-01-22 23:05:09Z g.rodola $
-
-# pyftpdlib is released under the MIT license, reproduced below:
-# ======================================================================
-# Copyright (C) 2007-2012 Giampaolo Rodola' <g.rodola@gmail.com>
-#
-# All Rights Reserved
-#
-# Permission is hereby granted, free of charge, to any person
-# obtaining a copy of this software and associated documentation
-# files (the "Software"), to deal in the Software without
-# restriction, including without limitation the rights to use,
-# copy, modify, merge, publish, distribute, sublicense, and/or sell
-# copies of the Software, and to permit persons to whom the
-# Software is furnished to do so, subject to the following
-# conditions:
-#
-# The above copyright notice and this permission notice shall be
-# included in all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-# OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-# OTHER DEALINGS IN THE SOFTWARE.
-#
-# ======================================================================
-
-"""A basic FTP server which uses a DummyAuthorizer for managing 'virtual
-users', setting a limit for incoming connections.
-"""
-
-import os, sys, inspect
-
-from pyftpdlib import ftpserver
-
-
-def main():
- # Instantiate a dummy authorizer for managing 'virtual' users
- authorizer = ftpserver.DummyAuthorizer()
-
- # Define a new user having full r/w permissions and a read-only
- # anonymous user
- authorizer.add_user('user', '12345', os.getcwd(), perm='elradfmwM')
- authorizer.add_anonymous(os.getcwd())
-
- # Instantiate FTP handler class
- ftp_handler = ftpserver.FTPHandler
- ftp_handler.authorizer = authorizer
-
- # Define a customized banner (string returned when client connects)
- ftp_handler.banner = "pyftpdlib %s based ftpd ready." %ftpserver.__ver__
-
- # Specify a masquerade address and the range of ports to use for
- # passive connections. Decomment in case you're behind a NAT.
- #ftp_handler.masquerade_address = '151.25.42.11'
- #ftp_handler.passive_ports = range(60000, 65535)
-
- # Instantiate FTP server class and listen to 0.0.0.0:21
- address = ('', 3334)
- ftpd = ftpserver.FTPServer(address, ftp_handler)
-
- # set a limit for connections
- ftpd.max_cons = 256
- ftpd.max_cons_per_ip = 5
-
- # start ftp server
- ftpd.serve_forever()
-
-if __name__ == '__main__':
- main()
View
1  test/coverage.sh
@@ -1 +0,0 @@
-export JSFTP_COV=1 && rm -rf lib-cov && jscoverage lib lib-cov && mocha -R html-cov > coverage.html && unset JSFTP_COV
View
16 test/jsftp_test.js
@@ -15,6 +15,7 @@ var Ftp = require("../");
var Path = require("path");
var Utils = require("../lib/utils");
var sinon = require("sinon");
+var ftpServer = require("ftp-test-server");
var concat = function(bufs) {
var buffer, length = 0, index = 0;
@@ -67,19 +68,11 @@ var daemon;
exec('mkdir', [__dirname + "/" + remoteCWD]);
describe("jsftp test suite", function() {
- var ftp;
+ var ftp, server;
beforeEach(function(next) {
if (FTPCredentials.host === "localhost") {
- try {
- daemon = exec('python', ['test/basic_ftpd.py']);
- }
- catch (e) {
- console.log(
- "There was a problem trying to start the FTP service." +
- " . This could be because you don't have enough permissions" +
- "to run the FTP service on the given port.\n\n" + e
- );
- }
+ server = new ftpServer();
+ server.init(FTPCredentials);
}
setTimeout(function() {
@@ -93,6 +86,7 @@ describe("jsftp test suite", function() {
daemon.kill();
setTimeout(function() {
+ server.stop();
if (ftp) {
ftp.destroy();
ftp = null;
Please sign in to comment.
Something went wrong with that request. Please try again.