[MediaWiki-commits] [Gerrit] Add `--domain` option to tests/parse.js and tests/fetch-wt.js. - change (mediawiki...parsoid)

2015-10-05 Thread jenkins-bot (Code Review)
jenkins-bot has submitted this change and it was merged.

Change subject: Add `--domain` option to tests/parse.js and tests/fetch-wt.js.
..


Add `--domain` option to tests/parse.js and tests/fetch-wt.js.

Try to standardize on `--domain` instead of `--prefix` where possible.

Change-Id: I75bc85e39c57735b5f2eab73499a4dc8610f1be6
---
M lib/index.js
M tests/fetch-wt.js
M tests/parse.js
3 files changed, 68 insertions(+), 24 deletions(-)

Approvals:
  Subramanya Sastry: Looks good to me, approved
  Cscott: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/lib/index.js b/lib/index.js
index da89050..07fed8b 100644
--- a/lib/index.js
+++ b/lib/index.js
@@ -84,17 +84,25 @@
}
 
var prefix = argv.prefix || null;
+   var domain = argv.domain || null;
 
if (argv.apiURL) {
prefix = 'customwiki';
+   domain = null;
+   } else if (!(prefix || domain)) {
+   domain = 'en.wikipedia.org';
}
 
-   var parsoidConfig = options.parsoidConfig ||
-   new ParsoidConfig(options.config || null, { defaultWiki: prefix 
});
+   var parsoidConfig = options.parsoidConfig;
+   if (!parsoidConfig) {
+   parsoidConfig = new ParsoidConfig(options.config || null);
+   parsoidConfig.defaultWiki = prefix ? prefix :
+   parsoidConfig.reverseMwApiMap.get(domain);
+   }
if (argv.pdoc) {
parsoidConfig.addHTMLTemplateParameters = true;
}
-   return parseJs.parse(input || '', argv, parsoidConfig, 
prefix).then(function(res) {
+   return parseJs.parse(input || '', argv, parsoidConfig, prefix, 
domain).then(function(res) {
return argv.pdoc ? new JsApi.PDoc(res.env, res.out) : res;
}).nodify(optCb);
 };
diff --git a/tests/fetch-wt.js b/tests/fetch-wt.js
index 16d010b..bd4fc71 100755
--- a/tests/fetch-wt.js
+++ b/tests/fetch-wt.js
@@ -9,32 +9,52 @@
  */
 
 var fs = require('fs');
+var path = require('path');
 var yargs = require('yargs');
+
 var TemplateRequest = 
require('../lib/mediawiki.ApiRequest.js').TemplateRequest;
 var ParsoidConfig = require('../lib/mediawiki.ParsoidConfig').ParsoidConfig;
 var MWParserEnvironment = 
require('../lib/mediawiki.parser.environment.js').MWParserEnvironment;
 var Util = require('../lib/mediawiki.Util.js').Util;
 
 
-var fetch = function(page, revid, options) {
-   var prefix = options.prefix || null;
+var fetch = function(page, revid, opts) {
+   var prefix = opts.prefix || null;
+   var domain = opts.domain || null;
 
-   if (options.apiURL) {
+   if (opts.apiURL) {
prefix = 'customwiki';
+   domain = null;
+   } else if (!(prefix || domain)) {
+   domain = 'en.wikipedia.org';
+   }
+
+   var local = null;
+   if (Util.booleanOption(opts.config)) {
+   var p = (typeof (opts.config) === 'string') ?
+   path.resolve('.', opts.config) :
+   path.resolve(__dirname, '../api/localsettings.js');
+   local = require(p);
}
 
var setup = function(parsoidConfig) {
-   Util.setTemplatingAndProcessingFlags(parsoidConfig, options);
+   if (local && local.setup) {
+   local.setup(parsoidConfig);
+   }
+   Util.setTemplatingAndProcessingFlags(parsoidConfig, opts);
+   Util.setDebuggingFlags(parsoidConfig, opts);
};
 
var parsoidConfig = new ParsoidConfig(
-   { setup: setup },
-   { defaultWiki: prefix }
+   { setup: setup }
);
+   parsoidConfig.defaultWiki = prefix ? prefix :
+   parsoidConfig.reverseMwApiMap.get(domain);
 
var env;
MWParserEnvironment.getParserEnv(parsoidConfig, null, {
prefix: prefix,
+   domain: domain,
pageName: page,
}).then(function(_env) {
env = _env;
@@ -42,8 +62,8 @@
env.resolveTitle(env.normalizeTitle(env.page.name), '') 
: null;
return TemplateRequest.setPageSrcInfo(env, target, revid);
}).then(function() {
-   if (options.output) {
-   fs.writeFileSync(options.output, env.page.src, 'utf8');
+   if (opts.output) {
+   fs.writeFileSync(opts.output, env.page.src, 'utf8');
} else {
console.log(env.page.src);
}
@@ -53,14 +73,23 @@
 var usage = 'Usage: $0 [options] \n' +
'If first argument is numeric, it is used as a rev id; otherwise it 
is\n' +
'used as a title.  Use the --title option for a numeric title.';
-var opts = yargs.usage(usage, {
+var opts = yargs.usage(usage, Util.addStandardOptions({
'output': {

[MediaWiki-commits] [Gerrit] Add `--domain` option to tests/parse.js and tests/fetch-wt.js. - change (mediawiki...parsoid)

2015-09-30 Thread Cscott (Code Review)
Cscott has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/242609

Change subject: Add `--domain` option to tests/parse.js and tests/fetch-wt.js.
..

Add `--domain` option to tests/parse.js and tests/fetch-wt.js.

Try to standardize on `--domain` instead of `--prefix` where possible.

Change-Id: I75bc85e39c57735b5f2eab73499a4dc8610f1be6
---
M tests/fetch-wt.js
M tests/parse.js
2 files changed, 50 insertions(+), 16 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/services/parsoid 
refs/changes/09/242609/1

diff --git a/tests/fetch-wt.js b/tests/fetch-wt.js
index 16d010b..9a1a51d 100755
--- a/tests/fetch-wt.js
+++ b/tests/fetch-wt.js
@@ -18,23 +18,41 @@
 
 var fetch = function(page, revid, options) {
var prefix = options.prefix || null;
+   var domain = options.domain || null;
 
if (options.apiURL) {
prefix = 'customwiki';
+   domain = null;
+   } else if (!(prefix || domain)) {
+   domain = 'en.wikipedia.org';
+   }
+
+   var local = null;
+   if (Util.booleanOption(argv.config)) {
+   var p = (typeof (argv.config) === 'string') ?
+   path.resolve('.', argv.config) :
+   path.resolve(__dirname, '../api/localsettings.js');
+   local = require(p);
}
 
var setup = function(parsoidConfig) {
-   Util.setTemplatingAndProcessingFlags(parsoidConfig, options);
+   if (local && local.setup) {
+   local.setup(parsoidConfig);
+   }
+   Util.setTemplatingAndProcessingFlags(parsoidConfig, argv);
+   Util.setDebuggingFlags(parsoidConfig, argv);
};
 
var parsoidConfig = new ParsoidConfig(
-   { setup: setup },
-   { defaultWiki: prefix }
+   { setup: setup }
);
+   parsoidConfig.defaultWiki = prefix ? prefix :
+   parsoidConfig.reverseMwApiMap.get(domain);
 
var env;
MWParserEnvironment.getParserEnv(parsoidConfig, null, {
prefix: prefix,
+   domain: domain,
pageName: page,
}).then(function(_env) {
env = _env;
@@ -53,14 +71,23 @@
 var usage = 'Usage: $0 [options] \n' +
'If first argument is numeric, it is used as a rev id; otherwise it 
is\n' +
'used as a title.  Use the --title option for a numeric title.';
-var opts = yargs.usage(usage, {
+var opts = yargs.usage(usage, Util.addStandardOptions({
'output': {
description: "Write page to given file",
+   },
+   'config': {
+   description: "Path to a localsettings.js file.  Use --config w/ 
no argument to default to the server's localsettings.js",
+   'default': false,
},
'prefix': {
description: 'Which wiki prefix to use; e.g. "enwiki" for 
English wikipedia, "eswiki" for Spanish, "mediawikiwiki" for mediawiki.org',
'boolean': false,
-   'default': 'enwiki',
+   'default': null,
+   },
+   'domain': {
+   description: 'Which wiki to use; e.g. "en.wikipedia.org" for 
English wikipedia, "es.wikipedia.org" for Spanish, "www.mediawiki.org" for 
mediawiki.org',
+   'boolean': false,
+   'default': null,
},
'revid': {
description: 'Page revision to fetch',
@@ -70,12 +97,7 @@
description: 'Page title to fetch (only if revid is not 
present)',
'boolean': false,
},
-   'help': {
-   description: 'Show this message',
-   'boolean': true,
-   'default': false,
-   },
-});
+}));
 
 var argv = opts.argv;
 var title = null;
diff --git a/tests/parse.js b/tests/parse.js
index de63f16..401bc09 100755
--- a/tests/parse.js
+++ b/tests/parse.js
@@ -58,7 +58,13 @@
},
'prefix': {
description: 'Which wiki prefix to use; e.g. "enwiki" for 
English wikipedia, "eswiki" for Spanish, "mediawikiwiki" for mediawiki.org',
-   'default': 'enwiki',
+   'boolean': false,
+   'default': null,
+   },
+   'domain': {
+   description: 'Which wiki to use; e.g. "en.wikipedia.org" for 
English wikipedia, "es.wikipedia.org" for Spanish, "mediawiki.org" for 
mediawiki.org',
+   'boolean': false,
+   'default': null,
},
'page': {
description: 'The page name, returned for {{PAGENAME}}. If no 
input is given (ie. empty/stdin closed), it downloads and parses the page.',
@@ -191,9 +197,10 @@
});
 };
 
-var parse = exports.parse = function(input, argv, parsoidConfig, prefix) {
+var parse = exports.parse = function(input, argv, parsoidConfig, prefix, 
domain) {
return