Skip to content

Commit

Permalink
enable all tests
Browse files Browse the repository at this point in the history
  • Loading branch information
sc1f committed Jun 24, 2021
1 parent 3486e1d commit a54871c
Show file tree
Hide file tree
Showing 2 changed files with 116 additions and 119 deletions.
36 changes: 23 additions & 13 deletions azure-pipelines.yml
Original file line number Diff line number Diff line change
Expand Up @@ -418,7 +418,29 @@ jobs:
artifact_name: "cp37-cp37m-manylinux2010_x86_64"

steps:
- ${{ parameters.initSteps }}
# don't use InitSteps because we don't want to cache local puppeteer
- task: NodeTool@0
inputs:
versionSpec: '12.x'

- bash: npm install -g yarn
displayName: 'Install Yarn'

- bash: yarn --frozen-lockfile
displayName: "Install Deps"

- task: UsePythonVersion@0
inputs:
versionSpec: '$(python.version)'
architecture: 'x64'
displayName: 'Use Python $(python.version)'

- bash: python -m pip install --upgrade pip wheel setuptools jupyterlab numpy "pyarrow>=2" "black==20.8b1" flake8-black
displayName: 'Install Python base dependencies'
condition: and(succeeded(), ne(variables['python.version'], '2.7'))

- bash: curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh
displayName: "Install wasm-pack"

- task: DownloadPipelineArtifact@2
displayName: "Download Python 3.7 Perspective Wheel"
Expand All @@ -429,9 +451,6 @@ jobs:
- bash: python -m pip install $(System.DefaultWorkingDirectory)/wheel/*.whl
displayName: "Install perspective-python from wheel"

- bash: python -c "import perspective;perspective.Table({'a':[1, 2, 3]})"
displayName: "Debug wheel"

- bash: jupyter labextension install @jupyter-widgets/jupyterlab-manager
displayName: "Install Labextensions"

Expand Down Expand Up @@ -489,16 +508,7 @@ jobs:
- bash: yarn jlab_link
displayName: "Link local Perspective to Jupyterlab"

- bash: jupyter lab paths && jupyter labextension list && jupyter kernelspec list
displayName: "Debug"

- bash: yarn test_js --jupyter --debug
displayName: "Run Jupyterlab tests"
env:
PACKAGE: perspective-jupyterlab

- task: PublishPipelineArtifact@1
condition: succeededOrFailed()
inputs:
targetPath: '$(System.DefaultWorkingDirectory)/packages/perspective-jupyterlab/screenshots/'
artifactName: "perspective-jupyterlab-$(Build.BuildNumber)"
199 changes: 93 additions & 106 deletions packages/perspective-jupyterlab/test/jupyter/widget.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,36 +7,23 @@
*
*/

const fs = require("fs-extra");
const path = require("path");
const utils = require("@finos/perspective-test");
const {execute_all_cells} = require("./utils");

const dir_name = path.join(__dirname, "..", "..", "screenshots");

if (!fs.existsSync(dir_name)) {
fs.mkdirpSync(dir_name);
}

