From cc6052a9e7efd72104efd9390be0b3f270048d64 Mon Sep 17 00:00:00 2001 From: Florian Rhiem Date: Tue, 22 Feb 2022 13:14:25 +0100 Subject: [PATCH 1/2] Include Python 3.10 and exclude Python 3.6 from tox tests --- tests/gr/__init__.py | 116 ----------------- tests/gr/{compare_test.py => test_compare.py} | 49 ++++---- tests/gr/test_core.py | 117 ++++++++++++++++++ tox.ini | 6 +- 4 files changed, 148 insertions(+), 140 deletions(-) delete mode 100644 tests/gr/__init__.py rename tests/gr/{compare_test.py => test_compare.py} (53%) create mode 100644 tests/gr/test_core.py diff --git a/tests/gr/__init__.py b/tests/gr/__init__.py deleted file mode 100644 index 193f4d3..0000000 --- a/tests/gr/__init__.py +++ /dev/null @@ -1,116 +0,0 @@ -# -*- coding: utf-8 -*- - -# standard library - -# third party -import nose -from nose.tools import assert_equal -# local library -import gr -from gr.pygr import Coords2DList, Coords2D, Coords3DList, Coords3D - -def test_char(): - gr.char("t") - gr.char(u"t") - - -def test_coords2DList_minmax(): - a = Coords2D([10, 20, 30], [10, 20, 30]) - coords = Coords2DList([a]) - assert_equal(coords.xmin, 10) - assert_equal(coords.xmax, 30) - assert_equal(coords.ymin, 10) - assert_equal(coords.ymax, 30) - - coords.append(Coords2D([5, 10], [20, 40])) - assert_equal(coords.xmin, 5) - assert_equal(coords.xmax, 30) - assert_equal(coords.ymin, 10) - assert_equal(coords.ymax, 40) - - b = Coords2D([1, 2, 3], [1, 2, 3]) - coords += [b] - assert_equal(coords.xmin, 1) - assert_equal(coords.xmax, 30) - assert_equal(coords.ymin, 1) - assert_equal(coords.ymax, 40) - - tmp = coords.pop(coords.index(b)) - assert_equal(tmp, b) - assert_equal(coords.xmin, 5) - assert_equal(coords.xmax, 30) - assert_equal(coords.ymin, 10) - assert_equal(coords.ymax, 40) - - coords.extend([b]) - assert_equal(coords.xmin, 1) - assert_equal(coords.xmax, 30) - assert_equal(coords.ymin, 1) - assert_equal(coords.ymax, 40) - - coords.remove(b) - assert_equal(coords.xmin, 5) - assert_equal(coords.xmax, 30) - assert_equal(coords.ymin, 10) - assert_equal(coords.ymax, 40) - - coords.append(Coords2D([10, 10], [0, 0])) - assert_equal(coords.xmin, 5) - assert_equal(coords.xmax, 30) - assert_equal(coords.ymin, 0) - assert_equal(coords.ymax, 40) - - coords.append(Coords2D([10, 10], [200, 400])) - assert_equal(coords.xmin, 5) - assert_equal(coords.xmax, 30) - assert_equal(coords.ymin, 0) - assert_equal(coords.ymax, 400) - - -def test_coords2DList_empty(): - a = Coords2D([10, 20, 30], [10, 20, 30]) - coords = Coords2DList([a]) - coords.remove(a) - assert_equal(coords.xmin, None) - assert_equal(coords.xmax, None) - assert_equal(coords.ymin, None) - assert_equal(coords.ymax, None) - - -def test_coords2DList_update(): - a = Coords2D([10, 20, 30], [10, 20, 30]) - b = Coords2D([5], [40]) - coords = Coords2DList([a, b]) - assert_equal(coords.xmin, 5) - assert_equal(coords.xmax, 30) - assert_equal(coords.ymin, 10) - assert_equal(coords.ymax, 40) - - b.x = [15] - b.y = [25] - coords.updateMinMax(b) - assert_equal(coords.xmin, 5) - assert_equal(coords.xmax, 30) - assert_equal(coords.ymin, 10) - assert_equal(coords.ymax, 40) - - coords.updateMinMax(*coords, reset=True) - assert_equal(coords.xmin, 10) - assert_equal(coords.xmax, 30) - assert_equal(coords.ymin, 10) - assert_equal(coords.ymax, 30) - - coords.updateMinMax(b, reset=True) - assert_equal(coords.xmin, 15) - assert_equal(coords.xmax, 15) - assert_equal(coords.ymin, 25) - assert_equal(coords.ymax, 25) - -def test_coords3DList_minmax(): - coords = Coords3DList([Coords3D([1, 2], [1, 2], [-42, 42])]) - assert_equal(coords.xmin, 1) - assert_equal(coords.xmax, 2) - assert_equal(coords.ymin, 1) - assert_equal(coords.ymax, 2) - assert_equal(coords.zmin, -42) - assert_equal(coords.zmax, 42) diff --git a/tests/gr/compare_test.py b/tests/gr/test_compare.py similarity index 53% rename from tests/gr/compare_test.py rename to tests/gr/test_compare.py index b4321af..cead413 100644 --- a/tests/gr/compare_test.py +++ b/tests/gr/test_compare.py @@ -4,54 +4,61 @@ import shutil import platform -from nose import with_setup +import pytest from gr_test import CompareResult from gr_test import python_image as image_data from gr_test import python_video as video_data from gr_test.entry_points import safe_mkdir -base_path = os.path.abspath(os.path.dirname(os.path.realpath(__name__)) + '/../../test_result/') -if 'GR_TEST_BASE_PATH' in os.environ: - base_path = os.path.abspath(os.environ['GR_TEST_BASE_PATH']) -results_path = os.path.abspath(base_path + '/' + platform.python_version()) +@pytest.fixture(scope='session') +def base_dir(): + base_path = os.path.abspath(os.path.dirname(os.path.realpath(__name__)) + '/../../test_result/') + + if 'GR_TEST_BASE_PATH' in os.environ: + base_path = os.path.abspath(os.environ['GR_TEST_BASE_PATH']) -def setup_func(): try: os.mkdir(base_path) except OSError: pass + return base_path + + +@pytest.fixture(scope='session') +def results_dir(base_dir): + results_path = os.path.abspath(base_dir + '/' + platform.python_version()) try: os.mkdir(results_path) except OSError: pass + return results_path -@with_setup(setup_func) -def test_images(): + +def test_images(results_dir): image_data.create_files('TEST') consistency, pairs = image_data.get_test_data() for x in consistency: - yield succeed_if_none, x - for dir, ext, ref_name, test_name, base_name in pairs: - yield compare, dir, ext, ref_name, test_name, base_name + assert x is None + for dir, _, ref_name, test_name, base_name in pairs: + compare(dir, ref_name, test_name, base_name, results_dir) + -@with_setup(setup_func) -def test_video(): +def test_video(results_dir): video_data.create_files('TEST') consistency, pairs = video_data.get_test_data() for x in consistency: - yield succeed_if_none, x - for dir, ext, ref_name, test_name, base_name in pairs: - yield compare, dir, ext, ref_name, test_name, base_name + assert x is None + for dir, _, ref_name, test_name, base_name in pairs: + compare(dir, ref_name, test_name, base_name, results_dir) -def succeed_if_none(x): - assert x is None -def compare(dir, ext, ref_name, test_name, base_name): - this_path = os.path.join(results_path, dir) - file_name = os.path.basename(test_name) # f.e. REFERENCE.pdf.png or frame-1.mov.png +def compare(dir, ref_name, test_name, base_name, results_dir): + this_path = os.path.join(results_dir, dir) + # e.g. REFERENCE.pdf.png or frame-1.mov.png + file_name = os.path.basename(test_name) result = CompareResult(ref_name, test_name) diff --git a/tests/gr/test_core.py b/tests/gr/test_core.py new file mode 100644 index 0000000..2c73502 --- /dev/null +++ b/tests/gr/test_core.py @@ -0,0 +1,117 @@ +# -*- coding: utf-8 -*- + +# standard library + +# third party + +# local library +import gr +from gr.pygr import Coords2DList, Coords2D, Coords3DList, Coords3D + + +def test_char(): + gr.char("t") + gr.char(u"t") + + +def test_coords2DList_minmax(): + a = Coords2D([10, 20, 30], [10, 20, 30]) + coords = Coords2DList([a]) + assert coords.xmin == 10 + assert coords.xmax == 30 + assert coords.ymin == 10 + assert coords.ymax == 30 + + coords.append(Coords2D([5, 10], [20, 40])) + assert coords.xmin == 5 + assert coords.xmax == 30 + assert coords.ymin == 10 + assert coords.ymax == 40 + + b = Coords2D([1, 2, 3], [1, 2, 3]) + coords += [b] + assert coords.xmin == 1 + assert coords.xmax == 30 + assert coords.ymin == 1 + assert coords.ymax == 40 + + tmp = coords.pop(coords.index(b)) + assert tmp == b + assert coords.xmin == 5 + assert coords.xmax == 30 + assert coords.ymin == 10 + assert coords.ymax == 40 + + coords.extend([b]) + assert coords.xmin == 1 + assert coords.xmax == 30 + assert coords.ymin == 1 + assert coords.ymax == 40 + + coords.remove(b) + assert coords.xmin == 5 + assert coords.xmax == 30 + assert coords.ymin == 10 + assert coords.ymax == 40 + + coords.append(Coords2D([10, 10], [0, 0])) + assert coords.xmin == 5 + assert coords.xmax == 30 + assert coords.ymin == 0 + assert coords.ymax == 40 + + coords.append(Coords2D([10, 10], [200, 400])) + assert coords.xmin == 5 + assert coords.xmax == 30 + assert coords.ymin == 0 + assert coords.ymax == 400 + + +def test_coords2DList_empty(): + a = Coords2D([10, 20, 30], [10, 20, 30]) + coords = Coords2DList([a]) + coords.remove(a) + assert coords.xmin is None + assert coords.xmax is None + assert coords.ymin is None + assert coords.ymax is None + + +def test_coords2DList_update(): + a = Coords2D([10, 20, 30], [10, 20, 30]) + b = Coords2D([5], [40]) + coords = Coords2DList([a, b]) + assert coords.xmin == 5 + assert coords.xmax == 30 + assert coords.ymin == 10 + assert coords.ymax == 40 + + b.x = [15] + b.y = [25] + coords.updateMinMax(b) + assert coords.xmin == 5 + assert coords.xmax == 30 + assert coords.ymin == 10 + assert coords.ymax == 40 + + coords.updateMinMax(*coords, reset=True) + assert coords.xmin == 10 + assert coords.xmax == 30 + assert coords.ymin == 10 + assert coords.ymax == 30 + + coords.updateMinMax(b, reset=True) + assert coords.xmin == 15 + assert coords.xmax == 15 + assert coords.ymin == 25 + assert coords.ymax == 25 + + +def test_coords3DList_minmax(): + coords = Coords3DList([Coords3D([1, 2], [1, 2], [-42, 42])]) + assert coords.xmin == 1 + assert coords.xmax == 2 + assert coords.ymin == 1 + assert coords.ymax == 2 + assert coords.zmin == -42 + assert coords.zmax == 42 diff --git a/tox.ini b/tox.ini index a13dea6..99447cc 100644 --- a/tox.ini +++ b/tox.ini @@ -1,10 +1,10 @@ [tox] -envlist = py27,py36,py37,py38,py39 +envlist = py27,py37,py38,py39,py310 skipsdist = True [testenv] passenv = GR_TEST_BASE_PATH deps = - nose + pytest /gr-test/ commands = python -c "import subprocess, glob; subprocess.check_call(['pip', 'install', glob.glob('dist/gr-*.tar.gz')[0]])" - nosetests tests/gr + pytest tests From a1238bcee7014c579d27b536472a2219024f001d Mon Sep 17 00:00:00 2001 From: Daniel Kaiser Date: Fri, 4 Mar 2022 11:59:44 +0100 Subject: [PATCH 2/2] Add missing init call for matplotlib backend --- gr/matplotlib/backend_gr.py | 1 + 1 file changed, 1 insertion(+) diff --git a/gr/matplotlib/backend_gr.py b/gr/matplotlib/backend_gr.py index b00f16d..a4b55c0 100644 --- a/gr/matplotlib/backend_gr.py +++ b/gr/matplotlib/backend_gr.py @@ -30,6 +30,7 @@ class RendererGR(RendererBase): texd = maxdict(50) # a cache of tex image rasters def __init__(self, dpi, width, height): + super(RendererGR, self).__init__() self.dpi = dpi if __version__[0] >= '2': self.nominal_fontsize = 0.001625