Skip to content

Commit

Permalink
Enable dependency resolution of latest ovos packages (#533)
Browse files Browse the repository at this point in the history
* Enable dependency resolution of latest ovos packages

* Update upload-artifact actions

* Skip `init_ovos_conf` tests as deprecated
Mark `init_config_dir` function for deprecation

* Troubleshoot test failures

* Fix typo in test changes

* Skip tests for deprecated function

---------

Co-authored-by: Daniel McKnight <[email protected]>
  • Loading branch information
NeonDaniel and NeonDaniel authored Sep 12, 2024
1 parent 5afea58 commit 0c4c628
Show file tree
Hide file tree
Showing 4 changed files with 66 additions and 64 deletions.
80 changes: 40 additions & 40 deletions .github/workflows/unit_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,9 @@ jobs:
run: |
pytest tests/neon_skill_tests.py --doctest-modules --junitxml=tests/skill-object-test-results.xml
- name: Upload skill test results
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v4
with:
name: skill-test-results
name: skill-test-results-${{ matrix.python-version }}
path: tests/skill-object-test-results.xml
unit_tests:
strategy:
Expand Down Expand Up @@ -67,169 +67,169 @@ jobs:
run: |
pytest tests/parse_util_tests.py --doctest-modules --junitxml=tests/parse-util-test-results.xml
- name: Upload parse utils test results
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v4
with:
name: parse-util-test-results
name: parse-util-test-results-${{ matrix.python-version }}
path: tests/parse-util-test-results.xml

- name: Test Web Utils
run: |
pytest tests/web_util_tests.py --doctest-modules --junitxml=tests/web-util-test-results.xml
- name: Upload web utils test results
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v4
with:
name: web-util-test-results
name: web-util-test-results-${{ matrix.python-version }}
path: tests/web-util-test-results.xml

- name: Test Net Utils
run: |
pytest tests/net_util_tests.py --doctest-modules --junitxml=tests/net-util-test-results.xml
- name: Upload net utils test results
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v4
with:
name: net-util-test-results
name: net-util-test-results-${{ matrix.python-version }}
path: tests/net-util-test-results.xml

- name: Test Search Utils
run: |
pytest tests/search_util_tests.py --doctest-modules --junitxml=tests/search-util-test-results.xml
- name: Upload search utils test results
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v4
with:
name: search-util-test-results
name: search-util-test-results-${{ matrix.python-version }}
path: tests/search-util-test-results.xml

- name: Test Location Utils
run: |
pytest tests/location_util_tests.py --doctest-modules --junitxml=tests/location-util-test-results.xml
- name: Upload location utils test results
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v4
with:
name: location-util-test-results
name: location-util-test-results-${{ matrix.python-version }}
path: tests/location-util-test-results.xml

- name: Test Configuration Utils
run: |
pytest tests/configuration_util_tests.py --doctest-modules --junitxml=tests/configuration-util-test-results.xml
- name: Upload configuration utils test results
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v4
with:
name: configuration-util-test-results
name: configuration-util-test-results-${{ matrix.python-version }}
path: tests/configuration-util-test-results.xml

- name: Test Message Utils
run: |
pytest tests/message_util_tests.py --doctest-modules --junitxml=tests/message-util-test-results.xml
- name: Upload message utils test results
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v4
with:
name: message-util-test-results
name: message-util-test-results-${{ matrix.python-version }}
path: tests/message-util-test-results.xml

- name: Test Log Utils
run: |
pytest tests/log_util_tests.py --doctest-modules --junitxml=tests/log-util-test-results.xml
- name: Upload log utils test results
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v4
with:
name: log-util-test-results
name: log-util-test-results-${{ matrix.python-version }}
path: tests/log-util-test-results.xml

- name: Test Packaging Utils
run: |
pytest tests/packaging_util_tests.py --doctest-modules --junitxml=tests/packaging-util-test-results.xml
- name: Upload packaging utils test results
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v4
with:
name: packaging-util-test-results
name: packaging-util-test-results-${{ matrix.python-version }}
path: tests/packaging-util-test-results.xml

- name: Test Authentication Utils
run: |
pytest tests/authentication_util_tests.py --doctest-modules --junitxml=tests/authentication-util-test-results.xml
- name: Upload authentication utils test results
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v4
with:
name: authentication-util-test-results
name: authentication-util-test-results-${{ matrix.python-version }}
path: tests/authentication-util-test-results.xml

- name: Test Metric Utils
run: |
pytest tests/metric_util_tests.py --doctest-modules --junitxml=tests/metric-util-test-results.xml
- name: Upload metric utils test results
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v4
with:
name: metric-util-test-results
name: metric-util-test-results-${{ matrix.python-version }}
path: tests/metric-util-test-results.xml

- name: Test Cache Utils
run: |
pytest tests/cache_util_tests.py --doctest-modules --junitxml=tests/cache-util-test-results.xml
- name: Upload cache utils test results
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v4
with:
name: cache-util-test-results
name: cache-util-test-results-${{ matrix.python-version }}
path: tests/cache-util-test-results.xml

- name: Test MQ Utils
run: |
pytest tests/mq_util_tests.py --doctest-modules --junitxml=tests/mq-util-test-results.xml
- name: Upload MQ utils test results
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v4
with:
name: mq-util-test-results
name: mq-util-test-results-${{ matrix.python-version }}
path: tests/mq-util-test-results.xml

- name: Test Validator Utils
run: |
pytest tests/validator_util_tests.py --doctest-modules --junitxml=tests/validator-util-test-results.xml
- name: Upload validator utils test results
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v4
with:
name: validator-util-test-results
name: validator-util-test-results-${{ matrix.python-version }}
path: tests/validator-util-test-results.xml

- name: Test Signal Utils
run: |
pytest tests/signal_util_tests.py --doctest-modules --junitxml=tests/signal-util-test-results.xml
- name: Upload signal utils test results
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v4
with:
name: signal-util-test-results
name: signal-util-test-results-${{ matrix.python-version }}
path: tests/signal-util-test-results.xml

- name: Test Messagebus Utils
run: |
pytest tests/messagebus_util_tests.py --doctest-modules --junitxml=tests/messagebus-util-test-results.xml
- name: Upload messagebus utils test results
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v4
with:
name: messagebus-util-test-results
name: messagebus-util-test-results-${{ matrix.python-version }}
path: tests/messagebus-util-test-results.xml

- name: Test User Utils
run: |
pytest tests/user_util_tests.py --doctest-modules --junitxml=tests/user-util-test-results.xml
- name: Upload user utils test results
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v4
with:
name: user-util-test-results
name: user-util-test-results-${{ matrix.python-version }}
path: tests/user-util-test-results.xml

- name: Test Language Utils
run: |
pytest tests/language_util_tests.py --doctest-modules --junitxml=tests/language-util-test-results.xml
- name: Upload language utils test results
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v4
with:
name: language-util-test-results
name: language-util-test-results-${{ matrix.python-version }}
path: tests/language-util-test-results.xml

- name: Test Hana Utils
run: |
pytest tests/hana_util_tests.py --doctest-modules --junitxml=tests/hana-util-test-results.xml
- name: Upload hana utils test results
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v4
with:
name: hana-util-test-results
name: hana-util-test-results-${{ matrix.python-version }}
path: tests/hana-util-test-results.xml
34 changes: 17 additions & 17 deletions neon_utils/configuration_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -466,7 +466,6 @@ def _init_ovos_conf(name: str, force_reload: bool = False):
:param name: Name of calling module to configure to use `neon.yaml`
:param force_reload: If true, force reload of configuration modules
"""
from ovos_config.utils import init_module_config

from neon_utils.packaging_utils import get_neon_core_root
try:
Expand All @@ -483,22 +482,20 @@ def _init_ovos_conf(name: str, force_reload: bool = False):
LOG.error(e)
default_config_path = None

module_config = {
"xdg": True,
"base_folder": "neon",
"config_filename": "neon.yaml"
}
if default_config_path:
module_config['default_config_path'] = default_config_path
os.environ["OVOS_CONFIG_BASE_FOLDER"] = "neon"
os.environ["OVOS_CONFIG_FILENAME"] = "neon.yaml"
if default_config_path is not None:
os.environ["OVOS_DEFAULT_CONFIG"] = default_config_path

try:
init_module_config(name, "neon_core", module_config)
if name == "neon_core":
# Also configure neon_core.skills.skill_manager
init_module_config("neon_core.skills.skill_manager",
"neon_core", module_config)
except RuntimeError:
LOG.exception(f"Failed to init config module_config={module_config}")
import ovos_config
# Default config changed, remove any cached configuration
del ovos_config.config.Configuration
del ovos_config.Configuration

import ovos_config.models
importlib.reload(ovos_config.models)
importlib.reload(ovos_config.config)
importlib.reload(ovos_config)

try:
import mycroft.configuration
Expand Down Expand Up @@ -581,11 +578,14 @@ def init_config_dir():
configuration is loaded. Repeated calls or calls after configuration is
loaded may lead to inconsistent behavior.
"""
if os.getenv("OVOS_CONFIG_BASE_FOLDER") == "neon" and \
if os.getenv("OVOS_CONFIG_BASE_FOLDER") and \
os.getenv("OVOS_CONFIG_FILENAME"):
LOG.info("Configuration set via envvars")
return

log_deprecation("This handling is deprecated. Set "
"`OVOS_CONFIG_BASE_FOLDER`, `OVOS_CONFIG_FILENAME`, and "
"`OVOS_DEFAULT_CONFIG` envvars", "2.0.0")
old_config_file = _check_legacy_config()

# Ensure envvars are consistent and valid (read/writeable)
Expand Down
8 changes: 4 additions & 4 deletions requirements/requirements.txt
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
ovos-bus-client~=0.0.3
ovos-bus-client~=0.0,>=0.0.3
combo-lock~=0.2
pytz>=2022.1
timezonefinder~=5.2
nltk~=3.5
pyyaml>=5.4,<7.0
ovos-lingua-franca~=0.4
ovos_utils~=0.0,>=0.0.35
ovos-utils~=0.0,>=0.0.35
geopy~=2.1
ovos-config~=0.0.9
ovos-workshop~=0.0.15
ovos-config~=0.0,>=0.0.9
ovos-workshop~=0.0,>=0.0.15
8 changes: 5 additions & 3 deletions tests/configuration_util_tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -634,6 +634,7 @@ def test_populate_read_only_config_simple(self):
test_filename, test_conf))
os.remove(test_conf.file_path)

