void-packages/srcpkgs/OpenLP/patches/py310_applocation.patch
2022-03-07 22:33:05 +01:00

68 lines
2.7 KiB
Diff

From 54ad75426825cdd977f770b12a62ee92218b82d6 Mon Sep 17 00:00:00 2001
From: Raoul Snyman <raoul@snyman.info>
Date: Thu, 3 Feb 2022 11:26:24 -0700
Subject: [PATCH] Make two versions of a test to work around a difference in
Python 3.10
---
tests/openlp_core/common/test_applocation.py | 29 +++++++++++++++++++-
1 file changed, 28 insertions(+), 1 deletion(-)
diff --git a/tests/openlp_core/common/test_applocation.py b/tests/openlp_core/common/test_applocation.py
index 2aebc5213..432773ec7 100644
--- a/tests/openlp_core/common/test_applocation.py
+++ b/tests/openlp_core/common/test_applocation.py
@@ -22,9 +22,12 @@
Functional tests to test the AppLocation class and related methods.
"""
import os
+import sys
from pathlib import Path
from unittest.mock import patch
+import pytest
+
from openlp.core.common import get_frozen_path
from openlp.core.common.applocation import AppLocation
@@ -141,11 +144,35 @@ def test_get_directory_for_app_dir(mocked_get_frozen_path):
assert directory == Path.cwd() / Path('app', 'dir'), 'Directory should be "app/dir"'
+@pytest.mark.skipif(sys.version_info < (3, 10), reason="Python 3.10 version of this test")
+@patch('openlp.core.common.applocation.get_frozen_path')
+@patch('openlp.core.common.applocation.os.path.abspath')
+@patch('openlp.core.common.applocation.os.path.split')
+@patch('openlp.core.common.applocation.sys')
+def test_get_directory_for_plugins_dir_py310(mocked_sys, mocked_split, mocked_abspath, mocked_get_frozen_path):
+ """
+ Test the AppLocation.get_directory() method for AppLocation.PluginsDir
+ """
+ # GIVEN: _get_frozen_path, abspath, split and sys are mocked out
+ mocked_abspath.return_value = os.path.join('dir', 'plugins')
+ mocked_split.return_value = ['openlp']
+ mocked_get_frozen_path.return_value = Path('dir')
+ mocked_sys.frozen = 1
+ mocked_sys.argv = ['openlp']
+
+ # WHEN: We call AppLocation.get_directory
+ directory = AppLocation.get_directory(AppLocation.PluginsDir)
+
+ # THEN: The correct directory should be returned
+ assert directory == Path('dir', 'plugins'), 'Directory should be "dir/plugins"'
+
+
+@pytest.mark.skipif(sys.version_info >= (3, 10), reason="Python 3.9 version of this test")
@patch('openlp.core.common.applocation.get_frozen_path')
@patch('openlp.core.common.applocation.os.path.abspath')
@patch('openlp.core.common.applocation.os.path.split')
@patch('openlp.core.common.applocation.sys')
-def test_get_directory_for_plugins_dir(mocked_sys, mocked_split, mocked_abspath, mocked_get_frozen_path):
+def test_get_directory_for_plugins_dir_py39(mocked_sys, mocked_split, mocked_abspath, mocked_get_frozen_path):
"""
Test the AppLocation.get_directory() method for AppLocation.PluginsDir
"""
--
GitLab