Skip to content

Commit

Permalink
Address comments
Browse files Browse the repository at this point in the history
  • Loading branch information
Ace Nassri committed Sep 1, 2016
1 parent 6e6cf48 commit c7f8a7d
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 45 deletions.
24 changes: 11 additions & 13 deletions bigquery/system-test/tables.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -36,12 +36,10 @@ var options = {
schema: 'Name:string, Age:integer, Weight:float, IsMagic:boolean',
rows: rows
};
var copyOptions = {
srcDataset: options.dataset,
srcTable: options.table,
destDataset: generateUuid(),
destTable: generateUuid()
};
var srcDataset = options.dataset;
var srcTable = options.table;
var destDataset = generateUuid();
var destTable = generateUuid();

describe('bigquery:tables', function () {
before(function (done) {
Expand All @@ -52,10 +50,10 @@ describe('bigquery:tables', function () {
bucket.upload(options.localFilePath, function (err) {
assert.ifError(err, 'file upload succeeded');
// Create srcDataset
bigquery.createDataset(copyOptions.srcDataset, function (err) {
bigquery.createDataset(srcDataset, function (err) {
assert.ifError(err, 'srcDataset creation succeeded');
// Create destDataset
bigquery.createDataset(copyOptions.destDataset, function (err) {
bigquery.createDataset(destDataset, function (err) {
assert.ifError(err, 'destDataset creation succeeded');
done();
});
Expand All @@ -66,9 +64,9 @@ describe('bigquery:tables', function () {

after(function (done) {
// Delete srcDataset
bigquery.dataset(copyOptions.srcDataset).delete({ force: true }, function () {
bigquery.dataset(srcDataset).delete({ force: true }, function () {
// Delete destDataset
bigquery.dataset(copyOptions.destDataset).delete({ force: true }, function () {
bigquery.dataset(destDataset).delete({ force: true }, function () {
// Delete files
storage.bucket(options.bucket).deleteFiles({ force: true }, function (err) {
if (err) {
Expand Down Expand Up @@ -171,16 +169,16 @@ describe('bigquery:tables', function () {

describe('copyTable', function () {
it('should copy a table between datasets', function (done) {
program.copyTable(copyOptions, function (err, metadata) {
program.copyTable(srcDataset, srcTable, destDataset, destTable, function (err, metadata) {
assert.equal(err, null);
assert.deepEqual(metadata.status, { state: 'DONE' });

bigquery.dataset(copyOptions.srcDataset).table(copyOptions.srcTable).exists(
bigquery.dataset(srcDataset).table(srcTable).exists(
function (err, exists) {
assert.equal(err, null);
assert.equal(exists, true, 'srcTable exists');

bigquery.dataset(copyOptions.destDataset).table(copyOptions.destTable).exists(
bigquery.dataset(destDataset).table(destTable).exists(
function (err, exists) {
assert.equal(err, null);
assert.equal(exists, true, 'destTable exists');
Expand Down
27 changes: 10 additions & 17 deletions bigquery/tables.js
Original file line number Diff line number Diff line change
Expand Up @@ -104,22 +104,13 @@ function deleteTable (options, callback) {
}
// [END delete_table]

// [START copy_table]
/**
* Create a copy of an existing table
*
* @param {object} options Configuration options.
* @param {string} options.srcDataset The source dataset ID.
* @param {string} options.srcTable The source table ID.
* @param {string} options.destDataset The destination dataset ID.
* @param {string} options.destTable The destination table ID. Will be created if it doesn't exist.
* @param {function} callback The callback function.
*/
function copyTable (options, callback) {
var srcTable = bigquery.dataset(options.srcDataset).table(options.srcTable);
var destTable = bigquery.dataset(options.destDataset).table(options.destTable);
function copyTable (srcDataset, srcTable, destDataset, destTable, callback) {
var bigquery = BigQuery();

var srcTableObj = bigquery.dataset(srcDataset).table(srcTable);
var destTableObj = bigquery.dataset(destDataset).table(destTable);

srcTable.copy(destTable, function (err, job) {
srcTableObj.copy(destTableObj, function (err, job) {
if (err) {
return callback(err);
}
Expand All @@ -133,7 +124,6 @@ function copyTable (options, callback) {
});
});
}
// [END copy_table]

// [START import_file]
/**
Expand Down Expand Up @@ -272,7 +262,10 @@ cli
'Make a copy of an existing table.', {},
function (options) {
program.copyTable(
utils.pick(options, ['srcDataset', 'srcTable', 'destDataset', 'destTable']),
options.srcDataset,
options.srcTable,
options.destDataset,
options.destTable,
utils.makeHandler()
);
}
Expand Down
20 changes: 5 additions & 15 deletions bigquery/test/tables.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -274,18 +274,11 @@ describe('bigquery:tables', function () {
});

describe('copyTable', function () {
var options = {
srcDataset: srcDataset,
srcTable: srcTable,
destDataset: destDataset,
destTable: destTable
};

it('should copy a table', function () {
var sample = getSample();
var callback = sinon.stub();

sample.program.copyTable(options, callback);
sample.program.copyTable(srcDataset, srcTable, destDataset, destTable, callback);

assert.equal(sample.mocks.table.copy.calledOnce, true);
assert.deepEqual(
Expand All @@ -305,7 +298,7 @@ describe('bigquery:tables', function () {
var callback = sinon.stub();
sample.mocks.table.copy.yields(error);

sample.program.copyTable(options, callback);
sample.program.copyTable(srcDataset, srcTable, destDataset, destTable, callback);

assert.equal(callback.calledOnce, true);
assert.deepEqual(callback.firstCall.args, [error]);
Expand Down Expand Up @@ -437,12 +430,9 @@ describe('bigquery:tables', function () {

program.main(['copy', srcDataset, srcTable, destDataset, destTable]);
assert.equal(program.copyTable.calledOnce, true);
assert.deepEqual(program.copyTable.firstCall.args.slice(0, -1), [{
srcDataset: srcDataset,
srcTable: srcTable,
destDataset: destDataset,
destTable: destTable
}]);
assert.deepEqual(program.copyTable.firstCall.args.slice(0, -1),
[srcDataset, srcTable, destDataset, destTable]
);
});

it('should call exportTableToGCS', function () {
Expand Down

0 comments on commit c7f8a7d

Please sign in to comment.