From a0bacf524694d83de58fd895f92ec5783d6bb435 Mon Sep 17 00:00:00 2001 From: Alexander Taylor Date: Sun, 2 Oct 2016 01:33:25 +0100 Subject: [PATCH 1/3] Added apk building tests --- test_builds/test.sh | 3 ++ test_builds/tests/test_apk.py | 64 +++++++++++++++++++++++++++++++++++ 2 files changed, 67 insertions(+) create mode 100755 test_builds/test.sh create mode 100644 test_builds/tests/test_apk.py diff --git a/test_builds/test.sh b/test_builds/test.sh new file mode 100755 index 0000000000..cd5e5bf5a3 --- /dev/null +++ b/test_builds/test.sh @@ -0,0 +1,3 @@ +#!/usr/bin/env sh + +py.test -s diff --git a/test_builds/tests/test_apk.py b/test_builds/tests/test_apk.py new file mode 100644 index 0000000000..457ddaefe7 --- /dev/null +++ b/test_builds/tests/test_apk.py @@ -0,0 +1,64 @@ + +from pythonforandroid.toolchain import main + +from os import path +import sys + +import pytest + +# Set these values manually before testing (for now) +ndk_dir = '/home/asandy/android/crystax-ndk-10.3.2' +ndk_version='crystax-ndk-10.3.2' + +cur_dir = path.dirname(path.abspath(__file__)) +testapps_dir = path.join(path.split(path.split(cur_dir)[0])[0], 'testapps') + +orig_argv = sys.argv[:] + +def set_argv(argv): + while sys.argv: + sys.argv.pop() + sys.argv.append(orig_argv[0]) + for item in argv: + sys.argv.append(item) + for item in orig_argv[1:]: + if item == '-s': + continue + sys.argv.append(item) + + +argument_combinations = [{'app_dir': path.join(testapps_dir, 'testapp'), + 'requirements': 'python2,pyjnius,kivy', + 'packagename': 'p4a_test_sdl2', + 'bootstrap': 'sdl2', + 'ndk_dir': ndk_dir, + 'ndk_version': ndk_version}, + {'app_dir': path.join(testapps_dir, 'testapp'), + 'requirements': 'python2,pyjnius,kivy', + 'packagename': 'p4a_test_pygame', + 'bootstrap': 'pygame', + 'ndk_dir': ndk_dir, + 'ndk_version': ndk_version}, + {'app_dir': path.join(testapps_dir, 'testapp_flask'), + 'requirements': 'python2,flask', + 'packagename': 'p4a_test_flask', + 'bootstrap': 'webview', + 'ndk_dir': ndk_dir, + 'ndk_version': ndk_version}, + ] + + +@pytest.mark.parametrize('args', argument_combinations) +def test_build_sdl2(args): + + set_argv(('apk --requirements={requirements} --private ' + '{app_dir} --package=net.p4a.{packagename} --name={packagename} ' + '--version=0.1 --bootstrap={bootstrap} --android_api=19 ' + '--ndk_dir={ndk_dir} --ndk_version={ndk_version} --debug ' + '--orientation portrait --dist_name=test-{packagename}').format( + **args).split(' ')) + + print('argv are', sys.argv) + + main() + From 67a39bb89d18654ede3cfbb33b22826f50caa2f6 Mon Sep 17 00:00:00 2001 From: Alexander Taylor Date: Sun, 2 Oct 2016 01:33:45 +0100 Subject: [PATCH 2/3] Added and modified some graph tests --- tests/test_graph.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/tests/test_graph.py b/tests/test_graph.py index 7e69ceed7a..fbec5c1cbf 100644 --- a/tests/test_graph.py +++ b/tests/test_graph.py @@ -19,6 +19,7 @@ [(['python3crystax'], Bootstrap.get_bootstrap('sdl2', ctx)), (['kivy', 'python3crystax'], Bootstrap.get_bootstrap('sdl2', ctx))]) + @pytest.mark.parametrize('names,bootstrap', valid_combinations) def test_valid_recipe_order_and_bootstrap(names, bootstrap): get_recipe_order_and_bootstrap(ctx, names, bootstrap) @@ -26,15 +27,25 @@ def test_valid_recipe_order_and_bootstrap(names, bootstrap): invalid_combinations = [[['python2', 'python3crystax'], None], [['python3'], Bootstrap.get_bootstrap('pygame', ctx)]] + @pytest.mark.parametrize('names,bootstrap', invalid_combinations) def test_invalid_recipe_order_and_bootstrap(names, bootstrap): with pytest.raises(SystemExit): get_recipe_order_and_bootstrap(ctx, names, bootstrap) + def test_bootstrap_dependency_addition(): build_order, python_modules, bs = get_recipe_order_and_bootstrap( ctx, ['kivy'], None) assert (('hostpython2' in build_order) or ('hostpython3' in build_order)) + +def test_bootstrap_dependency_addition2(): + build_order, python_modules, bs = get_recipe_order_and_bootstrap( + ctx, ['kivy', 'python2'], None) + assert 'hostpython2' in build_order + + if __name__ == "__main__": - get_recipe_order_and_bootstrap(ctx, ['python3'], Bootstrap.get_bootstrap('sdl2', ctx)) + get_recipe_order_and_bootstrap(ctx, ['python3'], + Bootstrap.get_bootstrap('sdl2', ctx)) From 8160a6f435b73da7253f978f34646b33ee35c414 Mon Sep 17 00:00:00 2001 From: Alexander Taylor Date: Sun, 2 Oct 2016 14:25:40 +0100 Subject: [PATCH 3/3] Fixed flask build test (added pyjnius) --- test_builds/tests/test_apk.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/test_builds/tests/test_apk.py b/test_builds/tests/test_apk.py index 457ddaefe7..64cfb7cd58 100644 --- a/test_builds/tests/test_apk.py +++ b/test_builds/tests/test_apk.py @@ -40,7 +40,7 @@ def set_argv(argv): 'ndk_dir': ndk_dir, 'ndk_version': ndk_version}, {'app_dir': path.join(testapps_dir, 'testapp_flask'), - 'requirements': 'python2,flask', + 'requirements': 'python2,flask,pyjnius', 'packagename': 'p4a_test_flask', 'bootstrap': 'webview', 'ndk_dir': ndk_dir, @@ -55,6 +55,7 @@ def test_build_sdl2(args): '{app_dir} --package=net.p4a.{packagename} --name={packagename} ' '--version=0.1 --bootstrap={bootstrap} --android_api=19 ' '--ndk_dir={ndk_dir} --ndk_version={ndk_version} --debug ' + '--permission VIBRATE ' '--orientation portrait --dist_name=test-{packagename}').format( **args).split(' '))