Skip to content

Commit

Permalink
Merge pull request #37 from jupyrdf/async_multiview
Browse files Browse the repository at this point in the history
Handle/Test multiviews more robustly
  • Loading branch information
dfreeman06 committed Nov 12, 2020
2 parents 1ca8188 + 69432d6 commit 31646b4
Show file tree
Hide file tree
Showing 22 changed files with 1,248 additions and 307 deletions.
10 changes: 5 additions & 5 deletions .github/workflows/ci.yml
Expand Up @@ -18,14 +18,14 @@ env:

jobs:
ci:
runs-on: ${{ matrix.os }}
runs-on: ${{ matrix.os }}-latest
strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
- macos-latest
- windows-latest
- ubuntu
- macos
- windows
steps:
- name: configure line endings
run: |
Expand Down Expand Up @@ -54,7 +54,7 @@ jobs:
yarn-
- name: env (conda)
uses: goanpeca/setup-miniconda@v1.6.0
uses: conda-incubator/setup-miniconda@v2
with:
environment-file: .ci/environment.yml
use-only-tar-bz2: true
Expand Down
2 changes: 2 additions & 0 deletions CHANGELOG.md
Expand Up @@ -6,6 +6,7 @@
- upgrades to `sprotty-elk 0.9.0` ([#15][])
- adds basic browser testing with Robot Framework ([#21][])
- adds SVG export with `ElkExporter` ([#27][])
- handles multiple views of the same ELK model more robustly ([#36][])

## ipyelk 0.2.0

Expand All @@ -24,6 +25,7 @@
[#24]: https://github.com/jupyrdf/ipyelk/pull/24
[#27]: https://github.com/jupyrdf/ipyelk/pull/27
[#34]: https://github.com/jupyrdf/ipyelk/pull/34
[#36]: https://github.com/jupyrdf/ipyelk/pull/36

---

Expand Down
61 changes: 33 additions & 28 deletions anaconda-project-lock.yml
Expand Up @@ -46,8 +46,7 @@ env_specs:
- idna=2.10=pyh9f0ad1d_0
- importlib-metadata=2.0.0=py_1
- importlib_metadata=2.0.0=1
- importnb=0.6.2=py37hc8dfbb8_1
- ipython=7.18.1=py37hc6149b9_1
- importnb=0.7.0=pyhd8ed1ab_0
- ipython_genutils=0.2.0=py_1
- ipywidgets=7.5.1=pyh9f0ad1d_1
- isort=4.3.21=py37hc8dfbb8_1
Expand All @@ -66,7 +65,7 @@ env_specs:
- nbclient=0.5.1=py_0
- nbconvert=6.0.7=py37hc8dfbb8_2
- nbformat=5.0.8=py_0
- nest-asyncio=1.4.1=py_0
- nest-asyncio=1.4.2=pyhd8ed1ab_0
- networkx=2.5=py_0
- notebook=6.1.4=py37hc8dfbb8_1
- packaging=20.4=pyh9f0ad1d_0
Expand All @@ -86,7 +85,7 @@ env_specs:
- pyparsing=2.4.7=pyh9f0ad1d_0
- python-dateutil=2.8.1=py_0
- python_abi=3.7=1_cp37m
- pytz=2020.1=pyh9f0ad1d_0
- pytz=2020.4=pyhd8ed1ab_0
- readme_renderer=27.0=pyh9f0ad1d_0
- requests-toolbelt=0.9.1=py_0
- requests=2.24.0=pyh9f0ad1d_0
Expand All @@ -95,7 +94,7 @@ env_specs:
- six=1.15.0=pyh9f0ad1d_0
- terminado=0.9.1=py37hc8dfbb8_1
- testpath=0.4.4=py_0
- toml=0.10.1=pyh9f0ad1d_0
- toml=0.10.2=pyhd8ed1ab_0
- tqdm=4.51.0=pyh9f0ad1d_0
- traitlets=5.0.5=py_0
- twine=3.2.0=py37hc8dfbb8_1
Expand All @@ -122,20 +121,22 @@ env_specs:
- cffi=1.14.3=py37h00ebd2e_1
- chardet=3.0.4=py37he5f6b98_1008
- cmarkgfm=0.4.2=py37h8f50634_3
- cryptography=3.1.1=py37hff6837a_1
- dbus=1.13.6=h7a60e0d_1
- cryptography=3.2.1=py37hc72a4ac_0
- dbus=1.13.6=hfdff14a_1
- docutils=0.16=py37he5f6b98_2
- expat=2.2.9=he1b5a44_2
- gettext=0.19.8.1=hf34092f_1004
- glib=2.66.2=he1b5a44_0
- glib=2.66.2=h58526e2_0
- icu=67.1=he1b5a44_0
- importlib_resources=3.3.0=py37h89c1867_0
- ipython=7.19.0=py37h888b3d9_0
- jeepney=0.4.3=py_0
- ld_impl_linux-64=2.35=h769bd43_9
- libffi=3.2.1=he1b5a44_1007
- libgcc-ng=9.3.0=h5dbcf3e_17
- libgfortran-ng=9.3.0=he4bcb1c_17
- libgfortran5=9.3.0=he4bcb1c_17
- libglib=2.66.2=h0dae87d_0
- libglib=2.66.2=hbe7bbb4_0
- libgomp=9.3.0=h5dbcf3e_17
- libiconv=1.16=h516909a_0
- libopenblas=0.3.12=pthreads_h4812303_1
Expand All @@ -144,25 +145,25 @@ env_specs:
- libuv=1.40.0=hd18ef5c_0
- markupsafe=1.1.1=py37hb5d75c8_2
- mistune=0.8.4=py37h8f50634_1002
- ncurses=6.2=he1b5a44_2
- ncurses=6.2=h58526e2_3
- nodejs=14.14.0=h568c755_0
- numpy=1.19.2=py37h7008fea_1
- numpy=1.19.4=py37h7e9df27_0
- openssl=1.1.1h=h516909a_0
- pandas=1.1.3=py37hb33c840_2
- pandas=1.1.4=py37h10a2094_0
- pandoc=2.11.0.4=hd18ef5c_0
- pcre=8.44=he1b5a44_0
- pyrsistent=0.17.3=py37h8f50634_1
- pysocks=1.7.1=py37he5f6b98_2
- python=3.7.8=h6f2ec95_1_cpython
- pyzmq=19.0.2=py37hac76be4_2
- readline=8.0=he28a2e2_2
- regex=2020.10.23=py37h8f50634_0
- regex=2020.10.28=py37h4abf009_0
- secretstorage=3.1.2=py37hc8dfbb8_2
- setuptools=49.6.0=py37he5f6b98_2
- sqlite=3.33.0=h4cf870e_1
- tk=8.6.10=hed695b0_1
- tornado=6.0.4=py37h8f50634_2
- typed-ast=1.4.1=py37h516909a_0
- tornado=6.1=py37h4abf009_0
- typed-ast=1.4.1=py37h4abf009_1
- xz=5.2.5=h516909a_1
- zeromq=4.3.3=he1b5a44_2
- zlib=1.2.11=h516909a_1010
Expand All @@ -174,9 +175,11 @@ env_specs:
- cffi=1.14.3=py37h446cb54_1
- chardet=3.0.4=py37h2987424_1008
- cmarkgfm=0.4.2=py37h60d8a13_3
- cryptography=3.1.1=py37h55b06a8_1
- cryptography=3.2.1=py37h3b7a55b_0
- docutils=0.16=py37h2987424_2
- icu=67.1=hb1e8313_0
- importlib_resources=3.3.0=py37hf985489_0
- ipython=7.19.0=py37he01cfaa_0
- libcxx=11.0.0=h439d374_0
- libffi=3.2.1=hb1e8313_1007
- libgfortran5=9.3.0=h7cc5361_13
Expand All @@ -187,23 +190,23 @@ env_specs:
- llvm-openmp=11.0.0=h73239a0_1
- markupsafe=1.1.1=py37h395d20d_2
- mistune=0.8.4=py37h60d8a13_1002
- ncurses=6.2=hb1e8313_2
- ncurses=6.2=h2e338ed_3
- nodejs=14.14.0=hdde0ff8_0
- numpy=1.19.2=py37h91c9966_1
- numpy=1.19.4=py37h9ebeaaa_0
- openssl=1.1.1h=haf1e3a3_0
- pandas=1.1.3=py37hb8f7068_2
- pandas=1.1.4=py37h9b0e0a3_0
- pandoc=2.11.0.4=h22f3db7_0
- pyrsistent=0.17.3=py37h60d8a13_1
- pysocks=1.7.1=py37h2987424_2
- python=3.7.8=hc9dea61_1_cpython
- pyzmq=19.0.2=py37hf1e22d8_2
- readline=8.0=h0678c8f_2
- regex=2020.10.23=py37h60d8a13_0
- regex=2020.10.28=py37h4b544eb_0
- setuptools=49.6.0=py37h2987424_2
- sqlite=3.33.0=h960bd1c_1
- tk=8.6.10=hb0a8c7a_1
- tornado=6.0.4=py37h60d8a13_2
- typed-ast=1.4.1=py37h0b31af3_0
- tornado=6.1=py37h4b544eb_0
- typed-ast=1.4.1=py37h4b544eb_1
- xz=5.2.5=haf1e3a3_1
- zeromq=4.3.3=hb1e8313_2
- zlib=1.2.11=h7795811_1010
Expand All @@ -214,10 +217,12 @@ env_specs:
- cffi=1.14.3=py37hd6b71e5_1
- chardet=3.0.4=py37hf50a25e_1008
- cmarkgfm=0.4.2=py37h4ab8f01_3
- cryptography=3.1.1=py37hd6b71e5_1
- cryptography=3.2.1=py37hd8e9650_0
- docutils=0.16=py37hf50a25e_2
- importlib_resources=3.3.0=py37h03978a9_0
- intel-openmp=2020.2=254
- ipykernel=5.3.4=py37h7b7c402_1
- ipython=7.19.0=py37heaed05f_0
- libblas=3.8.0=20_mkl
- libcblas=3.8.0=20_mkl
- liblapack=3.8.0=20_mkl
Expand All @@ -232,9 +237,9 @@ env_specs:
- mkl=2020.2=256
- msys2-conda-epoch=20160418=1
- nodejs=14.14.0=0
- numpy=1.19.2=py37he804e03_1
- numpy=1.19.4=py37hd20adf4_0
- openssl=1.1.1h=he774522_0
- pandas=1.1.3=py37h06f6abc_2
- pandas=1.1.4=py37h08fd248_0
- pandoc=2.11.0.4=hf4a77e7_0
- pyrsistent=0.17.3=py37h4ab8f01_1
- pysocks=1.7.1=py37hf50a25e_2
Expand All @@ -243,11 +248,11 @@ env_specs:
- pywin32=228=py37h4ab8f01_0
- pywinpty=0.5.7=py37hc8dfbb8_1
- pyzmq=19.0.2=py37h453f00a_2
- regex=2020.10.23=py37h4ab8f01_0
- regex=2020.10.28=py37hcc03f2d_0
- setuptools=49.6.0=py37hf50a25e_2
- sqlite=3.33.0=he774522_1
- tornado=6.0.4=py37h4ab8f01_2
- typed-ast=1.4.1=py37hfa6e2cd_0
- tornado=6.1=py37hcc03f2d_0
- typed-ast=1.4.1=py37hcc03f2d_1
- vc=14.1=h869be7e_1
- vs2015_runtime=14.16.27012=h30e32a0_2
- win_inet_pton=1.1.0=py37hc8dfbb8_1
Expand Down
53 changes: 23 additions & 30 deletions atest/Notebooks/Examples.robot
Expand Up @@ -3,6 +3,7 @@ Resource ../_resources/keywords/Browser.robot
Resource ../_resources/keywords/Lab.robot
Resource ../_resources/keywords/IPyElk.robot
Test Teardown Clean up after IPyElk Example
Library Collections

*** Variables ***
${SCREENS} ${SCREENS ROOT}${/}notebook-examples
Expand All @@ -15,38 +16,27 @@ ${SCREENS} ${SCREENS ROOT}${/}notebook-examples
00_Introduction
[Tags] data:simple.json
Example Should Restart-and-Run-All ${INTRODUCTION}
Elk Counts Should Be
... nodes=${SIMPLE NODE COUNT}
... edges=${SIMPLE EDGE COUNT}
... labels=${SIMPLE LABEL COUNT}
Elk Counts Should Be &{SIMPLE COUNTS}
Linked Elk Output Counts Should Be &{SIMPLE COUNTS}

01_Linking
[Tags] data:simple.json
Example Should Restart-and-Run-All ${LINKING}
Elk Counts Should Be
... nodes=${SIMPLE NODE COUNT}
... edges=${SIMPLE EDGE COUNT}
... labels=${SIMPLE LABEL COUNT}
... n=${2}
${counts} = Create Dictionary n=${2} &{SIMPLE COUNTS}
Elk Counts Should Be &{counts}
Linked Elk Output Counts Should Be &{counts}

02_Transformer
[Tags] data:flat_graph.json data:hier_tree.json data:hier_ports.json
Example Should Restart-and-Run-All ${TRANSFORMER}
Elk Counts Should Be
... nodes=${FLAT NODE COUNT.__add__(${HIER NODE COUNT})}
... edges=${FLAT EDGE COUNT.__add__(${HIER EDGE COUNT})}
... labels=${FLAT LABEL COUNT.__add__(${HIER LABEL COUNT})}
... ports=${HIER PORT COUNT}
Elk Counts Should Be &{FLAT AND HIER COUNTS}
Linked Elk Output Counts Should Be &{FLAT COUNTS}

03_App
[Tags] data:hier_tree.json data:hier_ports.json
[Tags] data:hier_tree.json data:hier_ports.json foo:bar
Example Should Restart-and-Run-All ${APP}
Elk Counts Should Be
... nodes=${HIER NODE COUNT}
... edges=${HIER EDGE COUNT}
... labels=${HIER LABEL COUNT}
... ports=${HIER PORT COUNT}
... n=${5}
Elk Counts Should Be n=${5} &{HIER COUNTS}
Linked Elk Output Counts Should Be &{HIER COUNTS}

04_Interactive
Example Should Restart-and-Run-All ${INTERACTIVE}
Expand All @@ -55,18 +45,21 @@ ${SCREENS} ${SCREENS ROOT}${/}notebook-examples
05_SVG_Exporter
[Tags] data:simple.json feature:svg
Example Should Restart-and-Run-All ${EXPORTER}
Elk Counts Should Be
... nodes=${SIMPLE NODE COUNT}
... edges=${SIMPLE EDGE COUNT}
... labels=${SIMPLE LABEL COUNT}
Elk Counts Should Be &{SIMPLE COUNTS}
Exported SVG should be valid XML untitled_example.svg
Linked Elk Output Counts Should Be &{SIMPLE COUNTS}

06_SVG_App_Exporter
[Tags] data:hier_tree.json data:hier_ports.json feature:svg
Example Should Restart-and-Run-All ${APP EXPORTER}
Elk Counts Should Be
... nodes=${HIER NODE COUNT}
... edges=${HIER EDGE COUNT}
... labels=${HIER LABEL COUNT}
... ports=${HIER PORT COUNT}
Elk Counts Should Be &{HIER COUNTS}
Exported SVG should be valid XML untitled_stylish_example.svg
Linked Elk Output Counts Should Be &{HIER COUNTS}

07_Simulation
Example Should Restart-and-Run-All ${SIM PLUMBING}
# not worth counting anything, as is basically non-deterministic

08_Simulation_App
Example Should Restart-and-Run-All ${SIM APP}
# not worth counting anything, as is basically non-deterministic
32 changes: 16 additions & 16 deletions atest/Notebooks/Experiments.robot
Expand Up @@ -3,6 +3,7 @@ Resource ../_resources/keywords/Browser.robot
Resource ../_resources/keywords/Lab.robot
Resource ../_resources/keywords/IPyElk.robot
Test Teardown Clean up after IPyElk Example
Library Collections

*** Variables ***
${SCREENS} ${SCREENS ROOT}${/}notebook-experiments
Expand All @@ -15,10 +16,8 @@ ${SCREENS} ${SCREENS ROOT}${/}notebook-experiments
100_node_label_placement
[Tags] data:simple.json
Example Should Restart-and-Run-All ${LABEL PLACEMENT}
Elk Counts Should Be
... nodes=${SIMPLE NODE COUNT}
... edges=${SIMPLE EDGE COUNT}
... labels=${SIMPLE LABEL COUNT}
Elk Counts Should Be &{SIMPLE COUNTS}
Linked Elk Output Counts Should Be &{SIMPLE COUNTS}

101_text_sizer
Example Should Restart-and-Run-All ${TEXT SIZER}
Expand All @@ -27,36 +26,37 @@ ${SCREENS} ${SCREENS ROOT}${/}notebook-experiments
102_layout_options
[Tags] data:simple.json
Example Should Restart-and-Run-All ${LAYOUT OPTIONS}
Elk Counts Should Be
... nodes=${SIMPLE NODE COUNT}
... edges=${SIMPLE EDGE COUNT}
... labels=${SIMPLE LABEL COUNT}
Elk Counts Should Be &{SIMPLE COUNTS}
Linked Elk Output Counts Should Be &{SIMPLE COUNTS}

103_transformer_layout_options
[Tags] data:flat_graph.json data:hier_tree.json data:hier_ports.json
Example Should Restart-and-Run-All ${TX LAYOUT OPTIONS}
Elk Counts Should Be
... nodes=${FLAT NODE COUNT.__add__(${HIER NODE COUNT})}
... edges=${FLAT EDGE COUNT.__add__(${HIER EDGE COUNT})}
... labels=${FLAT LABEL COUNT.__add__(${HIER LABEL COUNT})}
... ports=${HIER PORT COUNT}
Elk Counts Should Be &{FLAT AND HIER COUNTS}
Linked Elk Output Counts Should Be &{FLAT COUNTS}

104_transformer_multi_label
Example Should Restart-and-Run-All ${TX MULTI LABEL}
Elk Counts Should Be
${counts} = Create Dictionary
... nodes=${1}
... labels=${4}
Elk Counts Should Be &{counts}
Linked Elk Output Counts Should Be &{counts}

105_transformer_ports
Example Should Restart-and-Run-All ${TX PORTS}
Elk Counts Should Be
${counts} = Create Dictionary
... nodes=${1}
... labels=${5}
... ports=${2}
Elk Counts Should Be &{counts}
Linked Elk Output Counts Should Be &{counts}

106_transformer_edges
Example Should Restart-and-Run-All ${TX EDGES}
Elk Counts Should Be
${counts} = Create Dictionary
... nodes=${2}
... edges=${1}
... labels=${5}
Elk Counts Should Be &{counts}
Linked Elk Output Counts Should Be &{counts}

0 comments on commit 31646b4

Please sign in to comment.