This a Qt widget that embeds a rich and powerful graph drawing tool using JavaScript's mxGraph library, Qt WebEngine features from Qt 5.4.
Due to changes in mxgraph we are currently only supporting an old version of mxgraph (3.7.5).
A Qt graph drawing widget using JavaScript's mxGraph library.
License: MIT License
Cover api.py
(maybe as described in PR 7).
Suggestion for new items are welcome.
Hello all. I am currently developing a Chemical Simulator diagramming application like draw.io using PyQt5. And found that there is a QmxGraph widget. I want to know that is there any documentation for this widget.
The test fail on linux with the expected values selected in windows.
One possibility is the customization of ActionChains
used in the test.
After updating "prettier" pre-commit hook to "v3.0.0-alpha.0" PhantomJS started to fail parsing the javascript source due new trailing commas, the command line option --trailing-comma=none
will avoid that.
We need:
The trailing-comma option is being passed using the .prettierrc
file.
Updating is relevant because newer qt support more recent javascript syntax support that can't be properly used because PhantomJS does not support it.
Sometimes selenium
is unable to connect to graph page before it timeouts, still not sure why.
The problem seems to be that each tests connect to a new page through Selenium, which takes about 1 second or more. It seems it is necessary to find a way to load page just once and then instruct page to reset itself for subsequent tests.
This test is a follow uo to #108
A part of the log for the "build (39)" (from #165)...
============================= test session starts ==============================
platform linux -- Python 3.6.15, pytest-6.2.5, py-1.11.0, pluggy-1.0.0 -- /usr/share/miniconda/envs/qmxgraph/bin/python
cachedir: .pytest_cache
PyQt5 5.12.3 -- Qt runtime 5.12.9 -- Qt compiled 5.12.9
metadata: {'Python': '3.6.15', 'Platform': 'Linux-5.15.0-1042-azure-x86_64-with-debian-bookworm-sid', 'Packages': {'pytest': '6.2.5', 'py': '1.11.0', 'pluggy': '1.0.0'}, 'Plugins': {'qt': '4.0.2', 'variables': '1.7.1', 'mock': '3.6.1', 'timeout': '2.1.0', 'xvfb': '2.0.0', 'rerunfailures': '10.3', 'hypothesis': '3.11.0', 'base-url': '1.4.1', 'metadata': '1.11.0', 'selenium': '1.17.0', 'html': '3.2.0', 'cov': '2.5.1'}, 'CI': 'true', 'JAVA_HOME': '/usr/lib/jvm/temurin-11-jdk-amd64', 'Base URL': '', 'Driver': 'PhantomJS', 'Capabilities': {}}
Note that it is running using python 3.6 and looks like most libraries are dropping support for it.
Worker information
hostname: travis-worker-gce-org-prod5-9:4b5575e8-ffb8-44f3-8078-429df9872530
version: v2.5.0 https://github.com/travis-ci/worker/tree/da3a43228dffc0fcca5a46569ca786b22991979f
instance: testing-gce-87578cdc-2d65-4023-8d0f-5003da283883:travis-ci-sugilite-trusty-1480960799
startup: 22.049602014s
Build system information
Build language: python
Build group: stable
Build dist: trusty
Build id: 189533340
Job id: 189533341
travis-build version: 8720fc090
Build image provisioning date and time
Mon Dec 5 18:47:20 UTC 2016
Operating System Details
Distributor ID: Ubuntu
Description: Ubuntu 14.04.5 LTS
Release: 14.04
Codename: trusty
Linux Version
4.4.0-51-generic
Cookbooks Version
998099c https://github.com/travis-ci/travis-cookbooks/tree/998099c
git version
git version 2.11.0
bash version
GNU bash, version 4.3.11(1)-release (x86_64-pc-linux-gnu)
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
gcc version
gcc (Ubuntu 4.8.4-2ubuntu1~14.04.3) 4.8.4
Copyright (C) 2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
docker version
Client:
Version: 1.12.3
API version: 1.24
Go version: go1.6.3
Git commit: 6b644ec
Built: Wed Oct 26 21:44:32 2016
OS/Arch: linux/amd64
Server:
Version: 1.12.3
API version: 1.24
Go version: go1.6.3
Git commit: 6b644ec
Built: Wed Oct 26 21:44:32 2016
OS/Arch: linux/amd64
clang version
clang version 3.5.0 (tags/RELEASE_350/final)
Target: x86_64-unknown-linux-gnu
Thread model: posix
jq version
jq-1.5
bats version
Bats 0.4.0
gimme version
v1.0.0
nvm version
0.32.0
perlbrew version
/home/travis/perl5/perlbrew/bin/perlbrew - App::perlbrew/0.73
postgresql client version
psql (PostgreSQL) 9.6.1
phpenv version
rbenv 1.1.0
rvm version
rvm 1.27.0 (latest) by Wayne E. Seguin <[email protected]>, Michal Papis <[email protected]> [https://rvm.io/]
default ruby version
ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-linux]
Pre-installed Ruby versions
jruby-9.1.2.0
ruby-1.9.3-p551
ruby-2.0.0-p648
ruby-2.1.10
ruby-2.2.5
ruby-2.3.1
Pre-installed Node.js versions
iojs-v1.6
iojs-v1.6.4
v0.10
v0.10.40
v0.11.16
v0.12.2
v0.12.7
v0.6.21
v0.8.28
v4.1.2
v4.6.2
v6.9.1
Pre-installed Go versions
1.2.2
1.3.3
1.4.3
1.5.4
1.6.3
1.7
mysql version
mysql Ver 14.14 Distrib 5.6.33, for debian-linux-gnu (x86_64) using EditLine wrapper
Pre-installed PostgreSQL versions
9.2.19
9.3.15
9.4.10
9.5.5
9.6.1
Redis version
redis-server 3.0.6
MongoDB version
MongoDB 3.2.11
RabbitMQ Version
3.6.6
Installed Firefox version
firefox 38.4.0esr
ant version
Apache Ant(TM) version 1.9.3 compiled on April 8 2014
mvn version
Apache Maven 3.1.1 (0728685237757ffbf44136acec0402957f723d9a; 2013-09-17 15:22:22+0000)
Maven home: /usr/local/maven
Java version: 1.8.0_111, vendor: Oracle Corporation
Java home: /usr/lib/jvm/java-8-oracle/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "4.4.0-51-generic", arch: "amd64", family: "unix"
gradle version
------------------------------------------------------------
Gradle 2.13
------------------------------------------------------------
Build time: 2016-04-25 04:10:10 UTC
Build number: none
Revision: 3b427b1481e46232107303c90be7b05079b05b1c
Groovy: 2.4.4
Ant: Apache Ant(TM) version 1.9.6 compiled on June 29 2015
JVM: 1.8.0_111 (Oracle Corporation 25.111-b14)
OS: Linux 4.4.0-51-generic amd64
kerl list installations
17.0
17.1
17.3
17.4
17.5
18.0
18.1
18.2
18.2.1
R14B02
R14B03
R14B04
R15B
R15B01
R15B02
R15B03
R16B
R16B01
R16B02
R16B03
R16B03-1
kiex list
kiex elixirs
elixir-1.0.3
=* elixir-1.0.4
# => - current
# =* - current && default
# * - default
rebar --version
rebar 2.6.4 17 20160831_145136 git 2.6.4-dirty
lein version
WARNING: You're currently running as root; probably by accident.
Press control-C to abort or Enter to continue as root.
Set LEIN_ROOT to disable this warning.
Leiningen 2.7.1 on Java 1.8.0_111 Java HotSpot(TM) 64-Bit Server VM
perlbrew list
5.8 (5.8.8)
5.10 (5.10.1)
5.12 (5.12.5)
5.14 (5.14.4)
5.16 (5.16.3)
5.18 (5.18.4)
5.20 (5.20.3)
5.20-extras (5.20.3)
5.20-shrplib (5.20.3)
5.20.3
5.22 (5.22.0)
5.22-extras (5.22.0)
5.22-shrplib (5.22.0)
5.22.0
phpenv versions
system
5.4
5.4.45
5.5.37
5.6
* 5.6.24 (set by /home/travis/.phpenv/version)
7.0
7.0.7
hhvm
hhvm-stable
composer --version
Composer version 1.2.0 2016-07-19 01:28:52
$ export DEBIAN_FRONTEND=noninteractive
Reading package lists...
Building dependency tree...
Reading state information...
libc6 is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 62 not upgraded.
$ git clone --depth=50 --branch=master https://github.com/ESSS/qmxgraph.git ESSS/qmxgraph
Cloning into 'ESSS/qmxgraph'...
remote: Counting objects: 123, done.
remote: Compressing objects: 100% (36/36), done.
remote: Total 123 (delta 16), reused 2 (delta 2), pack-reused 85
Receiving objects: 100% (123/123), 117.19 KiB | 0 bytes/s, done.
Resolving deltas: 100% (35/35), done.
$ cd ESSS/qmxgraph
$ git checkout -qf d96446268142e2e6d3133946f02c9799ee80d06b
$ source ~/virtualenv/python3.5/bin/activate
$ python --version
Python 3.5.2
$ pip --version
pip 8.1.2 from /home/travis/virtualenv/python3.5.2/lib/python3.5/site-packages (python 3.5)
$ sudo apt-get update
Ign http://us-central1.gce.archive.ubuntu.com trusty InRelease
Hit http://us-central1.gce.archive.ubuntu.com trusty-updates InRelease
Hit http://us-central1.gce.archive.ubuntu.com trusty-backports InRelease
Hit http://us-central1.gce.archive.ubuntu.com trusty Release.gpg
Hit http://us-central1.gce.archive.ubuntu.com trusty Release
Ign http://repo.mongodb.org trusty/mongodb-org/3.2 InRelease
Ign http://dl.google.com stable InRelease
Hit http://repo.mongodb.org trusty/mongodb-org/3.2 Release.gpg
Hit http://us-central1.gce.archive.ubuntu.com trusty-updates/main Sources
Get:1 http://security.ubuntu.com trusty-security InRelease [65.9 kB]
Hit http://dl.hhvm.com trusty InRelease
Hit http://repo.mongodb.org trusty/mongodb-org/3.2 Release
Hit http://us-central1.gce.archive.ubuntu.com trusty-updates/restricted Sources
Hit http://us-central1.gce.archive.ubuntu.com trusty-updates/universe Sources
Hit http://us-central1.gce.archive.ubuntu.com trusty-updates/multiverse Sources
Hit http://us-central1.gce.archive.ubuntu.com trusty-updates/main amd64 Packages
Hit http://us-central1.gce.archive.ubuntu.com trusty-updates/restricted amd64 Packages
Hit http://us-central1.gce.archive.ubuntu.com trusty-updates/universe amd64 Packages
Hit http://us-central1.gce.archive.ubuntu.com trusty-updates/multiverse amd64 Packages
Hit http://us-central1.gce.archive.ubuntu.com trusty-updates/main Translation-en
Hit http://us-central1.gce.archive.ubuntu.com trusty-updates/multiverse Translation-en
Hit http://us-central1.gce.archive.ubuntu.com trusty-updates/restricted Translation-en
Hit http://dl.google.com stable Release.gpg
Hit http://apt.postgresql.org trusty-pgdg InRelease
Hit http://us-central1.gce.archive.ubuntu.com trusty-updates/universe Translation-en
Hit http://dl.google.com stable Release
Hit http://us-central1.gce.archive.ubuntu.com trusty-backports/main Sources
Hit http://us-central1.gce.archive.ubuntu.com trusty-backports/restricted Sources
Hit http://us-central1.gce.archive.ubuntu.com trusty-backports/universe Sources
Hit http://us-central1.gce.archive.ubuntu.com trusty-backports/multiverse Sources
Hit http://us-central1.gce.archive.ubuntu.com trusty-backports/main amd64 Packages
Hit http://us-central1.gce.archive.ubuntu.com trusty-backports/restricted amd64 Packages
Hit http://us-central1.gce.archive.ubuntu.com trusty-backports/universe amd64 Packages
Hit http://us-central1.gce.archive.ubuntu.com trusty-backports/multiverse amd64 Packages
Hit http://us-central1.gce.archive.ubuntu.com trusty-backports/main Translation-en
Hit http://us-central1.gce.archive.ubuntu.com trusty-backports/multiverse Translation-en
Hit http://us-central1.gce.archive.ubuntu.com trusty-backports/restricted Translation-en
Hit http://us-central1.gce.archive.ubuntu.com trusty-backports/universe Translation-en
Hit http://us-central1.gce.archive.ubuntu.com trusty/main Sources
Hit http://us-central1.gce.archive.ubuntu.com trusty/restricted Sources
Hit http://us-central1.gce.archive.ubuntu.com trusty/universe Sources
Hit http://us-central1.gce.archive.ubuntu.com trusty/multiverse Sources
Hit http://us-central1.gce.archive.ubuntu.com trusty/main amd64 Packages
Hit http://ppa.launchpad.net trusty InRelease
Hit http://dl.hhvm.com trusty/main amd64 Packages
Hit http://repo.mongodb.org trusty/mongodb-org/3.2/multiverse amd64 Packages
Hit http://us-central1.gce.archive.ubuntu.com trusty/restricted amd64 Packages
Hit http://us-central1.gce.archive.ubuntu.com trusty/universe amd64 Packages
Hit http://us-central1.gce.archive.ubuntu.com trusty/multiverse amd64 Packages
Hit http://us-central1.gce.archive.ubuntu.com trusty/main Translation-en
Hit http://us-central1.gce.archive.ubuntu.com trusty/multiverse Translation-en
Hit http://us-central1.gce.archive.ubuntu.com trusty/restricted Translation-en
Hit http://us-central1.gce.archive.ubuntu.com trusty/universe Translation-en
Ign http://toolbelt.heroku.com ./ InRelease
Get:2 http://security.ubuntu.com trusty-security/main Sources [157 kB]
Hit http://apt.postgresql.org trusty-pgdg/main amd64 Packages
Hit http://dl.google.com stable/main amd64 Packages
Ign http://us-central1.gce.archive.ubuntu.com trusty/main Translation-en_US
Ign http://us-central1.gce.archive.ubuntu.com trusty/multiverse Translation-en_US
Ign http://us-central1.gce.archive.ubuntu.com trusty/restricted Translation-en_US
Ign http://us-central1.gce.archive.ubuntu.com trusty/universe Translation-en_US
Hit http://toolbelt.heroku.com ./ Release.gpg
Hit http://ppa.launchpad.net trusty InRelease
Get:3 http://security.ubuntu.com trusty-security/restricted Sources [4,621 B]
Ign http://repo.mongodb.org trusty/mongodb-org/3.2/multiverse Translation-en_US
Ign http://repo.mongodb.org trusty/mongodb-org/3.2/multiverse Translation-en
Get:4 http://security.ubuntu.com trusty-security/universe Sources [55.9 kB]
Hit http://toolbelt.heroku.com ./ Release
Hit http://ppa.launchpad.net trusty InRelease
Get:5 http://security.ubuntu.com trusty-security/multiverse Sources [3,019 B]
Get:6 http://security.ubuntu.com trusty-security/main amd64 Packages [705 kB]
Ign http://dl.hhvm.com trusty/main Translation-en_US
Hit http://toolbelt.heroku.com ./ Packages
Ign http://dl.hhvm.com trusty/main Translation-en
Hit http://ppa.launchpad.net trusty InRelease
Ign http://apt.postgresql.org trusty-pgdg/main Translation-en_US
Hit https://apt.dockerproject.org ubuntu-trusty InRelease
Ign http://apt.postgresql.org trusty-pgdg/main Translation-en
Get:7 http://security.ubuntu.com trusty-security/restricted amd64 Packages [17.0 kB]
Hit http://ppa.launchpad.net trusty InRelease
Hit https://apt.dockerproject.org ubuntu-trusty/main amd64 Packages
Get:8 http://security.ubuntu.com trusty-security/universe amd64 Packages [193 kB]
Get:9 https://apt.dockerproject.org ubuntu-trusty/main Translation-en_US
Get:10 http://security.ubuntu.com trusty-security/multiverse amd64 Packages [4,016 B]
Hit http://security.ubuntu.com trusty-security/main Translation-en
Ign http://ppa.launchpad.net trusty InRelease
Hit http://security.ubuntu.com trusty-security/multiverse Translation-en
Ign https://apt.dockerproject.org ubuntu-trusty/main Translation-en_US
Hit http://security.ubuntu.com trusty-security/restricted Translation-en
Ign https://apt.dockerproject.org ubuntu-trusty/main Translation-en
Hit http://security.ubuntu.com trusty-security/universe Translation-en
Ign http://ppa.launchpad.net trusty InRelease
Ign http://toolbelt.heroku.com ./ Translation-en_US
Ign http://toolbelt.heroku.com ./ Translation-en
Hit http://ppa.launchpad.net trusty InRelease
Ign http://dl.google.com stable/main Translation-en_US
Ign http://dl.google.com stable/main Translation-en
Hit http://ppa.launchpad.net trusty InRelease
Hit http://ppa.launchpad.net trusty/main amd64 Packages
Hit https://packagecloud.io trusty InRelease
Hit http://ppa.launchpad.net trusty/main Translation-en
Hit https://packagecloud.io trusty InRelease
Hit http://ppa.launchpad.net trusty/main amd64 Packages
Hit https://packagecloud.io trusty/main Sources
Hit http://ppa.launchpad.net trusty/main Translation-en
Hit https://packagecloud.io trusty/main amd64 Packages
Hit http://ppa.launchpad.net trusty/main amd64 Packages
Get:11 https://packagecloud.io trusty/main Translation-en_US
Hit http://ppa.launchpad.net trusty/main Translation-en
Hit https://packagecloud.io trusty/main Sources
Hit http://ppa.launchpad.net trusty/main amd64 Packages
Hit http://ppa.launchpad.net trusty/main Translation-en
Hit https://packagecloud.io trusty/main amd64 Packages
Get:12 https://packagecloud.io trusty/main Translation-en_US
Hit http://ppa.launchpad.net trusty/main amd64 Packages
Hit http://ppa.launchpad.net trusty/main Translation-en
Ign https://packagecloud.io trusty/main Translation-en_US
Ign https://packagecloud.io trusty/main Translation-en
Hit http://ppa.launchpad.net trusty Release.gpg
Ign https://packagecloud.io trusty/main Translation-en_US
Ign https://packagecloud.io trusty/main Translation-en
Hit http://ppa.launchpad.net trusty Release.gpg
Hit http://ppa.launchpad.net trusty/main amd64 Packages
Hit http://ppa.launchpad.net trusty/main Translation-en
Hit http://ppa.launchpad.net trusty/main amd64 Packages
Hit http://ppa.launchpad.net trusty/main Translation-en
Hit http://ppa.launchpad.net trusty Release
Hit http://ppa.launchpad.net trusty Release
Hit http://ppa.launchpad.net trusty/main amd64 Packages
Hit http://ppa.launchpad.net trusty/main amd64 Packages
Ign http://ppa.launchpad.net trusty/main Translation-en_US
Ign http://ppa.launchpad.net trusty/main Translation-en
Ign http://ppa.launchpad.net trusty/main Translation-en_US
Ign http://ppa.launchpad.net trusty/main Translation-en
Fetched 1,206 kB in 5s (214 kB/s)
Reading package lists... Done
$ if [[ "$TRAVIS_PYTHON_VERSION" == "2.7" ]]; then wget https://repo.continuum.io/miniconda/Miniconda2-latest-Linux-x86_64.sh -O miniconda.sh; else wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -O miniconda.sh; fi
--2017-01-06 15:27:41-- https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh
Resolving repo.continuum.io (repo.continuum.io)... 104.16.18.10, 104.16.19.10, 2400:cb00:2048:1::6810:130a, ...
Connecting to repo.continuum.io (repo.continuum.io)|104.16.18.10|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 33905474 (32M) [application/octet-stream]
Saving to: ‘miniconda.sh’
100%[======================================>] 33,905,474 47.6MB/s in 0.7s
2017-01-06 15:27:42 (47.6 MB/s) - ‘miniconda.sh’ saved [33905474/33905474]
$ bash miniconda.sh -b -p $HOME/miniconda
PREFIX=/home/travis/miniconda
installing: python-3.5.2-0 ...
installing: conda-env-2.6.0-0 ...
installing: openssl-1.0.2j-0 ...
installing: pycosat-0.6.1-py35_1 ...
installing: readline-6.2-2 ...
installing: requests-2.11.1-py35_0 ...
installing: ruamel_yaml-0.11.14-py35_0 ...
installing: sqlite-3.13.0-0 ...
installing: tk-8.5.18-0 ...
installing: xz-5.2.2-0 ...
installing: yaml-0.1.6-0 ...
installing: zlib-1.2.8-3 ...
installing: conda-4.2.12-py35_0 ...
installing: pycrypto-2.6.1-py35_4 ...
installing: pip-8.1.2-py35_0 ...
installing: wheel-0.29.0-py35_0 ...
installing: setuptools-27.2.0-py35_0 ...
Python 3.5.2 :: Continuum Analytics, Inc.
creating default environment...
installation finished.
$ export PATH="$HOME/miniconda/bin:$PATH"
$ hash -r
$ conda config --set always_yes yes --set changeps1 no
$ conda update -q conda
Fetching package metadata .......
Solving package specifications: ..........
Package plan for installation in environment /home/travis/miniconda:
The following packages will be downloaded:
package | build
---------------------------|-----------------
conda-4.2.13 | py35_0 402 KB
The following packages will be UPDATED:
conda: 4.2.12-py35_0 --> 4.2.13-py35_0
$ conda info -a
Current conda install:
platform : linux-64
conda version : 4.2.13
conda is private : False
conda-env version : 4.2.13
conda-build version : not installed
python version : 3.5.2.final.0
requests version : 2.11.1
root environment : /home/travis/miniconda (writable)
default environment : /home/travis/miniconda
envs directories : /home/travis/miniconda/envs
package cache : /home/travis/miniconda/pkgs
channel URLs : https://repo.continuum.io/pkgs/free/linux-64
https://repo.continuum.io/pkgs/free/noarch
https://repo.continuum.io/pkgs/pro/linux-64
https://repo.continuum.io/pkgs/pro/noarch
config file : /home/travis/.condarc
offline mode : False
# conda environments:
#
root * /home/travis/miniconda
sys.version: 3.5.2 |Continuum Analytics, Inc.| (defau...
sys.prefix: /home/travis/miniconda
sys.executable: /home/travis/miniconda/bin/python
conda location: /home/travis/miniconda/lib/python3.5/site-packages/conda
conda-build: None
conda-env: /home/travis/miniconda/bin/conda-env
user site dirs:
CIO_TEST: <not set>
CONDA_DEFAULT_ENV: <not set>
CONDA_ENVS_PATH: <not set>
LD_LIBRARY_PATH: <not set>
PATH: /home/travis/miniconda/bin:/home/travis/virtualenv/python3.5.2/bin:/home/travis/bin:/home/travis/.local/bin:/home/travis/.rvm/gems/ruby-2.3.1/bin:/home/travis/.rvm/gems/ruby-2.3.1@global/bin:/home/travis/.rvm/rubies/ruby-2.3.1/bin:/home/travis/.pyenv/shims:/home/travis/.phpenv/shims:/home/travis/gopath/bin:/home/travis/.gimme/versions/go1.7.linux.amd64/bin:/home/travis/.local/bin:/opt/pyenv/bin:/opt/python/2.7.12/bin:/opt/python/3.5.2/bin:/opt/python/2.6.9/bin:/opt/python/3.2.6/bin:/opt/python/3.3.6/bin:/opt/python/3.4.4/bin:/opt/python/pypy-5.4.1/bin:/opt/python/pypy3-2.4.0/bin:/usr/local/phantomjs/bin:/usr/local/phantomjs:/home/travis/perl5/perlbrew/bin:/home/travis/.nvm/versions/node/v4.1.2/bin:/usr/local/maven-3.1.1/bin:/home/travis/.kiex/elixirs/elixir-1.0.4/bin:/home/travis/.kiex/bin:/usr/local/gradle/bin:/usr/local/clang-3.5.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/lib/jvm/java-9-oracle/bin:/usr/lib/jvm/java-9-oracle/db/bin:/home/travis/.phpenv/bin:/home/travis/.rvm/bin
PYTHONHOME: <not set>
PYTHONPATH: <not set>
WARNING: could not import _license.show_info
# try:
# $ conda install -n root _license
$ conda create -n qmxgraph python=$TRAVIS_PYTHON_VERSION
Fetching package metadata .......
Solving package specifications: ..........
Package plan for installation in environment /home/travis/miniconda/envs/qmxgraph:
The following packages will be downloaded:
package | build
---------------------------|-----------------
xz-5.2.2 | 1 669 KB
pip-9.0.1 | py35_1 1.7 MB
------------------------------------------------------------
Total: 2.4 MB
The following NEW packages will be INSTALLED:
openssl: 1.0.2j-0
pip: 9.0.1-py35_1
python: 3.5.2-0
readline: 6.2-2
setuptools: 27.2.0-py35_0
sqlite: 3.13.0-0
tk: 8.5.18-0
wheel: 0.29.0-py35_0
xz: 5.2.2-1
zlib: 1.2.8-3
Fetching packages ...
xz-5.2.2-1.tar 100% |################################| Time: 0:00:00 7.56 MB/s
pip-9.0.1-py35 100% |################################| Time: 0:00:00 10.66 MB/s
Extracting packages ...
[ COMPLETE ]|###################################################| 100%
Linking packages ...
[ COMPLETE ]|###################################################| 100%
#
# To activate this environment, use:
# > source activate qmxgraph
#
# To deactivate this environment, use:
# > source deactivate qmxgraph
#
$ conda env update -n qmxgraph
Fetching package metadata .......
Solving package specifications: ..........
Fetching packages ...
expat-2.1.0-0. 100% |################################| Time: 0:00:00 6.53 MB/s
icu-54.1-0.tar 100% |################################| Time: 0:00:00 23.67 MB/s
jpeg-8d-2.tar. 100% |################################| Time: 0:00:00 7.80 MB/s
libffi-3.2.1-1 100% |################################| Time: 0:00:00 2.73 MB/s
libgcc-5.2.0-0 100% |################################| Time: 0:00:00 9.10 MB/s
libiconv-1.14- 100% |################################| Time: 0:00:00 11.18 MB/s
libxcb-1.12-1. 100% |################################| Time: 0:00:00 9.33 MB/s
dbus-1.10.10-0 100% |################################| Time: 0:00:00 12.15 MB/s
libpng-1.6.27- 100% |################################| Time: 0:00:00 4.84 MB/s
libxml2-2.9.4- 100% |################################| Time: 0:00:00 13.43 MB/s
pcre-8.39-1.ta 100% |################################| Time: 0:00:00 7.32 MB/s
cherrypy-3.8.0 100% |################################| Time: 0:00:00 7.47 MB/s
colorama-0.3.7 100% |################################| Time: 0:00:00 1.83 MB/s
freetype-2.5.5 100% |################################| Time: 0:00:00 11.89 MB/s
glib-2.50.2-0. 100% |################################| Time: 0:00:00 19.14 MB/s
markupsafe-0.2 100% |################################| Time: 0:00:00 2.39 MB/s
py-1.4.31-py35 100% |################################| Time: 0:00:00 3.96 MB/s
sip-4.18-py35_ 100% |################################| Time: 0:00:00 4.92 MB/s
six-1.10.0-py3 100% |################################| Time: 0:00:00 1.58 MB/s
fontconfig-2.1 100% |################################| Time: 0:00:00 6.61 MB/s
gstreamer-1.8. 100% |################################| Time: 0:00:00 12.30 MB/s
jinja2-2.8.1-p 100% |################################| Time: 0:00:00 5.76 MB/s
pytest-3.0.5-p 100% |################################| Time: 0:00:00 5.26 MB/s
gst-plugins-ba 100% |################################| Time: 0:00:00 12.54 MB/s
pytest-timeout 100% |################################| Time: 0:00:00 13.58 MB/s
qt-5.6.2-2.tar 100% |################################| Time: 0:00:01 35.40 MB/s
pyqt-5.6.0-py3 100% |################################| Time: 0:00:00 12.12 MB/s
Extracting packages ...
[ COMPLETE ]|###################################################| 100%
Linking packages ...
[ COMPLETE ]|###################################################| 100%
dbus post-link :: /etc/machine-id not found ..
dbus post-link :: .. using /proc/sys/kernel/random/boot_id
Collecting invoke==0.12.2
Downloading invoke-0.12.2-py2.py3-none-any.whl (166kB)
100% |████████████████████████████████| 174kB 3.2MB/s
Collecting pytest-qt
Downloading pytest_qt-2.1.0-py2.py3-none-any.whl
Collecting pytest-selenium
Downloading pytest_selenium-1.7.0-py2.py3-none-any.whl
Collecting pytest-mock
Downloading pytest_mock-1.5.0-py2.py3-none-any.whl
Collecting pytest-xdist
Downloading pytest-xdist-1.15.0.tar.gz (87kB)
100% |████████████████████████████████| 92kB 5.7MB/s
Collecting pytest-xvfb
Downloading pytest-xvfb-1.0.0.tar.gz
Requirement already satisfied: pytest>=2.7.0 in /home/travis/miniconda/envs/qmxgraph/lib/python3.5/site-packages (from pytest-qt)
Collecting pytest-variables (from pytest-selenium)
Downloading pytest-variables-1.4.tar.gz
Collecting requests (from pytest-selenium)
Downloading requests-2.12.4-py2.py3-none-any.whl (576kB)
100% |████████████████████████████████| 583kB 1.8MB/s
Collecting pytest-base-url (from pytest-selenium)
Downloading pytest_base_url-1.2.0-py2.py3-none-any.whl
Collecting pytest-html>=1.7 (from pytest-selenium)
Downloading pytest_html-1.13.0-py2.py3-none-any.whl
Collecting selenium>=3.0.0 (from pytest-selenium)
Downloading selenium-3.0.2-py2.py3-none-any.whl (915kB)
100% |████████████████████████████████| 921kB 1.2MB/s
Collecting execnet>=1.1 (from pytest-xdist)
Downloading execnet-1.4.1-py2.py3-none-any.whl (40kB)
100% |████████████████████████████████| 40kB 7.0MB/s
Requirement already satisfied: py>=1.4.22 in /home/travis/miniconda/envs/qmxgraph/lib/python3.5/site-packages (from pytest-xdist)
Collecting pyvirtualdisplay>=0.2.1 (from pytest-xvfb)
Downloading PyVirtualDisplay-0.2.1.tar.gz
Collecting apipkg>=1.4 (from execnet>=1.1->pytest-xdist)
Downloading apipkg-1.4-py2.py3-none-any.whl
Collecting EasyProcess (from pyvirtualdisplay>=0.2.1->pytest-xvfb)
Downloading EasyProcess-0.2.3.tar.gz
Building wheels for collected packages: pytest-xdist, pytest-xvfb, pytest-variables, pyvirtualdisplay, EasyProcess
Running setup.py bdist_wheel for pytest-xdist ... -� �done
Stored in directory: /home/travis/.cache/pip/wheels/1d/b2/b8/484ce35e005d6b5112b2bb7945eea5bd5d0134662b6cd83c5c
Running setup.py bdist_wheel for pytest-xvfb ... -� �\� �done
Stored in directory: /home/travis/.cache/pip/wheels/f2/a5/f4/4803fe9d98f33a2a6cb16e3d69e8cdeb88cca8cd5312bcab3a
Running setup.py bdist_wheel for pytest-variables ... -� �\� �done
Stored in directory: /home/travis/.cache/pip/wheels/0a/4f/f8/d0133143578a6d6965c12d6c2e1a6008950bf3036252479c61
Running setup.py bdist_wheel for pyvirtualdisplay ... -� �\� �|� �/� �-� �done
Stored in directory: /home/travis/.cache/pip/wheels/a3/5c/40/13a5fe9ff00091648706fdbd882ae60be97183d94b3e8e80c1
Running setup.py bdist_wheel for EasyProcess ... -� �\� �|� �/� �-� �done
Stored in directory: /home/travis/.cache/pip/wheels/81/f2/d3/78eeb2274410b1469562677f4704f86de4d44b90d436b99f1a
Successfully built pytest-xdist pytest-xvfb pytest-variables pyvirtualdisplay EasyProcess
Installing collected packages: invoke, pytest-qt, pytest-variables, requests, pytest-base-url, pytest-html, selenium, pytest-selenium, pytest-mock, apipkg, execnet, pytest-xdist, EasyProcess, pyvirtualdisplay, pytest-xvfb
Successfully installed EasyProcess-0.2.3 apipkg-1.4 execnet-1.4.1 invoke-0.12.2 pytest-base-url-1.2.0 pytest-html-1.13.0 pytest-mock-1.5.0 pytest-qt-2.1.0 pytest-selenium-1.7.0 pytest-variables-1.4 pytest-xdist-1.15.0 pytest-xvfb-1.0.0 pyvirtualdisplay-0.2.1 requests-2.12.4 selenium-3.0.2
#
# To activate this environment, use:
# > source activate qmxgraph
#
# To deactivate this environment, use:
# > source deactivate qmxgraph
#
$ source activate qmxgraph
$ conda list
# packages in environment at /home/travis/miniconda/envs/qmxgraph:
#
apipkg 1.4 <pip>
cherrypy 3.8.0 py35_0
colorama 0.3.7 py35_0
dbus 1.10.10 0
EasyProcess 0.2.3 <pip>
execnet 1.4.1 <pip>
expat 2.1.0 0
fontconfig 2.12.1 0
freetype 2.5.5 1
glib 2.50.2 0
gst-plugins-base 1.8.0 0
gstreamer 1.8.0 0
icu 54.1 0
invoke 0.12.2 <pip>
jinja2 2.8.1 py35_0
jpeg 8d 2
libffi 3.2.1 1
libgcc 5.2.0 0
libiconv 1.14 0
libpng 1.6.27 0
libxcb 1.12 1
libxml2 2.9.4 0
markupsafe 0.23 py35_2
openssl 1.0.2j 0
pcre 8.39 1
pip 9.0.1 py35_1
py 1.4.31 py35_0
pyqt 5.6.0 py35_1
pytest 3.0.5 py35_0
pytest-base-url 1.2.0 <pip>
pytest-html 1.13.0 <pip>
pytest-mock 1.5.0 <pip>
pytest-qt 2.1.0 <pip>
pytest-selenium 1.7.0 <pip>
pytest-timeout 1.0.0 py35_0
pytest-variables 1.4 <pip>
pytest-xdist 1.15.0 <pip>
pytest-xvfb 1.0.0 <pip>
python 3.5.2 0
PyVirtualDisplay 0.2.1 <pip>
qt 5.6.2 2
readline 6.2 2
requests 2.12.4 <pip>
selenium 3.0.2 <pip>
setuptools 27.2.0 py35_0
sip 4.18 py35_0
six 1.10.0 py35_0
sqlite 3.13.0 0
tk 8.5.18 0
wheel 0.29.0 py35_0
xz 5.2.2 1
zlib 1.2.8 3
$ scripts/run_travis_tests.sh
Cloning into 'mxgraph'...
remote: Counting objects: 2285, done.
remote: Compressing objects: 100% (1791/1791), done.
remote: Total 2285 (delta 1079), reused 1077 (delta 464), pack-reused 0
Receiving objects: 100% (2285/2285), 8.98 MiB | 6.03 MiB/s, done.
Resolving deltas: 100% (1079/1079), done.
qrc
- resource: mxgraph
* generated /home/travis/build/ESSS/qmxgraph/qmxgraph/resource_mxgraph.qrc
* generated /home/travis/build/ESSS/qmxgraph/qmxgraph/resource_mxgraph.py
- resource: qmxgraph
* generated /home/travis/build/ESSS/qmxgraph/qmxgraph/resource_qmxgraph.qrc
* generated /home/travis/build/ESSS/qmxgraph/qmxgraph/resource_qmxgraph.py
test
============================= test session starts ==============================
platform linux -- Python 3.5.2, pytest-3.0.5, py-1.4.31, pluggy-0.4.0
sensitiveurl: .*
driver: PhantomJS
PyQt5 5.6 -- Qt runtime 5.6.2 -- Qt compiled 5.6.2
rootdir: /home/travis/build/ESSS/qmxgraph, inifile: pytest.ini
plugins: mock-1.5.0, timeout-1.0.0, selenium-1.7.0, qt-2.1.0, variables-1.4, html-1.13.0, xvfb-1.0.0, base-url-1.2.0, xdist-1.15.0
gw0 [87] / gw1 [87]
scheduling tests via LoadScheduling
..............................................................F........................
=================================== FAILURES ===================================
_________ test_set_get_tag_doesnt_overwrite_protected_tags[decoration] _________
[gw1] linux -- Python 3.5.2 /home/travis/miniconda/envs/qmxgraph/bin/python
host = <qmxgraph.server.Host object at 0x7f4eb0c7d940>
selenium = <selenium.webdriver.phantomjs.webdriver.WebDriver (session="4f541dd0-d425-11e6-a113-7d7570775281")>
def _wait_graph_page_ready(host, selenium):
"""
Wait until graph page is ready to use, raise if timeout expires.
:type host: qmxgraph.host_graph.Host
:type selenium: selenium.webdriver.remote.webdriver.WebDriver
"""
from selenium.common.exceptions import TimeoutException
attempts = 3
selenium.set_page_load_timeout(1)
try:
selenium.get(host.address)
except TimeoutException:
attempts -= 1
if attempts == 0:
raise
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
timeout = 5
try:
WebDriverWait(selenium, timeout=timeout).until(
> EC.presence_of_element_located((By.ID, "graphContainer"))
)
tests/conftest.py:882:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <selenium.webdriver.support.wait.WebDriverWait (session="4f541dd0-d425-11e6-a113-7d7570775281")>
method = <selenium.webdriver.support.expected_conditions.presence_of_element_located object at 0x7f4eb0d4fa20>
message = ''
def until(self, method, message=''):
"""Calls the method provided with the driver as an argument until the \
return value is not False."""
screen = None
stacktrace = None
end_time = time.time() + self._timeout
while True:
try:
value = method(self._driver)
if value:
return value
except self._ignored_exceptions as exc:
screen = getattr(exc, 'screen', None)
stacktrace = getattr(exc, 'stacktrace', None)
time.sleep(self._poll)
if time.time() > end_time:
break
> raise TimeoutException(message, screen, stacktrace)
E selenium.common.exceptions.TimeoutException: Message:
E Screenshot: available via screen
../../../miniconda/envs/qmxgraph/lib/python3.5/site-packages/selenium/webdriver/support/wait.py:80: TimeoutException
During handling of the above exception, another exception occurred:
graph_cases = <tests.conftest.GraphCaseFactory object at 0x7f4eb0c7da20>
cell_type = 'decoration'
@pytest.mark.parametrize(
'cell_type',
[
qmxgraph.constants.CELL_TYPE_VERTEX,
qmxgraph.constants.CELL_TYPE_EDGE,
qmxgraph.constants.CELL_TYPE_TABLE,
qmxgraph.constants.CELL_TYPE_DECORATION,
]
)
def test_set_get_tag_doesnt_overwrite_protected_tags(graph_cases, cell_type):
"""
:type graph_cases: qmxgraph.tests.conftest.GraphCaseFactory
:type cell_type: qmxgraph.constants.CELL_TYPE_*
"""
> graph = graph_cases('empty')
tests/test_js_graph.py:846:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/conftest.py:273: in __call__
return case_type(selenium=self._selenium, host=self._host)
tests/conftest.py:283: in __init__
_wait_graph_page_ready(host=host, selenium=selenium)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
host = <qmxgraph.server.Host object at 0x7f4eb0c7d940>
selenium = <selenium.webdriver.phantomjs.webdriver.WebDriver (session="4f541dd0-d425-11e6-a113-7d7570775281")>
def _wait_graph_page_ready(host, selenium):
"""
Wait until graph page is ready to use, raise if timeout expires.
:type host: qmxgraph.host_graph.Host
:type selenium: selenium.webdriver.remote.webdriver.WebDriver
"""
from selenium.common.exceptions import TimeoutException
attempts = 3
selenium.set_page_load_timeout(1)
try:
selenium.get(host.address)
except TimeoutException:
attempts -= 1
if attempts == 0:
raise
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
timeout = 5
try:
WebDriverWait(selenium, timeout=timeout).until(
EC.presence_of_element_located((By.ID, "graphContainer"))
)
except TimeoutException:
raise RuntimeError(
"Graph page wasn't ready in address {} after a "
"timeout of {} seconds".format(
> host.address, timeout))
E RuntimeError: Graph page wasn't ready in address http://localhost:36683 after a timeout of 5 seconds
tests/conftest.py:888: RuntimeError
------------------------------- pytest-selenium --------------------------------
URL: http://localhost:36683/
==================== 1 failed, 86 passed in 274.53 seconds =====================
The command "scripts/run_travis_tests.sh" exited with 1.
$ scripts/run_travis_lint.sh
Fetching package metadata .......
Solving package specifications: ..........
Package plan for installation in environment /home/travis/miniconda/envs/qmxgraph:
The following packages will be downloaded:
package | build
---------------------------|-----------------
mccabe-0.3.1 | py35_0 9 KB
pep8-1.7.0 | py35_0 27 KB
pyflakes-1.4.0 | py35_0 82 KB
flake8-2.5.1 | py35_0 39 KB
------------------------------------------------------------
Total: 157 KB
The following NEW packages will be INSTALLED:
flake8: 2.5.1-py35_0
mccabe: 0.3.1-py35_0
pep8: 1.7.0-py35_0
pyflakes: 1.4.0-py35_0
The command "scripts/run_travis_lint.sh" exited with 0.
Done. Your build exited with 1.
0
From time to time PRs need to adjust the values passed to fix_table_size
(or or the function it self).
We should adress that so it does not need constant changes.
I had some crashes when I first tried them. We have to see if they are still happening and, if so, why we can do to fix them.
https://github.com/ESSS/qmxgraph/actions/runs/3656977152/jobs/6180039932
============================= test session starts ==============================
platform linux -- Python 3.6.15, pytest-6.2.5, py-1.11.0, pluggy-1.0.0 -- /usr/share/miniconda/envs/qmxgraph/bin/python
cachedir: .pytest_cache
metadata: {'Python': '3.6.15', 'Platform': 'Linux-5.15.0-1024-azure-x86_64-with-debian-bookworm-sid', 'Packages': {'pytest': '6.2.5', 'py': '1.11.0', 'pluggy': '1.0.0'}, 'Plugins': {'hypothesis': '3.11.0', 'metadata': '1.11.0', 'qt': '4.0.2', 'timeout': '2.1.0', 'mock': '3.6.1', 'cov': '2.5.1', 'base-url': '1.4.1', 'xvfb': '2.0.0', 'html': '3.2.0', 'selenium': '1.17.0', 'rerunfailures': '10.3', 'variables': '1.7.1'}, 'CI': 'true', 'JAVA_HOME': '/usr/lib/jvm/temurin-11-jdk-amd64', 'Base URL': '', 'Driver': 'PhantomJS', 'Capabilities': {}}
PyQt5 5.12.3 -- Qt runtime 5.12.9 -- Qt compiled 5.12.9
driver: PhantomJS
sensitiveurl: .*
rootdir: /home/runner/work/qmxgraph/qmxgraph, configfile: pytest.ini
plugins: hypothesis-3.11.0, metadata-1.11.0, qt-4.0.2, timeout-2.1.0, mock-3.6.1, cov-2.5.1, base-url-1.4.1, xvfb-2.0.0, html-3.2.0, selenium-1.17.0, rerunfailures-10.3, variables-1.7.1
timeout: 30.0s
timeout method: signal
timeout func_only: False
collecting ... collected 31 items / 1 error / 30 selected
==================================== ERRORS ====================================
___________________ ERROR collecting tests/test_js_graph.py ____________________
tests/test_js_graph.py:14: in <module>
from qmxgraph import server
src/qmxgraph/server.py:9: in <module>
import cherrypy
/usr/share/miniconda/envs/qmxgraph/lib/python3.6/site-packages/cherrypy/__init__.py:66: in <module>
from ._cperror import (
/usr/share/miniconda/envs/qmxgraph/lib/python3.6/site-packages/cherrypy/_cperror.py:135: in <module>
from cherrypy.lib import httputil as _httputil
/usr/share/miniconda/envs/qmxgraph/lib/python3.6/site-packages/cherrypy/lib/httputil.py:20: in <module>
import jaraco.collections
/usr/share/miniconda/envs/qmxgraph/lib/python3.6/site-packages/jaraco/collections.py:10: in <module>
import jaraco.text
/usr/share/miniconda/envs/qmxgraph/lib/python3.6/site-packages/jaraco/text/__init__.py:228: in <module>
lorem_ipsum = resources.read_text(__name__, 'Lorem ipsum.txt') # type: ignore
/usr/share/miniconda/envs/qmxgraph/lib/python3.6/site-packages/importlib_resources/_legacy.py:25: in wrapper
return func(*args, **kwargs)
/usr/share/miniconda/envs/qmxgraph/lib/python3.6/site-packages/importlib_resources/_legacy.py:79: in read_text
with open_text(package, resource, encoding, errors) as fp:
/usr/share/miniconda/envs/qmxgraph/lib/python3.6/site-packages/importlib_resources/_legacy.py:25: in wrapper
return func(*args, **kwargs)
/usr/share/miniconda/envs/qmxgraph/lib/python3.6/site-packages/importlib_resources/_legacy.py:62: in open_text
return (_common.files(package) / normalize_path(resource)).open(
/usr/share/miniconda/envs/qmxgraph/lib/python3.6/site-packages/importlib_resources/_common.py:46: in wrapper
return func(anchor)
/usr/share/miniconda/envs/qmxgraph/lib/python3.6/site-packages/importlib_resources/_common.py:56: in files
return from_package(resolve(anchor))
/usr/share/miniconda/envs/qmxgraph/lib/python3.6/site-packages/importlib_resources/_common.py:112: in from_package
spec = wrap_spec(package)
/usr/share/miniconda/envs/qmxgraph/lib/python3.6/site-packages/importlib_resources/_compat.py:101: in wrap_spec
return _adapters.SpecLoaderAdapter(package.__spec__, TraversableResourcesLoader)
E AttributeError: 'str' object has no attribute '__spec__'
=============================== warnings summary ===============================
../../../../../usr/share/miniconda/envs/qmxgraph/lib/python3.6/site-packages/jaraco/text/__init__.py:228
/usr/share/miniconda/envs/qmxgraph/lib/python3.6/site-packages/jaraco/text/__init__.py:228: DeprecationWarning: read_text is deprecated. Use files() instead. Refer to https://importlib-resources.readthedocs.io/en/latest/using.html#migrating-from-legacy for migration advice.
lorem_ipsum = resources.read_text(__name__, 'Lorem ipsum.txt') # type: ignore
../../../../../usr/share/miniconda/envs/qmxgraph/lib/python3.6/site-packages/importlib_resources/_legacy.py:79
/usr/share/miniconda/envs/qmxgraph/lib/python3.6/site-packages/importlib_resources/_legacy.py:79: DeprecationWarning: open_text is deprecated. Use files() instead. Refer to https://importlib-resources.readthedocs.io/en/latest/using.html#migrating-from-legacy for migration advice.
with open_text(package, resource, encoding, errors) as fp:
-- Docs: https://docs.pytest.org/en/stable/warnings.html
---------- coverage: platform linux, python 3.6.15-final-0 -----------
Name Stmts Miss Cover
-----------------------------------------------------------
src/qmxgraph/__init__.py 1 0 100%
src/qmxgraph/_web_view.py 89 48 46%
src/qmxgraph/api.py 226 118 48%
src/qmxgraph/cell_bounds.py 21 5 76%
src/qmxgraph/configuration.py 44 16 64%
src/qmxgraph/constants.py 7 0 100%
src/qmxgraph/debug.py 5 2 60%
src/qmxgraph/exceptions.py 3 0 100%
src/qmxgraph/extra_attr_validators.py 12 8 33%
src/qmxgraph/js.py 13 5 62%
src/qmxgraph/mime.py 12 9 25%
src/qmxgraph/resource_mxgraph.py 16 3 81%
src/qmxgraph/resource_qmxgraph.py 16 3 81%
src/qmxgraph/server.py 82 79 4%
src/qmxgraph/waiting.py 50 29 [42](https://github.com/ESSS/qmxgraph/actions/runs/3656977152/jobs/6180039932#step:6:43)%
src/qmxgraph/widget.py 316 192 39%
-----------------------------------------------------------
TOTAL 913 517 [43](https://github.com/ESSS/qmxgraph/actions/runs/3656977152/jobs/6180039932#step:6:44)%
=========================== short test summary info ============================
ERROR tests/test_js_graph.py - AttributeError: 'str' object has no attribute ...
!!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!!
========================= 2 warnings, 1 error in 1.[97](https://github.com/ESSS/qmxgraph/actions/runs/3656977152/jobs/6180039932#step:6:98)s =========================
Currently we obtain the first defined name, but the style being passed may have multiple names defined, so we would like to get the last one in that case.
qmxgraph/page/utils.js
We ended up merging #61 without a test because we need to make a release and would like for this to be included on it.
We should revisit this when possible, possibly by @prusse-martin
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.