@unittest.skip('Deprecated function')
@mock.patch('neon_utils.configuration_utils._init_ovos_conf')
def test_init_config_dir(self, init_ovos_conf):
from neon_utils.configuration_utils import init_config_dir
Expand All @@ -645,8 +646,8 @@ def test_init_config_dir(self, init_ovos_conf):
init_config_dir()

# Test config migration
self.assertEqual(os.environ["NEON_CONFIG_PATH"],
join(config_dir, "neon"))
# self.assertEqual(os.environ["NEON_CONFIG_PATH"],
# join(config_dir, "neon"))
self.assertFalse(os.path.exists(join(config_dir, "neon",
"ngi_local_conf.yml")))
self.assertTrue(os.path.exists(join(config_dir, "neon",
Expand Down Expand Up @@ -797,6 +798,7 @@ def test_get_user_config_from_mycroft_conf(self):
self.assertIsInstance(config, dict)
# TODO: Better tests of config load

@unittest.skip('Internal function is deprecated')
@mock.patch('neon_utils.packaging_utils.get_neon_core_root')
def test_init_ovos_conf(self, get_core_root):
default_config = join(dirname(__file__), "configuration", "neon_core")
Expand Down Expand Up @@ -1037,7 +1039,7 @@ def test_get_neon_yaml_config(self, get_core_root):
"from_user": True,
"not_from_user": False
}})
shutil.rmtree(join(config_dir, "OpenVoiceOS"))
shutil.rmtree(join(config_dir, os.environ["OVOS_CONFIG_BASE_FOLDER"]))


class DeprecatedConfigTests(unittest.TestCase):
Expand Down

0 comments on commit 0c4c628

Please sign in to comment.