From a19fe34e31954a37c30773e54e81aab10c8a6707 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Wed, 1 Oct 2014 05:25:23 +0000 Subject: [PATCH] #177 fix tests for running from the specfile: * tweak PYTHONPATH so it can find the cython extensions * don't fail some tests if the extension normally tested was not built, as python3 builds doesn't have all of them, just skip the test git-svn-id: https://xpra.org/svn/Xpra/trunk@7854 3bb7dfac-3a0b-4e04-842a-767bc560f471 --- rpmbuild/xpra.spec | 5 ++-- src/tests/unit/server/cystats_test.py | 23 +++++++++------- src/tests/unit/server/region_test.py | 20 +++++++++----- src/tests/unit/server/video_subregion_test.py | 26 +++++++++++-------- 4 files changed, 45 insertions(+), 29 deletions(-) diff --git a/rpmbuild/xpra.spec b/rpmbuild/xpra.spec index 16e7177237..589c9c09f2 100644 --- a/rpmbuild/xpra.spec +++ b/rpmbuild/xpra.spec @@ -249,12 +249,13 @@ rm -rf $RPM_BUILD_ROOT /usr/bin/desktop-file-validate %{buildroot}%{_datadir}/applications/xpra.desktop pushd xpra-%{version}-python2/tests -%{__python2} unit/run.py +PYTHONPATH=%{buildroot}%{python2_sitearch}:. %{__python2} unit/run.py popd %if 0%{?with_python3} +export pushd xpra-%{version}-python3/tests -%{__python3} unit/run.py +PYTHONPATH=%{buildroot}%{python3_sitearch}:. %{__python3} unit/run.py popd %endif diff --git a/src/tests/unit/server/cystats_test.py b/src/tests/unit/server/cystats_test.py index 3bc020cb0d..a6453cb75e 100755 --- a/src/tests/unit/server/cystats_test.py +++ b/src/tests/unit/server/cystats_test.py @@ -7,7 +7,11 @@ import unittest import random import time -from xpra.server.cystats import logp, calculate_time_weighted_average, calculate_timesize_weighted_average #@UnresolvedImport + +try: + from xpra.server import cystats +except ImportError: + cystats = None class TestCystats(unittest.TestCase): @@ -23,18 +27,18 @@ def test_calculate_timesize_weighted_average(self): v = random.random() data.append((t, s, v)) t += 1 - a, ra = calculate_timesize_weighted_average(data) + a, ra = cystats.calculate_timesize_weighted_average(data) assert 00 and v<1 def main(): - unittest.main() + if cystats: + unittest.main() if __name__ == '__main__': main() diff --git a/src/tests/unit/server/region_test.py b/src/tests/unit/server/region_test.py index 32c7cd774e..1dc38b7f4b 100755 --- a/src/tests/unit/server/region_test.py +++ b/src/tests/unit/server/region_test.py @@ -7,13 +7,17 @@ import unittest -from xpra.server.region import rectangle +try: + from xpra.server.region import rectangle + + R1 = rectangle(0, 0, 20, 20) + R2 = rectangle(0, 0, 20, 20) + R3 = rectangle(0, 0, 40, 40) + R4 = rectangle(10, 10, 50, 50) + R5 = rectangle(100, 100, 100, 100) +except: + rectangle, R1, R2, R3, R4, R5 = None, None, None, None, None, None -R1 = rectangle(0, 0, 20, 20) -R2 = rectangle(0, 0, 20, 20) -R3 = rectangle(0, 0, 40, 40) -R4 = rectangle(10, 10, 50, 50) -R5 = rectangle(100, 100, 100, 100) class TestVersionUtilModule(unittest.TestCase): @@ -98,7 +102,9 @@ def test_substract(self): def main(): - unittest.main() + #skip test if import failed (ie: not a server build) + if rectangle is not None: + unittest.main() if __name__ == '__main__': main() diff --git a/src/tests/unit/server/video_subregion_test.py b/src/tests/unit/server/video_subregion_test.py index 059ee3385b..6613618827 100755 --- a/src/tests/unit/server/video_subregion_test.py +++ b/src/tests/unit/server/video_subregion_test.py @@ -8,29 +8,32 @@ import gobject gobject.threads_init() +import unittest from collections import deque -from xpra.server.video_subregion import VideoSubregion, MIN_EVENTS -from xpra.server.video_subregion import sslog as log -from xpra.server.region import rectangle, merge_all - +try: + from xpra.server import video_subregion, region +except ImportError: + video_subregion = None + region = None -import unittest class TestVersionUtilModule(unittest.TestCase): def test_eq(self): + log = video_subregion.sslog + def refresh_cb(window, regions): log("refresh_cb(%s, %s)", window, regions) - r = VideoSubregion(gobject.timeout_add, gobject.source_remove, refresh_cb, 150) + r = video_subregion.VideoSubregion(gobject.timeout_add, gobject.source_remove, refresh_cb, 150) ww = 1024 wh = 768 log("* checking that we need some events") last_damage_events = [] - for x in range(MIN_EVENTS): + for x in range(video_subregion.MIN_EVENTS): last_damage_events.append((0, 0, 0, 1, 1)) - r.identify_video_subregion(ww, wh, MIN_EVENTS, last_damage_events) + r.identify_video_subregion(ww, wh, video_subregion.MIN_EVENTS, last_damage_events) assert r.rectangle is None vr = (time.time(), 100, 100, 320, 240) @@ -40,7 +43,7 @@ def refresh_cb(window, regions): last_damage_events.append(vr) r.identify_video_subregion(ww, wh, 50, last_damage_events) assert r.rectangle - assert r.rectangle==rectangle(*vr[1:]) + assert r.rectangle==region.rectangle(*vr[1:]) log("* checking that empty damage events does not cause errors") r.reset() @@ -84,7 +87,7 @@ def refresh_cb(window, regions): last_damage_events.append(v1) last_damage_events.append(v2) r.identify_video_subregion(ww, wh, 100, last_damage_events) - m = merge_all([rectangle(*v1[1:]), rectangle(*v2[1:])]) + m = region.merge_all([region.rectangle(*v1[1:]), region.rectangle(*v2[1:])]) assert r.rectangle==m, "expected %s but got %s" % (m, r.rectangle) log("* but not if they are too far apart") @@ -100,7 +103,8 @@ def refresh_cb(window, regions): def main(): - unittest.main() + if video_subregion and region: + unittest.main() if __name__ == '__main__': main()