File: README.rst

package info (click to toggle)
python-svglib 1.5.1%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 332 kB
  • sloc: python: 2,736; sh: 6; makefile: 3
file content (112 lines) | stat: -rw-r--r-- 4,658 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
.. -*- mode: rst -*-

Testing
=======

This folder contains the testsuite for ``svglib``. In order to run
it before installing the package leave the prefix ``PYTHONPATH=.``
in the commands below. Else the testsuite will test an already
installed ``svglib`` package.

For the simplest test open a terminal, change into this folder and
execute the following command (assuming you have ``pytest`` installed
which is a simple ``pip install pytest``)::

    $ PYTHONPATH=. py.test
    ======================== test session starts =========================
    platform darwin -- Python 3…, pytest-3…, py-1…, pluggy-0…
    rootdir: /Users/dinu/repos/github/deeplook/svglib, inifile:
    plugins: cov-2…
    collected 36 items

    tests/test_basic.py ............................
    tests/test_samples.py .s.s.s.s

    =============== 32 passed, 4 skipped in 49.18 seconds ================

If for any reason you don't want to install ``pytest`` you can also
run the following (which installs ``pytest-runner`` during testing)::

    $ PYTHONPATH=. python setup.py test
    running pytest
    running egg_info
    writing dependency_links to svglib.egg-info/dependency_links.txt
    writing svglib.egg-info/PKG-INFO
    writing requirements to svglib.egg-info/requires.txt
    writing top-level names to svglib.egg-info/top_level.txt
    reading manifest file 'svglib.egg-info/SOURCES.txt'
    reading manifest template 'MANIFEST.in'
    writing manifest file 'svglib.egg-info/SOURCES.txt'
    running build_ext
    ======================== test session starts =========================
    platform darwin -- Python 3…, pytest-3…, py-1…, pluggy-0…
    rootdir: /Users/dinu/repos/github/deeplook/svglib, inifile:
    plugins: cov-2…
    collected 33 items

    tests/test_basic.py .........................
    tests/test_samples.py .s.s.s.s

    =============== 29 passed, 4 skipped in 38.95 seconds ================

If you have ``tox`` installed (``pip install tox``) you can simply
run the testsuite on Python 3.8 (assuming you have it installed) or on a
single version (this will not run with ``conda``, yet, though)::

    $ tox
    $ tox -e py38

All will run the entire testsuite and produce result files in PDF
format in the subdirectories ``tests/samples`` (here also in PNG),
``tests/wikipedia/flags`` and ``tests/wikipedia/symbols``, if the
corresponding SVG input files could be downloaded from the internet
at the start of the test or if they are still available from previous
runs.

To clean-up all files generated by ``svglib`` run this (but keep the
SVG samples downloaded from the web) run this (output not shown)::

    $ PYTHONPATH=. py.test -v -s --override-ini=python_functions=cleanup

If you have a ``pytest`` plugin named ``pytest-coverage`` installed
(``pip install pytest-coverage``) you can run this to get a simple
coverage report (after an additional upfront reset which results in
more code being executed and a higher test coverage)::

    $ rm tests/samples/W3C_SVG_12_TinyTestSuite.tar.gz
    $ rm -rf tests/samples/W3C_SVG_12_TinyTestSuite
    $ rm -rf tests/samples/wikipedia/flags
    $ rm -rf tests/samples/wikipedia/symbols
    $ PYTHONPATH=. py.test --cov=./svglib --cov=tests tests
    ======================== test session starts =========================
    platform darwin -- Python 3…, pytest-3…, py-1…, pluggy-0…
    rootdir: /Users/dinu/repos/github/deeplook/svglib, inifile:
    plugins: cov-2…
    collected 36 items

    tests/test_basic.py .........................
    tests/test_samples.py .s.s.s.s

    ---------- coverage: platform darwin, python 3… -----------
    Name                    Stmts   Miss  Cover
    -------------------------------------------
    svglib/__init__.py          0      0   100%
    svglib/svglib.py          729     28    96%
    svglib/utils.py           122     12    90%
    tests/test_basic.py       203      4    98%
    tests/test_samples.py     249     66    73%
    -------------------------------------------
    TOTAL                    1303    110    92%

    =============== 32 passed, 4 skipped in 637.65 seconds ===============

As an experimental feature some of the tests try using a vector
conversion tool named `UniConvertor
<http://sourceforge.net/projects/uniconvertor>`_
(if installed) for producing PDFs for comparison with `svglib`.
(This was not used for years, though, during development/testing.)

Calling ``renderPM.drawToFile()`` in ``TestW3CSVG.test_convert_pdf_png()``
is known to raise a ``TypeError`` sometimes in reportlab which was
fixed in ``reportlab`` 3.3.26. See
https://github.com/deeplook/svglib/issues/47.