const default_body = async (name, page) => {
console.log("before execute");
const default_body = async page => {
await execute_all_cells(page);
console.log("after execute");
await page.waitForTimeout(10000);
const screenshot = await page.screenshot({fullPage: true});
fs.writeFileSync(path.join(dir_name, name) + ".png", screenshot);
await page.waitForTimeout(5000);
const viewer = await page.waitForSelector(".jp-OutputArea-output perspective-viewer:not([updating])", {visible: true});
console.log("found viewer");
await page.waitForTimeout(2500);
// await viewer.evaluate(async viewer => await viewer.flush());
return viewer;
};

utils.with_jupyterlab(process.env.__JUPYTERLAB_PORT__, () => {
describe.jupyter(
() => {
test.jupyterlab("Loads a table", [["table = perspective.Table(arrow_data)\nw =perspective.PerspectiveWidget(table, columns=['f64', 'str', 'datetime'])"], ["w"]], async page => {
const viewer = await default_body("Loads a table", page);
const viewer = await default_body(page);

const num_columns = await viewer.evaluate(async viewer => {
const tbl = viewer.querySelector("regular-table");
Expand All @@ -54,7 +41,7 @@ utils.with_jupyterlab(process.env.__JUPYTERLAB_PORT__, () => {
});

test.jupyterlab("Sets columns", [["table = perspective.Table(arrow_data)\n", "w = perspective.PerspectiveWidget(table)"], ["w"], ["w.columns = ['i8', 'f64']"]], async page => {
const viewer = await default_body("sets column", page);
const viewer = await default_body(page);

const num_columns = await viewer.evaluate(async viewer => {
const tbl = viewer.querySelector("regular-table");
Expand All @@ -65,7 +52,7 @@ utils.with_jupyterlab(process.env.__JUPYTERLAB_PORT__, () => {
});

test.jupyterlab("Sets row pivots", [["table = perspective.Table(arrow_data)\n", "w = perspective.PerspectiveWidget(table)"], ["w"], ["w.row_pivots = ['datetime', 'str']"]], async page => {
const viewer = await default_body("rowpivots", page);
const viewer = await default_body(page);

const num_columns = await viewer.evaluate(async viewer => {
const tbl = viewer.querySelector("regular-table");
Expand All @@ -84,101 +71,101 @@ utils.with_jupyterlab(process.env.__JUPYTERLAB_PORT__, () => {
});

test.jupyterlab("Sets column pivots", [["table = perspective.Table(arrow_data)\n", "w = perspective.PerspectiveWidget(table)"], ["w"], ["w.column_pivots = ['str']"]], async page => {
const viewer = await default_body("colpivots", page);
const viewer = await default_body(page);
const num_headers = await viewer.evaluate(async viewer => {
const tbl = viewer.querySelector("regular-table");
return tbl.querySelector("thead").childElementCount;
});
expect(num_headers).toEqual(2);
});

// test.jupyterlab(
// "Sets row and column pivots",
// [["table = perspective.Table(arrow_data)\n", "w = perspective.PerspectiveWidget(table)"], ["w"], ["w.row_pivots = ['datetime']"], ["w.column_pivots = ['str']"]],
// async page => {
// const viewer = await default_body(page);
// const num_headers = await viewer.evaluate(async viewer => {
// const tbl = viewer.querySelector("regular-table");
// return tbl.querySelector("thead").childElementCount;
// });
// expect(num_headers).toEqual(2);

// const num_rows = await viewer.evaluate(async viewer => {
// const tbl = viewer.querySelector("regular-table");
// return tbl.querySelectorAll("tbody tr").length;
// });

// expect(num_rows).toEqual(6);
// }
// );

// test.jupyterlab("Sets filters", [["table = perspective.Table(arrow_data)\n", "w = perspective.PerspectiveWidget(table)"], ["w"], ["w.filters = [['bool', '==', True]]"]], async page => {
// const viewer = await default_body(page);

// const num_rows = await viewer.evaluate(async viewer => {
// const tbl = viewer.querySelector("regular-table");
// return tbl.querySelectorAll("tbody tr").length;
// });

// expect(num_rows).toEqual(3);
// });

// test.jupyterlab("Sets sort", [["table = perspective.Table(arrow_data)\n", "w = perspective.PerspectiveWidget(table)"], ["w"], ["w.sort = [['datetime', 'desc']]"]], async page => {
// const viewer = await default_body(page);
// const config = await viewer.evaluate(viewer => viewer.save());
// expect(config["sort"]).toEqual([["datetime", "desc"]]);
// });

// test.jupyterlab("Resets", [["table = perspective.Table(arrow_data)\n", "w = perspective.PerspectiveWidget(table, row_pivots=['str'])"], ["w"], ["w.reset()"]], async page => {
// const viewer = await default_body(page);

// const num_columns = await viewer.evaluate(async viewer => {
// const tbl = viewer.querySelector("regular-table");
// return tbl.querySelector("thead tr").childElementCount;
// });

// const num_rows = await viewer.evaluate(async viewer => {
// const tbl = viewer.querySelector("regular-table");
// return tbl.querySelectorAll("tbody tr").length;
// });

// expect(num_columns).toEqual(13);
// expect(num_rows).toEqual(5);
// });

// test.jupyterlab(
// "Restores",
// [["table = perspective.Table(arrow_data)\n", "w = perspective.PerspectiveWidget(table)"], ["w"], ["w.restore(columns=['date'], sort=[['i64', 'desc']], row_pivots=['str'])"]],
// async page => {
// const viewer = await default_body(page);

// const num_columns = await viewer.evaluate(async viewer => {
// const tbl = viewer.querySelector("regular-table");
// return tbl.querySelector("thead").childElementCount;
// });

// const num_rows = await viewer.evaluate(async viewer => {
// const tbl = viewer.querySelector("regular-table");
// return tbl.querySelectorAll("tbody tr").length;
// });

// expect(num_columns).toEqual(1);
// expect(num_rows).toEqual(6);
// }
// );

// test.jupyterlab(
// "Reads updates",
// [["table = perspective.Table(arrow_data)\n", "w = perspective.PerspectiveWidget(table)"], ["w"], ["w.row_pivots = ['datetime', 'str']\n", "table.update(arrow_data)"]],
// async page => {
// const viewer = await default_body(page);
// const num_rows = await viewer.evaluate(async viewer => {
// const tbl = viewer.querySelector("regular-table");
// return tbl.querySelectorAll("tbody tr").length;
// });
// expect(num_rows).toEqual(11);
// }
// );
test.jupyterlab(
"Sets row and column pivots",
[["table = perspective.Table(arrow_data)\n", "w = perspective.PerspectiveWidget(table)"], ["w"], ["w.row_pivots = ['datetime']"], ["w.column_pivots = ['str']"]],
async page => {
const viewer = await default_body(page);
const num_headers = await viewer.evaluate(async viewer => {
const tbl = viewer.querySelector("regular-table");
return tbl.querySelector("thead").childElementCount;
});
expect(num_headers).toEqual(2);

const num_rows = await viewer.evaluate(async viewer => {
const tbl = viewer.querySelector("regular-table");
return tbl.querySelectorAll("tbody tr").length;
});

expect(num_rows).toEqual(6);
}
);

test.jupyterlab("Sets filters", [["table = perspective.Table(arrow_data)\n", "w = perspective.PerspectiveWidget(table)"], ["w"], ["w.filters = [['bool', '==', True]]"]], async page => {
const viewer = await default_body(page);

const num_rows = await viewer.evaluate(async viewer => {
const tbl = viewer.querySelector("regular-table");
return tbl.querySelectorAll("tbody tr").length;
});

expect(num_rows).toEqual(3);
});

test.jupyterlab("Sets sort", [["table = perspective.Table(arrow_data)\n", "w = perspective.PerspectiveWidget(table)"], ["w"], ["w.sort = [['datetime', 'desc']]"]], async page => {
const viewer = await default_body(page);
const config = await viewer.evaluate(viewer => viewer.save());
expect(config["sort"]).toEqual([["datetime", "desc"]]);
});

test.jupyterlab("Resets", [["table = perspective.Table(arrow_data)\n", "w = perspective.PerspectiveWidget(table, row_pivots=['str'])"], ["w"], ["w.reset()"]], async page => {
const viewer = await default_body(page);

const num_columns = await viewer.evaluate(async viewer => {
const tbl = viewer.querySelector("regular-table");
return tbl.querySelector("thead tr").childElementCount;
});

const num_rows = await viewer.evaluate(async viewer => {
const tbl = viewer.querySelector("regular-table");
return tbl.querySelectorAll("tbody tr").length;
});

expect(num_columns).toEqual(13);
expect(num_rows).toEqual(5);
});

test.jupyterlab(
"Restores",
[["table = perspective.Table(arrow_data)\n", "w = perspective.PerspectiveWidget(table)"], ["w"], ["w.restore(columns=['date'], sort=[['i64', 'desc']], row_pivots=['str'])"]],
async page => {
const viewer = await default_body(page);

const num_columns = await viewer.evaluate(async viewer => {
const tbl = viewer.querySelector("regular-table");
return tbl.querySelector("thead").childElementCount;
});

const num_rows = await viewer.evaluate(async viewer => {
const tbl = viewer.querySelector("regular-table");
return tbl.querySelectorAll("tbody tr").length;
});

expect(num_columns).toEqual(1);
expect(num_rows).toEqual(6);
}
);

test.jupyterlab(
"Reads updates",
[["table = perspective.Table(arrow_data)\n", "w = perspective.PerspectiveWidget(table)"], ["w"], ["w.row_pivots = ['datetime', 'str']\n", "table.update(arrow_data)"]],
async page => {
const viewer = await default_body(page);
const num_rows = await viewer.evaluate(async viewer => {
const tbl = viewer.querySelector("regular-table");
return tbl.querySelectorAll("tbody tr").length;
});
expect(num_rows).toEqual(11);
}
);
},
{name: "Simple", root: path.join(__dirname, "..", "..")}
);
Expand Down

0 comments on commit a54871c

Please sign in to comment.