blob: d64a8d69fdd9e0474b35b58f91bc995f9d78d661 [file]
import pytest
from http import HTTPStatus
from app.objects.c_plugin import Plugin
from app.utility.base_service import BaseService
@pytest.fixture
def test_plugin(event_loop, api_v2_client):
plugin = Plugin(name="test_plugin", enabled=True, description="a test plugin", address="test_address")
event_loop.run_until_complete(BaseService.get_service('data_svc').store(plugin))
return plugin
@pytest.fixture
def expected_test_plugin_dump(test_plugin):
return test_plugin.display_schema.dump(test_plugin)
class TestPluginsApi:
async def test_get_plugins(self, api_v2_client, api_cookies, test_plugin, expected_test_plugin_dump):
resp = await api_v2_client.get('/api/v2/plugins', cookies=api_cookies)
plugins_list = await resp.json()
assert len(plugins_list) == 1
plugin_dict = plugins_list[0]
assert plugin_dict == expected_test_plugin_dump
async def test_unauthorized_get_plugins(self, api_v2_client, test_plugin):
resp = await api_v2_client.get('/api/v2/plugins')
assert resp.status == HTTPStatus.UNAUTHORIZED
async def test_get_plugin_by_id(self, api_v2_client, api_cookies, test_plugin, expected_test_plugin_dump):
resp = await api_v2_client.get(f'/api/v2/plugins/{test_plugin.name}', cookies=api_cookies)
plugin_dict = await resp.json()
assert plugin_dict == expected_test_plugin_dump
async def test_unauthorized_get_plugin_by_id(self, api_v2_client, test_plugin):
resp = await api_v2_client.get(f'/api/v2/plugins/{test_plugin.name}')
assert resp.status == HTTPStatus.UNAUTHORIZED
async def test_get_nonexistent_plugin_by_id(self, api_v2_client, api_cookies):
resp = await api_v2_client.get('/api/v2/plugins/999', cookies=api_cookies)
assert resp.status == HTTPStatus.NOT_FOUND