mirror of
https://github.com/craigerl/aprsd.git
synced 2026-01-26 15:35:53 -05:00
added some mocks to speed up tests
This commit is contained in:
parent
95bd43a0b1
commit
2180a52a9f
@ -1,5 +1,6 @@
|
||||
import os
|
||||
import unittest
|
||||
from unittest import mock
|
||||
|
||||
from aprsd import plugin
|
||||
from aprsd.utils import package
|
||||
@ -74,8 +75,43 @@ class TestPackage(unittest.TestCase):
|
||||
self.assertIsNotNone(extensions)
|
||||
|
||||
def test_get_pypi_packages(self):
|
||||
packages = package.get_pypi_packages()
|
||||
self.assertIsNotNone(packages)
|
||||
# Mock PyPI API responses
|
||||
mock_simple_response = mock.MagicMock()
|
||||
mock_simple_response.json.return_value = {
|
||||
'projects': [
|
||||
{'name': 'aprsd-plugin-test'},
|
||||
{'name': 'aprsd-extension-test'},
|
||||
{'name': 'other-package'},
|
||||
]
|
||||
}
|
||||
|
||||
# Create mock responses for each package
|
||||
def create_package_response(pkg_name):
|
||||
mock_response = mock.MagicMock()
|
||||
mock_response.json.return_value = {
|
||||
'info': {
|
||||
'name': pkg_name,
|
||||
'version': '1.0.0',
|
||||
'summary': f'Test {pkg_name}',
|
||||
'package_url': f'https://pypi.org/project/{pkg_name}/',
|
||||
},
|
||||
'releases': {'1.0.0': [{'upload_time': '2024-01-01T00:00:00'}]},
|
||||
}
|
||||
return mock_response
|
||||
|
||||
with mock.patch('aprsd.utils.package.requests.get') as mock_get:
|
||||
# First call returns simple response, subsequent calls return package info
|
||||
mock_get.side_effect = [
|
||||
mock_simple_response,
|
||||
create_package_response('aprsd-plugin-test'),
|
||||
create_package_response('aprsd-extension-test'),
|
||||
]
|
||||
packages = package.get_pypi_packages()
|
||||
self.assertIsNotNone(packages)
|
||||
# Verify requests.get was called (at least once for simple API)
|
||||
self.assertTrue(mock_get.called)
|
||||
# Should have called for simple API + 2 packages
|
||||
self.assertGreaterEqual(mock_get.call_count, 1)
|
||||
|
||||
def test_log_installed_extensions_and_plugins(self):
|
||||
package.log_installed_extensions_and_plugins()
|
||||
|
||||
@ -15,12 +15,17 @@ class TestAPRSDRXThread(unittest.TestCase):
|
||||
self.packet_queue = queue.Queue()
|
||||
self.rx_thread = rx.APRSDRXThread(self.packet_queue)
|
||||
self.rx_thread.pkt_count = 0 # Reset packet count
|
||||
# Mock time.sleep to speed up tests
|
||||
self.sleep_patcher = mock.patch('aprsd.threads.rx.time.sleep')
|
||||
self.mock_sleep = self.sleep_patcher.start()
|
||||
|
||||
def tearDown(self):
|
||||
"""Clean up after tests."""
|
||||
self.rx_thread.stop()
|
||||
if self.rx_thread.is_alive():
|
||||
self.rx_thread.join(timeout=1)
|
||||
# Stop the sleep patcher
|
||||
self.sleep_patcher.stop()
|
||||
|
||||
def test_init(self):
|
||||
"""Test initialization."""
|
||||
@ -233,12 +238,17 @@ class TestAPRSDFilterThread(unittest.TestCase):
|
||||
pass
|
||||
|
||||
self.filter_thread = TestFilterThread('TestFilterThread', self.packet_queue)
|
||||
# Mock time.sleep to speed up tests
|
||||
self.sleep_patcher = mock.patch('aprsd.threads.rx.time.sleep')
|
||||
self.mock_sleep = self.sleep_patcher.start()
|
||||
|
||||
def tearDown(self):
|
||||
"""Clean up after tests."""
|
||||
self.filter_thread.stop()
|
||||
if self.filter_thread.is_alive():
|
||||
self.filter_thread.join(timeout=1)
|
||||
# Stop the sleep patcher
|
||||
self.sleep_patcher.stop()
|
||||
|
||||
def test_init(self):
|
||||
"""Test initialization."""
|
||||
@ -321,12 +331,17 @@ class TestAPRSDProcessPacketThread(unittest.TestCase):
|
||||
pass
|
||||
|
||||
self.process_thread = ConcreteProcessThread(self.packet_queue)
|
||||
# Mock time.sleep to speed up tests
|
||||
self.sleep_patcher = mock.patch('aprsd.threads.rx.time.sleep')
|
||||
self.mock_sleep = self.sleep_patcher.start()
|
||||
|
||||
def tearDown(self):
|
||||
"""Clean up after tests."""
|
||||
self.process_thread.stop()
|
||||
if self.process_thread.is_alive():
|
||||
self.process_thread.join(timeout=1)
|
||||
# Stop the sleep patcher
|
||||
self.sleep_patcher.stop()
|
||||
|
||||
def test_init(self):
|
||||
"""Test initialization."""
|
||||
|
||||
2
tox.ini
2
tox.ini
@ -88,6 +88,7 @@ commands =
|
||||
skip_install = true
|
||||
basepython = python3
|
||||
deps = pre-commit
|
||||
allowlist_externals = pre-commit
|
||||
commands = pre-commit run --all-files --show-diff-on-failure
|
||||
|
||||
[testenv:fix]
|
||||
@ -95,6 +96,7 @@ description = run code formatter and linter (auto-fix)
|
||||
skip_install = true
|
||||
deps =
|
||||
pre-commit-uv>=4.1.1
|
||||
allowlist_externals = pre-commit
|
||||
commands =
|
||||
pre-commit run --all-files --show-diff-on-failure
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user