diff --git a/.github/workflows/unit_tests.yml b/.github/workflows/unit_tests.yml index a13dc86..d3641f6 100644 --- a/.github/workflows/unit_tests.yml +++ b/.github/workflows/unit_tests.yml @@ -12,7 +12,7 @@ jobs: timeout-minutes: 5 strategy: matrix: - python-version: [3.8, 3.9, '3.10', '3.11'] + python-version: ['3.10', '3.11', '3.12'] runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 @@ -27,13 +27,14 @@ jobs: - name: Install dependencies run: | python -m pip install --upgrade pip - pip install . -r requirements/test_requirements.txt + pip install .[test] - - name: Test Client + - name: Run Tests run: | - pytest tests/test_client.py --doctest-modules --junitxml=tests/client-test-results.xml - - name: Upload client test results + pytest tests \ + --junitxml=tests/test-results-${{ matrix.python-version }}.xml + - name: Upload test results uses: actions/upload-artifact@v4 with: - name: client-test-results - path: tests/client-test-results-${{ matrix.python-version }}.xml + name: test-results-${{ matrix.python-version }} + path: tests/test-results-${{ matrix.python-version }}.xml diff --git a/.gitignore b/.gitignore index 7f6b817..90ec82f 100644 --- a/.gitignore +++ b/.gitignore @@ -46,6 +46,7 @@ htmlcov/ .cache nosetests.xml coverage.xml +tests/test-results-*.xml *.cover *.py,cover .hypothesis/ diff --git a/requirements/requirements.txt b/requirements/requirements.txt index b875544..cd26184 100644 --- a/requirements/requirements.txt +++ b/requirements/requirements.txt @@ -1,6 +1,6 @@ click~=8.0 click-default-group~=1.2 -neon-utils[sentry]~=1.12 +neon-utils[sentry]~=1.12,>=1.14.1a1 pyyaml>=5.4,<7.0.0 neon-mq-connector~=0.9,>=0.9.1a1 ovos-bus-client~=0.0 diff --git a/requirements/test_requirements.txt b/requirements/test_requirements.txt index 2a4cbf7..f747a2a 100644 --- a/requirements/test_requirements.txt +++ b/requirements/test_requirements.txt @@ -1,2 +1,2 @@ -pytest -neon-minerva[rmq]>=0.2.1a3 \ No newline at end of file +pytest~=8.0 +neon-minerva[rmq]>=0.3.1a4 diff --git a/setup.py b/setup.py index ed5a94a..b7f644b 100644 --- a/setup.py +++ b/setup.py @@ -36,17 +36,25 @@ def get_requirements(requirements_filename: str): - requirements_file = path.join(BASE_PATH, "requirements", requirements_filename) - with open(requirements_file, 'r', encoding='utf-8') as r: + requirements_file = path.join( + BASE_PATH, "requirements", requirements_filename + ) + with open(requirements_file, "r", encoding="utf-8") as r: requirements = r.readlines() - requirements = [r.strip() for r in requirements if r.strip() and not r.strip().startswith("#")] + requirements = [ + r.strip() + for r in requirements + if r.strip() and not r.strip().startswith("#") + ] return requirements with open(path.join(BASE_PATH, "README.md"), "r") as f: long_description = f.read() -with open(path.join(BASE_PATH, "neon_iris", "version.py"), "r", encoding="utf-8") as v: +with open( + path.join(BASE_PATH, "neon_iris", "version.py"), "r", encoding="utf-8" +) as v: for line in v.readlines(): if line.startswith("__version__"): if '"' in line: @@ -57,9 +65,9 @@ def get_requirements(requirements_filename: str): setuptools.setup( name="neon-iris", version=version, - author='Neongecko', - author_email='developers@neon.ai', - license='BSD-3-Clause', + author="Neongecko", + author_email="developers@neon.ai", + license="BSD-3-Clause", description="Interactive Relay for Intelligence Systems", long_description=long_description, long_description_content_type="text/markdown", @@ -68,15 +76,17 @@ def get_requirements(requirements_filename: str): include_package_data=True, classifiers=[ "Programming Language :: Python :: 3", - "Operating System :: OS Independent" + "Operating System :: OS Independent", ], - python_requires='>=3.7', + python_requires=">=3.7", install_requires=get_requirements("requirements.txt"), - extras_require={"gradio": get_requirements("gradio.txt"), "web_sat": get_requirements("web_sat.txt")}, - entry_points={ - 'console_scripts': ['iris=neon_iris.cli:neon_iris_cli'] + extras_require={ + "gradio": get_requirements("gradio.txt"), + "web_sat": get_requirements("web_sat.txt"), + "test": get_requirements("test_requirements.txt"), }, + entry_points={"console_scripts": ["iris=neon_iris.cli:neon_iris_cli"]}, package_data={ "neon_iris": ["static/*", "templates/*", "res/*", "wakeword_models/*"] - } + }, ) diff --git a/tests/test_client.py b/tests/test_client.py index 2efa182..5f27bc2 100644 --- a/tests/test_client.py +++ b/tests/test_client.py @@ -27,17 +27,14 @@ # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. import os -import sys import unittest from neon_iris.mq_connector import IrisConnector - -sys.path.append(os.path.dirname(os.path.dirname(os.path.realpath(__file__)))) from neon_iris.client import NeonAIClient _test_config = { "MQ": { - "server": "mq.2022.us", + "server": "mq.neonaialpha.com", "port": 25672, "users": { "mq_handler": { @@ -61,6 +58,3 @@ def test_client_create(self): self.assertEqual(client.connection.vhost, "/neon_chat_api") client.shutdown() - -if __name__ == '__main__': - unittest.main() diff --git a/tests/test_mq_connector.py b/tests/test_mq_connector.py index 32e5a5f..48fba7d 100644 --- a/tests/test_mq_connector.py +++ b/tests/test_mq_connector.py @@ -33,7 +33,6 @@ import pytest from os import environ -from neon_minerva.integration.rabbit_mq import rmq_instance from neon_mq_connector import MQConnector from pika.adapters.select_connection import SelectConnection @@ -42,6 +41,7 @@ environ['TEST_RMQ_VHOSTS'] = "/neon_chat_api" +# Fixture defined in neon_minerva.integration.rabbit_mq @pytest.mark.usefixtures("rmq_instance") class TestClient(unittest.TestCase): mq_config = {"server": "localhost", @@ -72,6 +72,3 @@ def test_lifecycle(self): thread.join(timeout=5) self.assertFalse(thread.is_alive()) - -if __name__ == '__main__': - unittest.main()