lbry-android-sdk/p4a/tests/recipes/test_openssl.py
2022-11-29 15:35:24 -05:00

63 lines
2.1 KiB
Python

import unittest
from unittest import mock
from tests.recipes.recipe_lib_test import BaseTestForMakeRecipe
class TestOpensslRecipe(BaseTestForMakeRecipe, unittest.TestCase):
"""
An unittest for recipe :mod:`~pythonforandroid.recipes.openssl`
"""
recipe_name = "openssl"
sh_command_calls = ["perl"]
@mock.patch("pythonforandroid.recipes.openssl.sh.patch")
@mock.patch("pythonforandroid.util.chdir")
@mock.patch("pythonforandroid.build.ensure_dir")
@mock.patch("pythonforandroid.archs.find_executable")
def test_build_arch(
self,
mock_find_executable,
mock_ensure_dir,
mock_current_directory,
mock_sh_patch,
):
# We overwrite the base test method because we need to mock a little
# more with this recipe (`sh.cp` and `sh.rm`)
super().test_build_arch()
# make sure that the mocked methods are actually called
mock_sh_patch.assert_called()
def test_versioned_url(self):
self.assertEqual(
self.recipe.url.format(url_version=self.recipe.url_version),
self.recipe.versioned_url,
)
def test_include_flags(self):
inc = self.recipe.include_flags(self.arch)
build_dir = self.recipe.get_build_dir(self.arch)
for i in {"include/internal", "include/openssl"}:
self.assertIn(f"-I{build_dir}/{i}", inc)
def test_link_flags(self):
build_dir = self.recipe.get_build_dir(self.arch)
openssl_version = self.recipe.version
self.assertEqual(
f" -L{build_dir} -lcrypto{openssl_version} -lssl{openssl_version}",
self.recipe.link_flags(self.arch),
)
def test_select_build_arch(self):
expected_build_archs = {
"armeabi": "android",
"armeabi-v7a": "android-arm",
"arm64-v8a": "android-arm64",
"x86": "android-x86",
"x86_64": "android-x86_64",
}
for arch in self.ctx.archs:
self.assertEqual(
expected_build_archs[arch.arch],
self.recipe.select_build_arch(arch),
)